import re#导入正则库 a = "1 - 2 * ((60 - 30 + (-40.0/5) * (9-2*5/5 + 7 /3*99/4*2998 + 10 * 568/14 )) - (-4*3)/(16 - 3*2) )" def qiuzhi(tt): u = eval(tt)#应用到eval函数,自动字符串求值 return u while True: r = re.split("\(([^()]+)\)",a ,1)#在a里,以最里面的括号为分割标准,分割一次 print(r) if len(r) == 3: bef = r[0] mid = r[1] aft = r[2] n = qiuzhi(mid) a = bef + str(n) + aft print(mid) else: final = qiuzhi(a) print(final) break
时不时的查看以前的笔记非常的有必要。。一下午就卡在了字符串求和的问题上,回头去楼下转个弯的时候,想到了eval函数。。
原文:http://www.cnblogs.com/daduoduo/p/6394848.html