在for
循环构造类似于此的语言中:
for (int i = 0; i < max; i++) {}
此示例中的变量i
通常以be referred to作为&#34;计数器变量&#34;。
Python中循环变量的等效技术名称是什么,其中for
循环更像for each
?
for i in ('a', 'b', 'c'):
这里&#34;反变量&#34;似乎远不那么明显了。
答案 0 :(得分:4)
首先,Python for
循环不像C for
循环。没有计数器,因为Python构造是Python tutorial。另请参阅iterable:
Python中的
for
语句与您在C或Pascal中使用的语句略有不同。而不是总是迭代数字的算术级数(如在Pascal中),或者让用户能够定义迭代步骤和暂停条件(如C),Python的for
语句迭代任何序列的项目(列表或字符串),按它们出现在序列中的顺序。
构造实际上需要for
statement documentation,并且一直循环直到到达迭代器的末尾。它允许您指定一个或多个名称以从迭代器分配下一个对象; Python文档将此称为目标列表。
请参阅{{3}}:
依次使用标准分配规则
将每个项目分配到目标列表
因为目标列表是从iterable中分配的元素,所以您也可以在iterable的上下文中引用变量。对于列表,您可以讨论列表元素,对于循环文件,目标被分配下一个行等。
答案 1 :(得分:1)
我会把它称为&#34;占位符变量/ s&#34;在&#34;变量,它是for循环迭代的项目的占位符&#34;。
正如@ Ajax1234指出的那样,它可以是一个列表元素的占位符,或者是一个字典元素,一个文件,几乎可以在for循环中迭代的项目选择中的对象。
还可以注意到,在使用“占位符”这个词时,我是文字的 - 它可以是你想要的任何东西,例如:
a = 'a'
b = 'b'
c = 'c'
d = 'd'
print(f'a = {a}')
list2 = [a, b, c, d]
for a in list2:
print(a)
print(f'a = {a}')
输出:
a = a
a
b
c
d
a = d
请注意,该占位符变量实际上包含迭代的最后一个对象,在这种情况下,a
会重新分配字符串&#39; a&#39;&#39; b&#39;&#39; C&#39;&#39; d&#39;
答案 2 :(得分:0)
在这个例子中
for (int i = 0; i < max; i++) {}
i
用于帮助确定循环何时结束/停止迭代。
Python在幕后为您自动执行此操作。
此示例中的变量i
:
for i in ('a', 'b', 'c'):
是一个占位符,用于保存正在迭代的值。
i
变量通常由名称调用,如:
在幕后,当for循环用完要迭代的项目时,会引发StopIteration条件并且for循环将退出。
documentation引用了这个:
for_stmt ::= “for” target_list “in” expression_list “:” suite
[“else” “:” suite]
表达式列表评估一次;它应该产生一个可迭代的 宾语。为expression_list的结果创建一个迭代器。 然后对于由提供的每个项目执行一次该套件 迭代器,按迭代器返回的顺序。每个项目依次是 使用标准规则分配到目标列表 赋值(参见赋值语句),然后是套件 执行。当物品耗尽时(这是当时的物品) sequence为空或迭代器引发StopIteration异常), else子句中的套件(如果存在)被执行,并且循环 终止。
注意:target_list
并不意味着该项目是实际列表。
答案 3 :(得分:0)
我总是使用术语&#34;受控变量&#34;,因为循环控制其值。大多数语言的程序员似乎都明白这一点,尽管我很难说它是行业标准。