码迷,mamicode.com
首页 > 其他好文 > 详细

计算器

时间:2017-05-03 19:14:30      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:important   ant   neu   div   menu   lib   repeat-x   bottom   table   

计算器作业

import re
def tep1_calculated(j):#计算函数
    def tep3_calculated(n):#乘除运算
        tep3 = re.search("\d*\.*\d+[\*\/]\-?\d*\.*\d+", n).group()
        tep4 = str(tep2_calculated(tep3))
        return re.sub("\d*\.*\d+[\*\/]\-?\d*\.*\d+", tep4, n, 1)
    def tep4_calculated(m):#加减运算
        m=check(m)
        tep3 = re.search("\-*\d*\.*\d+[\+\-]\-?\d*\.*\d+", m).group()
        tep4 = str(tep2_calculated(tep3))
        return re.sub("\-*\d*\.*\d+[\+\-]\-?\d*\.*\d+", tep4, m, 1)
    while  len(re.findall("[^\d]*\d+\.?\d*[^\d]*", j)) > 1:
        j = check(j)
        while  "*" in j or "/" in j :
            j = tep3_calculated(j)
        while len(re.findall("[^\d]*\d+\.?\d*[^\d]*", j)) > 1 :
            j = tep4_calculated(j)
    return j
def check(j):#去连续运算符
    if re.search("[(\-\-)(\+\+)]", j) != None:
        j = re.sub("(\-\-)|(\+\+)", "+", j,2)
    if re.search("[(\-\+)(\+\-)]", j) != None:
        j = re.sub("(\-\+)|(\+\-)", "-", j,2)
    return j
def tep2_calculated(k):#单项加减乘除运算
    if "*" in k :
        return float(re.split("\*",k)[0])*float(re.split("\*",k)[-1])
    if "/" in k :
        return float(re.split("\/",k)[0])/float(re.split("\/",k)[-1])
    if "+" in k :
        return float(re.split("\+",k)[0])+float(re.split("\+",k)[-1])
    if "-" in k :
        return float(re.split("\-",k)[0])-float(re.split("\-",k)[-1])
def main(i):#主函数
    i = "".join(re.split(" ", i))
    while "(" in i or ")" in i:
        tep1=re.search("\([^(\(\))]+\)",i).group()[1:-1]
        tep2=tep1_calculated(tep1)
        i = re.sub("\([^(\(\))]+\)",tep2,i,1)
    i = tep1_calculated(i)
    print(i)
main("1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )")

计算器

标签:important   ant   neu   div   menu   lib   repeat-x   bottom   table   

原文地址:http://www.cnblogs.com/kimyeee/p/6798132.html

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