Example #1
0
@author: 张晓宇

Email: [email protected]

Version: 1.0

Description: 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )
             等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致

Help:
'''
from model.calculator import calculator

if __name__ == '__main__':
    calculator = calculator()  # 创建calculator对象
    while True:
        print('请输入四则运算表达式(输入q退出程序):')
        print(
            '例如:1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
        )
        expression = input('>> ').strip().replace(' ', '')  # 去除两边和中间的空格
        if expression != 'q':
            result = calculator.getResult(
                expression)  # 调用calculator对象的getResult获得运算结果
            if result:  # 判断结果是否为正确的结果(如果返回的数值说明表达式正确,如果返回的事False说明表达式不合法)
                print('myEval:', float(result))  # 输出结果
                print('eval:', eval(expression))  # 输出eval的结果
            else:
                print('输入的的表达不合法,请检查')  # 否则提示输入不合法
            pass
Example #2
0
@author: 张晓宇

Email: [email protected]

Version: 1.0

Description: 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )
             等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致

Help:
'''
from model.calculator import calculator

if __name__ == '__main__':
    calculator = calculator()

    while True:
        print('请输入四则运算表达式(输入q退出程序):')
        print(
            '例如:1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
        )
        expression = input('>> ').strip().replace(' ', '')
        # expression = '1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
        # expression = '1-2*((60-30+(-40/5)*(9-2*5.0/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
        # m = re.match('^[\+\-]{0,1}\d+[.]{0,1}\d*([\+\-\*\/]{1}[\+\-]{0,1}\d+[.]{0,1}\d*)+$', expression)
        # print(m)
        #expression = - -(1.1+1+1 -( -1) -(1+1 + (1+1+2.2))) + - - - - -111 + - - + + - - 3 - + + + + + + + - - - + - - - 1+4  + 4    /  2+(1+3)*4.1+(2-1.1)**2 /2**3

        if expression != 'q':
            #print(re.findall('[\+\-]{2,}', expression))
@author: 张晓宇

Email: [email protected]

Version: 1.0

Description: 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )
             等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致

Help:
'''
from model.calculator import calculator

if __name__ == '__main__':
    calculator = calculator()

    while True:
        print('请输入四则运算表达式(输入q退出程序):')
        print('例如:1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))')
        expression = input('>> ').strip().replace(' ', '')
        # expression = '1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
        # expression = '1-2*((60-30+(-40/5)*(9-2*5.0/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
        # m = re.match('^[\+\-]{0,1}\d+[.]{0,1}\d*([\+\-\*\/]{1}[\+\-]{0,1}\d+[.]{0,1}\d*)+$', expression)
        # print(m)
        #expression = - -(1.1+1+1 -( -1) -(1+1 + (1+1+2.2))) + - - - - -111 + - - + + - - 3 - + + + + + + + - - - + - - - 1+4  + 4    /  2+(1+3)*4.1+(2-1.1)**2 /2**3

        if expression != 'q':
            #print(re.findall('[\+\-]{2,}', expression))
            result = calculator.getResult(expression)
@author: 张晓宇

Email: [email protected]

Version: 1.0

Description: 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )
             等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致

Help:
'''
from model.calculator import calculator

if __name__ == '__main__':
    calculator = calculator() # 创建calculator对象
    while True:
        print('请输入四则运算表达式(输入q退出程序):')
        print('例如:1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))')
        expression = input('>> ').strip().replace(' ', '') # 去除两边和中间的空格
        if expression != 'q':
            result = calculator.getResult(expression) # 调用calculator对象的getResult获得运算结果
            if result: # 判断结果是否为正确的结果(如果返回的数值说明表达式正确,如果返回的事False说明表达式不合法)
                print('myEval:', float(result)) # 输出结果
                print('eval:', eval(expression)) # 输出eval的结果
            else:
                print('输入的的表达不合法,请检查') # 否则提示输入不合法
            pass
        else:
            break
        input('按任意键继续')