...因爲這是無效的Python語法。您有以下問題:
- 您應該使用
int(n)
把n
成一個整數。 int
本身無效(因此爲SyntaxError
) - 您可以定義一個名爲int
的變量(例如int = 1
),但該變量使用單個等號並且不應該完成,因爲您會影響內置的int()
;
0.75 == "Coke"
是一個布爾比較,不是任何一種賦值(並且將會從永遠不會是True
);
- 你繼續遞歸調用
get_drink_price
沒有辦法return
;
Coke
永遠不會被定義,因此return Coke
無論如何都會導致NameError
。
這是完全不清楚你正在努力實現與該功能是什麼,但也許:
def get_drink_price(drink):
drinks = {'Coke': 0.75, 'Orange': 0.6} # dictionary maps drink to price
return drinks[drink] # return appropriate price
現在
>>> get_drink_price("Coke")
0.75
也許更接近你試圖做:
def get_drink_price(drink):
Coke = 0.75 # define price for Coke
if drink == "Coke": # test whether input was 'Coke'
return Coke # return Coke price
但你應該能夠看到dictio基於nary的實現更好。
這就是...不是Python。 –
你的代碼有*許多不同的*問題;我擔心這裏有太多的錯誤來解決這些問題。你在教程中處於什麼階段?看起來你也在學習Python 2的教程(使用'print'語句代替'print()'函數),但是你用Python 3標記了這個教程。 –
我不知道你想要做什麼。也許你應該解釋一下。 –