python计算器代码,Python实现两款计算器功能示例

本文实例为大家分享了Python实现计算器功能示例代码,供大家参考,具体内容如下

1.简单计算器

#计算一个表达式的时候,首先肯定是先算括号里面的,再算乘除法,后算加减法

import re

# 1.去括号

def remove_kuohao(expression):

'''

这是一个去除括号的函数

:param expression: 传进来的表达式

:return: 计算后的结果

'''

while True:

ret = re.search(r'\([^(]*?\)',expression) #先利用正则匹配到式子里面的括号

if ret: #如果有括号

re_expression = ret.group() #先把找到的括号group()一下得到

# print(re_expression)

res = jianhua(re_expression.strip('()')) #括号里面有*/-+都不一定,就又定义了一个简化这个表达式的函数

# 如果是乘法就执行乘法运算,如果是除法运算就执行除法等,这样的话就直接调用jianhua这个函数了,当然这个式子

# 有括号,顺便把括号也去了,直接计算去掉括号后的式子

expression = expression.replace(re_expression,str(res)) #把计算出来的结果放回去:就是把原来的括号里的表达式

# 替换成现在计算的结果

# print(expression)

continue

break

res = jianhua(expression)

return res

#简化算法

def jianhua(re_expression):

while True:

# 匹配乘除法

ret = re.search(r'\d+\.*?\d*[*/]\-?\d+\.?\d*', re_expression) #利用正则匹配乘除法

if ret: # 如果匹配到有*或/就执行下面的代码

chengchu_expression = ret.group() #就先group一下得到有乘除法的表达式

res = chengchu(chengchu_expression) #调用乘除法的函数计算

re_expression = re_expression.replace(chengchu_expression, str(res)) #吧有乘除法的表达式和计算出来的结果替换

re_expression =chulifuhao(re_expression) #在调用处理符号的函数

# print(re_expression)

continue

break

# 匹配加减法

num = re.findall(r'[+-]?\d+\.?\d*', re_expression)#在没有乘除法的时候,就让匹配加减法,

if len(num) > 1: #如果匹配到的表达式的长度大于1,不过是加法还是减法,都让计算加法。因为float啥结果就是啥

mynum = 0

for i in num:

mynum += float(i)

return mynum

else:

return num[0]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值