您的位置:首頁>正文

Python開發——利用規則運算式實現計算器演算法

Python開發——利用規則運算式實現計算器演算法

(1)不使用eval()等系統自帶的計算方法

(2)實現四則混合運算、括弧優先順序解析

思路:

1、字串預處理, 將所有空格去除

2、判斷是否存在括弧運算, 若存在進行第3步, 若不存在則直接進入第4步

3、利用規則運算式獲取最底層括弧內的四則運算運算式

4、將四則運算運算式進行預處理:運算式開頭有負數時, 在運算式前加上一個0

5、利用re.split()、re.findall()方法, 通過加減符號, 對四則運算進行拆分為乘除運算式和數位, 並保留對應的位置下標。

6、利用re.split()、re.findall()方法, 通過乘除符號, 將乘除式拆分為乘除符號與數位,

然後進行計算, 並返回數值。

7、通過re.split()、re.findall()保留的下標位置, 將運算式還原。

8、完成所有乘除運算之後, 返回進行加減運算。

9、完成加減運算後, 返回運算式進行替代。

10、通過遞迴函數, 完成所有括弧運算後。 最後再完成一次四則運算即可完成所有運算。

注:在過程中, 負數的處理存在三個要點:當負數出現在運算式開頭、負數前面存在減法、乘除式中存在負數且不在運算式開頭。

(1)當負數出現在運算式開頭:在前面加上一個0

(2)負數前面存在減法:每次完成一次運算後需要進行一次符號檢查替換

(3)乘除式中存在負數且不在運算式開頭:將負號移到運算式最開頭

源碼:

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示