【问题标题】:How is the for-loop able to use a variable that isn't defined yetfor循环如何使用尚未定义的变量
【发布时间】:2016-11-20 08:04:22
【问题描述】:

我是编码新手,有点困惑。 for 循环如何/为什么可以使用尚未定义的变量?

例如:

demond = {'green':'grass', 'red':'fire', 'yellow':'sun'}

for i in demond:
    print(i)

输出:

绿色 黄色的 红色的

【问题讨论】:

  • 当您提出问题时,文本区域右侧有一个橙色的大如何格式化框,其中包含有用的信息。还有一个完整的格式化辅助工具栏。还有一个 [?] 按钮提供格式化帮助。 并且一个预览区域位于文本区域和发布您的问题按钮之间(这样您就必须滚动过去才能找到该按钮,以鼓励您查看它)显示您的帖子发布时的样子。请查看我对问题的编辑,以便您知道下次该怎么做。享受编码!
  • 你认为哪个变量没有在这里定义?

标签: python python-2.7 for-loop


【解决方案1】:

在python中,你不需要声明变量。在 C/C++/JAVA 等中,您必须先声明它们,然后再使用它们。

变量只不过是用于存储值的保留内存位置。解释器根据变量的数据类型分配内存并决定可以存储在保留内存中的内容。Python 变量不需要显式声明来保留内存空间。当您为变量赋值时,声明会自动发生。

【讨论】:

    【解决方案2】:

    有两点需要牢记:

    1. 因为 Python 是一种弱类型语言,所以您不需要将任何变量显式声明为某个对象类型。这是您已经知道的事情,以及为什么您可以分配事物而无需说明它们将是什么类型。

    2. For 循环结构在后台做了很多您没有明确看到的事情。这意味着虽然看起来并没有定义任何东西,但确实如此。

    考虑到这一点,我不想真正解释 for 循环是如何工作的,因为 there are already answers available for that 但重点是 python 中的 for 循环与以下伪代码相同。

    #set up your iterable
    demond = SOME_ITERABLE_OBJECT (this can be a list, string, dict, etc)
    
    #this
    for i in demond:
        do_something(i)
    
    #is the same as this
    i = demond[0] # the first item in demond
    do_something(i)
    i = demond[1] # the second item in demond
    do_something(i)
    i = demond[2] 
    ...
    ...
    ..
    i = demond[n] # the last item in demond
    do_something(i)
    

    现在您的后续问题可能是这样的:是什么使得在您的代码中,for i in demondi 设置为等于它的键?嗯,这只是 python 设计的一部分,特别是dicts 是如何工作的。 for 循环实际上在做的是调用可迭代对象next() function,直到可迭代生成器完成。每个可迭代对象都可以从 for 循环中获得不同的结果(参见第一个链接)。

    注意: 在我的代码示例中,我设置了i = demond[some_index]。这看起来像一个列表索引抓取,但它实际上只是为了显示它以某种顺序遍历列表。这是伪代码。请记住这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 2013-03-20
      • 1970-01-01
      相关资源
      最近更新 更多