python计算器功能介绍,python实现计算器功能

1 import re

2

3

4 def strip_operate(exp): # 合并多余的操作符

5 exp = exp.replace("+-", "-")

6 exp = exp.replace("--", "+")

7 return exp

8

9

10 def cal_exp_son(exp_son): # 计算两数的乘除

11 if "/" in exp_son:

12 a, b = exp_son.split("/")

13 return str(float(a)/float(b))

14 elif "*" in exp_son:

15 a, b = exp_son.split("*")

16 return str(float(a)*float(b))

17

18

19 def cal_no_bracket(exp): # 计算一个里面已经没有括号的式子

20 exp = exp.strip("()")

21 while True:

22 ret1 = re.search(r"\d+\.?\d*[/*]-?\d+\.?\d*", exp)

23 if ret1: # 先乘除

24 exp_son = ret1.group()

25 ret2 =cal_exp_son(exp_son)

26 exp = exp.replace(exp_son, ret2)

27 exp = strip_operate(exp)

28 else: # 后加减

29 ret4 = re.findall(r"-?\d+\.?\d*", exp)

30 sum1 = 0

31 for i in ret4:

32 sum1 += float(i)

33 return str(sum1)

34

35

36 def main_1(express):

37 while True:

38 ret = re.search(r"\([^()]+\)", express)

39 if ret:

40 express_no_bracket = ret.group()

41 ret3 = cal_no_bracket(express_no_bracket)

42 express = express.replace(express_no_bracket, ret3)

43 express = strip_operate(express)

44 else:

45 ret4 = cal_no_bracket(express)

46 return ret4

47

48

49 express = '1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )'

50 express = express.replace(" ", "")

51 ret5 = main_1(express)

52 print(ret5)

标签:功能,return,no,python,express,son,bracket,exp,计算器

来源: https://www.cnblogs.com/nxrs/p/10425488.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值