2014-01-26 63 views
-3

在我的代碼:Python中,有一條錯誤消息,我不斷收到

def get_drink_price (drink): 
    int 0.75 == "Coke" 
    if get_drink_price("Coke"): 
     return Coke 


# This is just to see what prints 
print get_drink_price("Coke") 

我不斷收到此錯誤信息:

File "<stdin>", line 2 
    int 0.75 == "Coke" 
     ^
SyntaxError: invalid syntax 

那是什麼?

+6

這就是...不是Python。 –

+0

你的代碼有*許多不同的*問題;我擔心這裏有太多的錯誤來解決這些問題。你在教程中處於什麼階段?看起來你也在學習Python 2的教程(使用'print'語句代替'print()'函數),但是你用Python 3標記了這個教程。 –

+0

我不知道你想要做什麼。也許你應該解釋一下。 –

回答

5

...因爲這是無效的Python語法。您有以下問題:

  1. 您應該使用int(n)n成一個整數。 int本身無效(因此爲SyntaxError) - 您可以定義一個名爲int的變量(例如int = 1),但該變量使用單個等號並且不應該完成,因爲您會影響內置的int();
  2. 0.75 == "Coke"是一個布爾比較,不是任何一種賦值(並且將會從永遠不會True);
  3. 你繼續遞歸調用get_drink_price沒有辦法return;
  4. 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的實現更好。

+0

在第2點行。由於'int'部分是完全錯誤的,這看起來像是一個在Python中_declare_變量的不良嘗試。除非OP意味着別的東西,但我真的不知道。 –

+0

是的,我想知道這是否應該是'Coke = 0.75'(兩者都不是'int',但是...) – jonrsharpe

+0

重新加1(你已經有了我的+1) OP的意圖。另一個虛擬的+1,因爲沒有看到你的編輯之前,其他答案:) –

0

我有你正在尋找創建的代碼應該做更多的東西像這樣的感覺:

def get_drink_price(drink): 
    prices = { "Coke":0.75, "Pepsi":0.85} 
    return prices[drink] 


print get_drink_price("Coke") 

價格對象的功能僅僅是一本字典,這是一個標準的Python對象。你可以在這裏查詢更多關於字典的信息:http://docs.python.org/2/tutorial/datastructures.html#dictionaries,但是如果你想要從名字中找到飲料的價格,這是一個簡單,直接的方法。

相關問題