python递归理解图

 

递归:下一级只能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)

 

posted @ 2016-06-12 17:50  小秒  阅读(370)  评论(0编辑  收藏  举报