python 在开始的for循环中,n是多少?“对于序列中的n:“

ehxuflar  于 2023-03-16  发布在  Python
关注(0)|答案(2)|浏览(157)

我想知道在for循环中变量n的技术描述是什么。我想我的问题是关于命名法的。如果说它是一个临时命名的变量,在循环结束时被丢弃,这是否准确?我怀疑有一个规范的方法来引用它。谢谢!

yizd12fk

yizd12fk1#

它是一个普通变量,恰好是赋值的目标,什么赋值,赋值由循环遍历的迭代器的__next__方法产生的值。
每个for循环的形式为

for <var> in <iterable>:
    ...

可以被转换成等价的while循环。

_itr = iter(<iterable>)
while True:
    try:
        <var> = next(_itr)  # Here's the assignment
    except StopIteration:
        break
    ...
del _itr

<var>在循环完成后不会被丢弃(临时变量_itr是,但它是for循环的一个真正的实现细节,Python代码从来都看不到)。
与任何其他赋值一样,<var>在第一次被赋值时被定义,并且一直存在到定义它的作用域结束或使用del语句将其删除。

a7qyws3x

a7qyws3x2#

在本例中:

for n in [1,2,3]:
   print(n)

print(n)

输出结果为:

1
2
3
3

也就是说,n是在for...行中创建的一个常规变量,在循环过程中,它获取序列中每一项的值。
在for循环完成后,n变量仍然是它被赋值的最后一个值(即序列中的最后一个值,除非您提前退出for循环)

相关问题