解決思路:最后,我們來看看最簡單的運算函數(shù)和判斷運算符函數(shù)。
定義函數(shù):def calculate(n1, n2, operator)
- param n1: float
- param n2: float
- param operator: + - * /
- return: float
def calculate(n1, n2, operator):
result = 0
if operator == "+":
result = n1 + n2
if operator == "-":
result = n1 - n2
if operator == "*":
result = n1 * n2
if operator == "/":
result = n1 / n2
return result
定義函數(shù):def is_operator(e)
- param e: str
- return: bool
def is_operator(e):
# opers的數(shù)據(jù)結(jié)構(gòu)是列表
opers = ['+', '-', '*', '/', '(', ')']
return True if e in opers else False
最后的調(diào)用
這里定義了兩個變量 result 和 _ 來接收 final_calc 返回的兩個列表,即數(shù)字棧和運算符棧。由于結(jié)果肯定只有一個,所以列表 result 中只有一個元素,并且可通過 result[0] 來查看。
if __name__ == '__main__':
formula = input('請輸入:\n')
print("算式:", formula)
formula_list = formula_format(formula)
result, _ = final_calc(formula_list)
print("計算結(jié)果:", result[0])
最后的總結(jié)文章來源:http://www.zghlxwxcb.cn/news/detail-598711.html
抽象出幾個函數(shù):文章來源地址http://www.zghlxwxcb.cn/news/detail-598711.html
- 彈棧時計算 “兩個數(shù)字和運算符組成的算式” 的結(jié)果的函數(shù)。
- 判斷元素是數(shù)字還是運算符的函數(shù)。
- 把算式處理成列表形式的函數(shù)。如:'-1-2*((-2+3)+(-2/2))' 應(yīng)該處理成:['-1', '-', '2', '*', '(', '(', '-2', '+', '3', ')', '+', '(', '-2', '/', '2', ')', ')'] 。
- 決策函數(shù),決定應(yīng)該是入棧,彈棧運算,還是彈棧丟棄。
- 主函數(shù),遍歷算式列表,計算最終結(jié)果。
到了這里,關(guān)于【Python】簡單計算器實現(xiàn)(四)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!