')
if formula[0] == '-':
formula = '0'+formula
addsub_flag = True
while addsub_flag:
inside = re.search('\d+\.?\d*[\+\-]\d+\.?\d*',formula)
if inside:
inside = inside.group()
print(inside)
number = re.findall('\d+\.?\d*',inside)
if '+' in inside:
value = add(number[0],number[1])
else:
value = sub(number[0],number[1])
formula = formula.replace(inside,value)
print(value)
else:
addsub_flag = False
return formula
def calculat(formula):
'''开括号'''
bracket_flag = True
result = 0
while bracket_flag:
inside = re.search('\([\d\.\+\-\*\/]*\)',formula)
if inside:
inside = inside.group()
value = muldiv(inside.strip('()'))#去掉左右括号后计算乘除
value = addsub(value)#计算加减
formula = formula.replace(inside,value)
else:
bracket_flag = False
value = muldiv(formula)
result = addsub(value)#计算加减
return float(result)
if __name__ == '__main__':
formula = input('请输入要计算的式子>>')
formula = re.sub('\s','',formula)#去掉空格
print('>>%f'%(eva l(formula)))#展示正确结果
result = calculat(formula)#计算编程结果
print('>>%f'%(result))#展示编程结果
View Code
|