我必須創建一個函式,其中輸入是由 3 個元素組成的元組:元素 1 和 3 是數字或具有相同結構的其他元組,第二個元素是指示操作的字串。一個例子是 (10, '-', (5, '*', 3)) 并且應該回傳 -5。問題是函式必須是遞回的,我找不到使用遞回函式處理元組的方法。
def evaluate(equation):
if type(equation[0]) != tuple and type(equation[2]) != tuple:
if equation[1] == " ":
return equation[0] equation[2]
if equation[1] == "*":
return equation[0] * equation[2]
if equation[1] == "-":
return equation[0] - equation[2]
if equation[1] == "/":
return equation[0] / equation[2]
我設法創建了一個操作基礎,但我找不到找到所有空元組并保留這些值以供以后操作的演算法。
uj5u.com熱心網友回復:
在執行操作之前評估元組的左側和右側。
def evaluate(equation):
left, operation, right = equation
if type(left) == tuple:
left = evaluate(left)
if type(right) == tuple:
right = evaluate(right)
if operation == " ":
return left right
elif operation == "*":
return left * right
elif operation == "-":
return left - right
elif operation == "/":
return left / right
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/532412.html
標籤:Python递归元组
