这个变量在我的Python代码中是什么类型的,我该如何使用它?

时间:2013-09-22 00:34:22

标签: python

什么是food?它是局部变量吗?一个全局变量列表?我为什么要用它?它列出了吗?有人可以解释为什么for ... in会这样运作吗?

shopping_list = ["banana", "orange", "apple"]

stock = { "banana": 6,
    "apple": 0,
    "orange": 32,
    "pear": 15
}

prices = { "banana": 4,
    "apple": 2,
    "orange": 1.5,
    "pear": 3
}


def compute_bill(food):
    total = 0
    for item in food:
        if stock[item] > 0:
            stock[item] -= 1
            total += prices[item]
    else:
            pass
    return total
print compute_bill(food)

2 个答案:

答案 0 :(得分:5)

food是您传递给compute_bill函数的参数。但是当你这样做时:

print compute_bill(food)

它试图找到一个名为food的全局变量。这不存在。我想你正在寻找shopping_list

compute_bill函数中,food是一个局部变量。您无法在变量之外访问它(除非您将其全球化)。

如果您将shopping_list传递给compute_bill,则food将成为该列表。然后,您只需使用for循环遍历列表。

答案 1 :(得分:0)

我强烈建议在询问有关Python的问题之前先学习Python的基础知识。

在这种情况下,食物就是所谓的参数。参数有点像占位符,它被传递到函数中,以便您可以执行操作而无需确切知道您正在执行操作的内容。我们来看一个例子:

  
    

创建一个将两个数字相加并返回结果的函数。

         

问题:您不知道任何一个数字的值。

  

这是参数如此有用的地方。参数基本上是您使用函数定义的变量。因此,我们可以将它们命名为普通变量,并将它们放在函数的括号()中。

  
    

我们将第一个参数命名为 number1

         

我们将第二个参数命名为 number2

  

让我们来看看它的样子:

def add_nums(number1,number2):

    return number1 + number2

如您所见,我们在add_nums函数中传递了两个参数,并返回将两者相加的结果。

现在我们有了我们的功能,我们可以决定两个数字应该是什么。假设number1等于3而number2等于5.我们现在可以将这些名为 arguements 的值插入到函数调用中:

add_nums(3,5)

将返回3(number1)和5(number2)的总和,等于8.如您所见,当计算机读取代码时,它使用了两个参数3和5,并且替换< / em>它们适用于您的函数中的number1number2。请记住,该函数仅返回结果。如果您想查看结果,请使用:

print add_nums(3,5)

8将打印到控制台。至于你要问的for循环,很明显你需要一些好的教程来阅读。以下是我学习Python的路线:

  
    
        
  1. 仔细阅读文档的基础知识。

             

    除了阅读Python的官方语法之外,没有什么比这更有帮助了。您将获得Python语言的一些知识,并学习必须掌握的基本格式。我开始“润湿你的胃口”并阅读“4.5传递陈述”。尝试尽可能多地了解,但如果你不能得到所有东西,请不要担心 - 这就是下一部分的用途:

  2.     
  3. 找一个好的动手教程

             

    学习的最佳方式是通过经验。但是当你刚开始的时候,你需要一些帮助来学习如何磨练你的技能,并真正了解它是如何运作的。 Codecademy是一个很棒的教程,教你开始编写基础到中级程序时需要知道的一切。您将离开Codecademy,获得您认为您将获得的更多知识,并且从那里学习的可能性是无穷无尽的。它确实从基础开始,所以上面的步骤1没有必要,但我仍然建议它在跳进Codecademy之前。

  4.        

这是我学习Python的路径,它对我帮助很大。我仍然认为自己是一个初学者并且需要学习很多东西,但从这些基础知识开始,第一步就是成为最好的。我希望你像我一样喜欢Codecademy和Python!

<强>来源:

http://docs.python.org/2/tutorial/index.html

http://www.codecademy.com/