什么是' x'的技术术语?在' for x ...'

时间:2017-03-16 21:13:52

标签: python python-3.x

如果我有代码......

list = ['Clemont', 'Albert', 'Shiro']
for x in range(len(list)):
    print(x)

...... x的技术术语是什么?我假设它"迭代对象"但也许这是一种误解;如果它不是误解,什么是迭代对象?

4 个答案:

答案 0 :(得分:10)

该上下文中x的正式名称为target,如Python的语言参考所示:

for_stmt ::=  "for" target_list "in" expression_list ":" suite
              ["else" ":" suite]

...将target_list(和target)定义为:

target_list     ::=  target ("," target)* [","]
target          ::=  identifier
                     | "(" target_list ")"
                     | "[" target_list "]"
                     | attributeref
                     | subscription
                     | slicing
                     | "*" target

如果您想知道目标可以实际接受或定义的内容,请鼓励您仔细阅读文档。根据大多数标准含义,您使用某种简单的标识符,例如变量名称(在本例中为x)来表示目标。

答案 1 :(得分:3)

“循环变量”是您可以获得的技术。

正式名称没有官方名称,因此与分配声明的左手侧没有任何不同;相同的规则适用于“循环”变量,就像它们对分配目标一样。

在任何其他Python开发人员中调用它“循环变量”都可以得到你的观点。

对于“什么是迭代对象?”,你可能会错误地使用 iterable iterator 这个术语,这就是for循环需要使其工作,这些术语的良好细分已经存在in another StackOverflow question

答案 2 :(得分:2)

我不知道它是否有“官方”术语,但我看到它称为迭代变量循环变量。这不是特定于Python的,它在许多不同语言中很常见。

Google Ngrams找到循环变量的更多匹配。

enter image description here

答案 3 :(得分:0)

我不确定这是否适合您对“技术术语”的定义,但在很多PEP文档中使用了表达“循环变量”,例如:对于iteratorsgenerators,虽然基本for循环本身似乎没有PEP。