1 import re
2 formul='2*(1+2*6/3-2)+5+2*(1+6/2/3-2)'
3
4 def addjian(func):
5 digital = re.split('(\d)',func)
6 for index in range(1,len(digital),2):
7 if digital[index] == '+':
8 digital[index + 1] = str(int(digital[index - 1]) + int(digital[index + 1]))
9 elif digital[index] == '-':
10 digital[index + 1] = str(int(digital[index - 1]) - int(digital[index + 1]))
11
12 return digital[-1]
13 def chengchu(func):
14 ret = re.findall('\d+[^+-]+\d',func)
15 for i in ret:
16 digital = re.split('(\d)',i) #加个括号是为了优先级的原因,保留非数字
17 for index in range(1,len(digital),2):##这个地方的思想很巧妙,假设[1,/,2,*,3,/,4,*,5],
18 # 我会把1/2的结果替换到2的身上位0.5,然后,0.5*3的结果替换到3的身上&