什么是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)
答案 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>它们适用于您的函数中的number1
和number2
。请记住,该函数仅返回结果。如果您想查看结果,请使用:
print add_nums(3,5)
8将打印到控制台。至于你要问的for循环,很明显你需要一些好的教程来阅读。以下是我学习Python的路线:
仔细阅读文档的基础知识。
除了阅读Python的官方语法之外,没有什么比这更有帮助了。您将获得Python语言的一些知识,并学习必须掌握的基本格式。我开始“润湿你的胃口”并阅读“4.5传递陈述”。尝试尽可能多地了解,但如果你不能得到所有东西,请不要担心 - 这就是下一部分的用途:
- 醇>
找一个好的动手教程
学习的最佳方式是通过经验。但是当你刚开始的时候,你需要一些帮助来学习如何磨练你的技能,并真正了解它是如何运作的。 Codecademy是一个很棒的教程,教你开始编写基础到中级程序时需要知道的一切。您将离开Codecademy,获得您认为您将获得的更多知识,并且从那里学习的可能性是无穷无尽的。它确实从基础开始,所以上面的步骤1没有必要,但我仍然建议它在跳进Codecademy之前。
这是我学习Python的路径,它对我帮助很大。我仍然认为自己是一个初学者并且需要学习很多东西,但从这些基础知识开始,第一步就是成为最好的。我希望你像我一样喜欢Codecademy和Python!
<强>来源:强>