Python,有一个我一直收到的错误信息

时间:2014-01-26 22:06:29

标签: python python-3.x

在我的代码中:

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

那是什么?

2 个答案:

答案 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
  5. 完全不清楚你想用这个功能实现什么,但也许:

    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,但如果您要查找的是从名称中查找饮品的价格,这是一种简单,直接的方法。