怎么用Python实现时间加减运算?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用Python实现时间加减运算?相关的知识,希望对你有一定的参考价值。

使用timedelta就可以直接进行运算。
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
timedelta可以传入天数、小时、分、秒、星期、毫秒等。
参考技术A 用datetime库可以实现时间加减运算。例:print (datetime.datetime.now()+datetime.timedelta(minutes=1)).strftime("%Y-%m-%d %H:%M:%S") 就是对当前时间加一分钟并打印出来。

python3简单实现支持括号的加减乘除运算

1.首先表达式的空格。
2.循环计算最内层带括号的表达式(提取运算符出现的顺序,然后计算)
3.计算最外层的表达式输出。
刚接触python,代码不够严谨,仅实现功能。不知道如何在函数中使用运算符变量做运算(使用的时候是字符串形式),希望知道的朋友告诉我,互相学习一下。
技术分享图片
import re,math
def qcysf(s):
    while re.findall(\+\-|\+\+|\-\-|\-\+,s):
        s = s.replace(+-,-)
        s = s.replace(++,+)
        s = s.replace(--,+)
        s = s.replace(-+,-)
    return s
def yunsuan(a1):
    temp1 = re.sub(\d|\.|\+|-| ,‘‘,a1)
    # print(temp1)
    # print(a1)
    for i in temp1:
        if i == "*":
            b = re.search((-?\d+\.?\d*\*-?\d+\.?\d*), a1).group()
            # print(b)
            temp2 = round(float(b.split(*)[0]) * float(b.split(*)[1]),10)
            temp2 = + + str(temp2)
            a1 = a1.replace(b, temp2,1)
            # print(a1)
        else:
            b = re.search((-?\d+\.?\d*/-?\d+\.?\d*), a1).group()
            # print(b)
            temp2 = round(float(b.split(/)[0]) / float(b.split(/)[1]),10)
            temp2 = + + str(temp2)
            a1 = a1.replace(b, temp2,1)
            # print(a1)
    a1 = qcysf(a1)
    # print(a1)
    a2 = a1.lstrip(-)
    temp3 = re.sub(\d|\.| , ‘‘, a2)
    for i in temp3:
        if i == "+":
                b = re.search((-?\d+\.?\d*\+\d+\.?\d*), a1).group()
                temp2 = round(float(b.split(+)[0]) + float(b.split(+)[1]),10)
                a1 = a1.replace(b, str(temp2),1)
                # print(a1)
        else:
            b = re.search((\d+\.?\d*\-\d+\.?\d*), a1).group()
            temp2 = round(float(b.split(-)[0]) - float(b.split(-)[1]),10)
            a1 = a1.replace(b, str(temp2),1)
            # print(a1)
    return a1

if __name__ == "__main__":
    a = input(请输入你要计算的内容:)
    a = a.replace( ,‘‘)
    # print(a)
    if re.findall([a-zA-Z]],a):
        print(你输入的内容不合法)
    else:
        while re.search("\([^()]+\)", a):
            b = re.search("\([^()]+\)", a).group()
            # b = qcysf(b)
            # print(a)
            # print(b)
            b1 = re.sub(\(|\),‘‘,b)
            # print(a)
            temp = yunsuan(b1)
            a = a.replace(b, str(temp))
        # print(‘这是倒数第二个‘,a)
        a = qcysf(a)
        a = yunsuan(a)
        print(a)
View Code

请输入你要计算的内容:1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )
2776672.6951997215


以上是关于怎么用Python实现时间加减运算?的主要内容,如果未能解决你的问题,请参考以下文章

用PYTHON2做个计算器,只要加减乘除

python3简单实现支持括号的加减乘除运算

在Python中进行加减乘除

math模块及使用方式

java中怎么将字符串(带运算符号加减乘除)转换成代数算式运算

Python基础算法综合:加减乘除四则运算方法