码迷,mamicode.com
首页 > 编程语言 > 详细

python 简易计算器

时间:2017-03-22 16:41:32      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:bsp   div   bre   port   import   origin   str   turn   after   

def count(arg):           #计算字符串
    result = eval(arg)
    return result

import re
origin = "1 - 2 * ((60 - 20 +(-40.5/5) * (9 - 2*5/3 + 2*10 + 10*8/144 )) - (-4*3)/(16 - 3*2))"
while True:                                   
    n = re.split("\(([^()]+)\)", origin, 1)                      #对origin进行分割,从最里面的括号开始,逐步进行
    if len(n) == 3:
        before = n[0]
        content = n[1]                         #正则分割的那段调用str的eval计算
        after = n[2]
        num = count(content)
        new_str = str(num)
        origin = before + new_str + after              #计算的结果重新合并成一个新的字符串
    else:                                 #当不含有括号,直接调用eval方法
        result = count(origin)
        print(result)
        break

 

python 简易计算器

标签:bsp   div   bre   port   import   origin   str   turn   after   

原文地址:http://www.cnblogs.com/waylon/p/6600410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!