有人可以向我解釋爲什麼這不起作用嗎?Python遞歸錯誤
我想創建一個使用遞歸的更改機器。第一個參數是我們需要返還的變化量,第二個參數是第一個元素代表25美元的賬單數量,第二個參數代表50美元,最後一個 代表100美元。
當我打電話checkchange(125,[0,1,1])
,現在不返回「T」或「F」 相反,它只是打印出 lets go Bills: 011 Money: 125 ok the money is greater than 100 lets go Bills: 010 Money: 25 this is the money 25
下面是代碼:
def checkchange(money,bills):
tot = bills[0] * 25 + bills[1] * 50 + bills[2] * 100
print("lets go")
string = "".join(str(e) for e in bills)
print("Bills: %s Money %d" % (string,money))
if tot < money:
return "F"
elif money == 25 and bills[0] == 0:
return "F"
elif money >= 100 and bills[2] > 0:
print("ok the money is greater than 100")
money -= 100
bills[2] -= 1
checkchange(money,bills)
print("this is the money %d" % money)
elif money >= 50 and bills[1] > 0:
print("ok the money is greater than 50")
money -= 50
bills[1] -= 1
checkchange(money,bills)
elif money >= 25 and bills[0] > 0:
print("money is greater than 25")
money -= 25
bills[0] -=1
checkchange(money,bills)
else:
return "T"
使用'和',而不是'&' –
請添加輸入數據和預期結果或提供錯誤消息(如果有)。 – ppasler
@ppasler剛剛添加了預期結果 –