递归:下一级只能return给自己的上一级。
1 import re 2 val="9-2*5/3+7/3*99/4*2998+10*568/14" 3 val="9-2*5/3+7/3*99/4*2998+10*568/14" 4 def chen(arg): 5 f = arg 6 if "*" in arg or "/" in arg: 7 b2_2 = re.search("d+.*d*[*/]+d+.*d*", arg) 8 m = b2_2.group() 9 k = re.split("([*/])", m, 1) 10 kn = k[0] + '\' + k[1] + k[2] 11 if k[1] == '*': 12 new_a = float(k[0]) * float(k[2]) 13 f = re.sub(kn, str(new_a), arg) 14 new_z = chen(f) 15 return new_z 16 elif k[1] == '/': 17 new_a = float(k[0]) / float(k[2]) 18 f = re.sub(kn, str(new_a), arg) 19 new_z = chen(f) 20 return new_z 21 return f 22 q=chen(val) 23 print (q) 24 # for i in q: 25 # print (i)