小白收藏 用Python做個計算器

2021-10-12 06:18:53 字數 2146 閱讀 5627

計算器大家都不陌生,我們做數學題啊,記賬本啊都會用到,今天教大家用python做個簡單的計算器,學會了很實用哦,步驟也很簡單。

『』』 開發乙個簡單的python計算器

實現加減乘除及拓號優先順序解析

使用者輸入 1 - 2 * ( (60-30 +(-40/5) * (9-25/3 + 7 /399/42998 +10 * 568/14 )) - (-43)/ (16-32) )等類似公式後,必須自己解析裡面的(),+,-,,/符號和公式(不能呼叫eval等類似功能偷懶實現),運算後得出結果,結果必須與真實的計算器所得出的結果一致

hint:

re.search(r』([^()]+)』,s).group()

『(-40/5)』

『』』import re

#匹配正數、負數、小數點

regex = re.compile(r』-?\d+.?\d*』)

#加法減法

def plus_minus(s):

#res = regex.search(s).group()

while re.search(r』[±]』,s):

s=s.replace(』–』,』+』)

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

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

s=s.replace(『±』,』-』)

list_digits = regex.findall(s) # 匹配數字

result = sum(map(float,list_digits))

#s.replace(res,str(result))

#print(s)

result = str(result)

#print(result) return result

#plus_minus(』–3++4-+2±1』)

#乘除法

def mul_div(s):

while true:

res = re.search(r』\d+.?\d*[/][-+]?\d+.?\d』, s)

if res is not none:

res = res.group()

result = res

if 『』 in res:

a,b = res.split(』』)

result = float(a)float(b)

elif 『/』 in res:

a,b = res.split(』/』)

result = float(a)/float(b)

#print(result)

result = str(result)

s = s.replace(res,result)

else:

break

return s

#print(mul _ div(『2/4 * 3/5』))

def main(s):

s = s.replace(』 『,』』)

while true:

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

if res is not none:

resu = res.group() #有括號(1+23+4)

result = mul_div(resu)

result = plus_minus(result)

#result = result[1:-1]

s = s.replace(resu, result)

else:

s = mul_div(s)

s = plus_minus(s)

break

return s

if__name__==』__ main __』:

equation=『1-2*((60-30+(-40/5)(9-25/3+7/399/42998+10568/14))-(-43)/(16-3*2))』 print(main(equation))

大體步驟就是這樣了,有了計算器,也不用開啟系統自帶的,還是自己做出來的比較有成就感,大家可以多試試用python做一些別的小專案,你絕對會喜歡上python。

文章部分內容源於網路,聯絡侵刪*

文章參考源於

小白收藏 用Python做個小遊戲之迷宮

迷宮在很多人的心裡算是非常經典的一款遊戲了,怎麼玩都不過時,本文為大家整理了乙份用python實現的簡易版迷宮,有興趣的可以試試。畫地圖 map data 1,1,1,1,1,1,1,1,1,1 1,0,1,1,1,1,1,1,1,1 1,2,1,0,0,0,0,0,0,1 1,0,1,0,1,0,...

小白學習python 做個備忘錄

小白學習python 做個備忘錄 總結python學習基礎 分享一些自己寫的小 對使用with的方式做個記錄。記錄如下 示例 文字檔案 儲存的是普通 字元 文字,預設為unicode字符集,可以使用序開啟 二進位制檔案 把資料內容用 位元組 進行儲存,無法用記事本開啟,必須使用專用的軟體開啟,舉例 ...

小白必看 教你用Python做計算

今天給大家分享的是用python計算等差數列,等比數列。import numpy as np import math import matplotlib as mpl from matplotlib import pyplot as plt from mpl toolkits.mplot3d imp...