日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

day21 计算器作业

發布時間:2025/4/16 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day21 计算器作业 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 import re 2 3 express = '1 - 2 * ( ( 6 0 -3 0 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )' 4 # 去掉所有的空格 5 # 找括號,先找括號里面沒有括號的最里面的括號 6 # 先算括號里的乘除,再算括號里的加減 7 8 # 計算表達式 9 def dealwith(express): 10 if "+-" in express:express.replace("+-","-") 11 if "+-" in express:express.replace("--","+") 12 return express 13 14 def cal_exp_son(exp_son): 15 # 只用來計算原子型表達式,最小的表達式 16 if "/" in exp_son: 17 a,b = exp_son.split("/") 18 return str(float(a)/float(b)) 19 if "*" in exp_son: 20 a,b = exp_son.split("*") 21 return str(float(a) * float(b)) 22 23 def cal_express_no_bracket(exp): 24 # 計算沒有括號的表達式 25 # exp 為未經過處理的最內層的帶括號的表達式 26 exp = exp.strip("()") 27 print(exp) 28 # 先乘除,后加減 29 while True: 30 ret = re.search("\d+\.?\d*[*/]-?\d+\.?\d*",exp) 31 if ret : 32 exp_son = ret.group() 33 ret = cal_exp_son(exp_son) 34 exp = exp.replace(exp_son,ret) 35 36 # 將空格去除 37 new_express = re.sub(" ","",express) 38 39 #提取括號里面沒有其他括號的的表達式 40 while True: 41 ret = re.search("\([^()]+\)",new_express) 42 if ret : 43 express_no_bracket = ret.group() 44 ret = cal_express_no_bracket(express_no_bracket) 45 new_express= new_express.replace(express_no_bracket,ret) 46 print(new_express) 47 new_express = dealwith(new_express) 48 print(new_express) 49 else: 50 print("表達式已經沒有括號了",new_express) 51 break

?

轉載于:https://www.cnblogs.com/shijieli/p/9714600.html

總結

以上是生活随笔為你收集整理的day21 计算器作业的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。