您好,登錄后才能下訂單哦!
本文實例講述了Python正則表達式實現(xiàn)簡易計算器功能。分享給大家供大家參考,具體如下:
需求:使用正則表達式完成一個簡易計算器。
功能:能夠計算簡單的表達式。
如:1*2*((1+2)/(2+3)+1)*5.1-3+2**2
import re class SimpleCalc(object): # 表達式檢測 def check(self,exp): # 合法字符檢測 res = re.findall(r"[^\d\+\-\*/\(\)\.]", exp) print(res) if res: print("表達式不正確?。?!") print("輸入了非法字符:", res) return False # 括號檢測 res = re.findall(r"(?:[\d\)]\()|(?:\([\*/\)])|(?:[\-\+\*/]\))",exp) if res : print("表達式不正確!!!") print("括號使用有誤:", res) return False res = re.findall(r"\(|\)", exp) if res.count('(') != res.count(')'): print("表達式不正確?。。?) print("括號不匹配:", res) return False # 運算符檢測 res = re.findall(r"[\-\+/]{2,}|\*{3,}", exp) if res: print("表達式不正確?。?!") print("運算符有誤:", res) return False # 小數(shù)點位置檢測 res = re.findall(r"(^(?<=[0-9])?\.\d+)|(\.\d*?\.)|\.(\D|$)", exp) if res: print("表達式不正確?。。?) print("小數(shù)點位置有誤:", res) return False return True def main(): simpleCalc = SimpleCalc() while True: exp = input("請輸入一個正確的表達式(退出請輸入t):\n") if exp == 't': break if simpleCalc.check(exp): print('=',eval(exp)) else: continue if __name__ == '__main__': main()
輸出:
請輸入一個正確的表達式(退出請輸入t):
1*2*((1+2)/(2+3)+1)*5.1-3+2**2
[]
= 17.32
請輸入一個正確的表達式(退出請輸入t):
12+a
['a']
表達式不正確?。?!
輸入了非法字符: ['a']
請輸入一個正確的表達式(退出請輸入t):
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python正則表達式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。