我是靠谱客的博主 迷路小蝴蝶,最近开发中收集的这篇文章主要介绍计算加减乘除混合运算python实现_python,实现计算器程序,加减乘除混合运算加括号,完善实现...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

importre#detect error input

s = input("Expression:")

s= re.sub('s',"",s)if re.findall('[^0-9+-*/)(]',s):print("Error input,Stop!")

exit()defjudge1(sign):if sign == '*':

obj= re.compile('*')elif sign == '/':

obj= re.compile('/')return(obj)defjudge2(sign):if sign == '+':

obj= re.compile('+')elif sign == '-':

obj= re.compile('-')return(obj)defFormat(s):

s= s.replace(' ','')

s= s.replace('++','+')

s= s.replace('+-','-')

s= s.replace('-+','-')

s= s.replace('--','+')return(s)defcalculate(s):while re.search('[*,/]',s):

s=Format(s)

obj= judge1(re.search('[*,/]',s).group())

res=obj.split(s)

first= re.search('[d,.]+$',res[0]).group()

second= re.search('^[d,.,-]+',res[1]).group()if re.search('.',first):

fir=float(first)else:

fir=int(first)if re.search('.',second):

sec=float(second)else:

sec=int(second)if re.search('[*,/]',s).group() == '*':

result= str((fir *sec))

s= re.sub('%s*%s'%(first,second),result,s)print('s=',s)elif re.search('[*,/]',s).group() == '/':

result= str(fir /sec)

s= re.sub('%s/%s'%(first,second),result,s)print('s=',s)if re.search('^-[d,.]+',s):return(s)

s=Format(s)#return(s)

while re.search('[+,-]',s):

s=Format(s)

obj= judge2(re.search('[+,-]',s).group())

res=obj.split(s)

first= re.search('[d,.]+$',res[0]).group()

second= re.search('^[d,.,-]+',res[1]).group()if re.search('.',first):

fir=float(first)else:

fir=int(first)if re.search('.',second):

sec=float(second)else:

sec=int(second)if re.search('[+,-]',s).group() == '+':

result= str(fir +sec)

s= re.sub('%s+*%s'%(first,second),result,s)print('s=',s)elif re.search('[+,-]',s).group() == '-':

result= str(fir -sec)

s= re.sub('%s-%s'%(first,second),result,s)print('=',s)if re.search('^-[d,.]+',s):return(s)

s=Format(s)return(s)deffirst_step(s):while re.search('([^()]+)',s):

res= re.search('([^()]+)',s)

s_temp=res.group()print(s_temp)

[first,second]=s.split(s_temp)

ret= re.search('([^()]+)',s)

tmp= re.search('[^()]+',ret.group())print(tmp.group())

temp=str(calculate(tmp.group()))print('temp=',temp)

s= first + temp +secondprint('first=',first)print('second=',second)print('temp=',temp)print('new s=',s)#if re.search('[+,-]{1}',s):#break

result =calculate(s)print("result=",result)

first_step(s)

花了两天时间终于完成这个小作业了,其实没什么难度,就是正则表达式的灵活运用,由于逻辑比较复杂,测试花费了很多时间.

最后

以上就是迷路小蝴蝶为你收集整理的计算加减乘除混合运算python实现_python,实现计算器程序,加减乘除混合运算加括号,完善实现...的全部内容,希望文章能够帮你解决计算加减乘除混合运算python实现_python,实现计算器程序,加减乘除混合运算加括号,完善实现...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部