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

这个变量在我的Python代码中是什么类型的,我如何使用它?,python,Python,什么是食物?它是局部变量吗?全局变量列表?为什么我可以用它?是单子吗?有人能解释一下为什么。。。在中是这样工作的吗 shopping_list = ["banana", "orange", "apple"] stock = { "banana": 6, "apple": 0, "orange": 32, "pear": 15 } prices = { "banana": 4, "apple": 2, "orange": 1.5, "pear":

什么是食物?它是局部变量吗?全局变量列表?为什么我可以用它?是单子吗?有人能解释一下为什么。。。在中是这样工作的吗

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)

food
是传递给
compute\u bill
函数的参数。但当你这样做的时候:

print compute_bill(food)
它试图找到一个名为
food
的全局变量。这是不存在的。我想你在找
购物清单

compute\u bill
函数中,
food
是一个局部变量。您不能在变量之外访问它(除非将其全局化)


如果您将
购物清单
传递到
计算账单
,则
食品
将成为该清单。然后,您只需使用for循环遍历列表。

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

在这种情况下,食物就是所谓的参数。参数有点像传递到函数中的占位符,这样您就可以执行操作,而不必确切地知道您正在对其执行操作。让我们看一个例子:

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

问题:您不知道这两个数字的值

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

我们将命名第一个参数number1

我们将命名第二个参数number2

让我们看看这是什么样子:

def add_nums(number1,number2):

    return number1 + number2
如您所见,我们在
add_nums
函数中传递了两个参数,并返回了将这两个参数相加的结果

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

add_nums(3,5)
将返回3(number1)和5(number2)之和,等于8。如您所见,当计算机通读代码时,它接受了两个参数3和5,并将它们替换为函数中的
number1
number2
。请记住,函数只返回结果。如果要查看结果,请使用:

print add_nums(3,5)
和8将被打印到控制台。至于你所问的for循环,很明显你需要一些好的教程来通读。以下是我学习Python的路线:

  • 通读文档的基础知识。

    没有什么比通读Python的官方语法更有用的了。您将获得一些Python语言的丰富知识,并学习掌握必要的基本格式。我从“润湿你的食欲”开始,一直读到“4.5通过声明”。尽可能多地理解,但是如果你没有得到所有的东西,不要担心——这就是下一部分的目的:

  • 找到一个好的实践教程

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

  • 这是我学习Python的途径,它对我帮助很大。我仍然认为自己是一个初学者,有很多东西需要学习,但是从这些基本原理开始是第1步,成为我所能做到的最好。我希望你和我一样喜欢Codecademy和Python

    来源:


    食物
    是某种类型的集合。数组、列表、集合等等。它是代码可以迭代的东西。
    for
    语句只是对其进行迭代。每次循环运行时,
    都是该集合中的一个值。具体来说,
    food
    是该函数中的一个局部变量,作为参数传递给函数。如果最后一行是
    print compute\u bill(shopping\u list)
    Rob,则此代码段更有意义,除非您引用的是特定的教程,否则请不要在问题标题中引用“code Academy”。“代码学院:编程理论”并没有向浏览问题列表的人们传达任何有用的信息,尽管它会成为一部很棒的极客伙伴警察电影的标题。看看我是如何把你的标题改写成这个问题的。我解决了你的两个问题,但我看到了其余的,我累了。