在我的代码中:
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
那是什么?
答案 0 :(得分:5)
...因为那不是有效的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
但你应该能够看到基于字典的实现更好。
答案 1 :(得分:0)
我觉得你想要创建的代码应该更像这样:
def get_drink_price(drink):
prices = { "Coke":0.75, "Pepsi":0.85}
return prices[drink]
print get_drink_price("Coke")
函数中的price对象只是一个字典,它是一个标准的python对象。您可以在此处查找有关词典的更多信息:http://docs.python.org/2/tutorial/datastructures.html#dictionaries,但如果您要查找的是从名称中查找饮品的价格,这是一种简单,直接的方法。