Python 为什么可以';";我";为循环而在内部操纵
为什么:Python 为什么可以';";我";为循环而在内部操纵,python,for-loop,Python,For Loop,为什么: for i in range(10): i += 1 print(i) 返回: 1 2 3 4 5 6 7 8 9 10 而不是: 2 4 6 8 10 2 4 6 8 10 ? 如果需要更多,这里将提供一些详细信息。您应该使用您范围内的步骤: for i in range(2,11,2): print(i) 输出: 相当于 iterator = iter(range(10)) try: while True: i = next(itera
for i in range(10):
i += 1
print(i)
返回:
1
2
3
4
5
6
7
8
9
10
而不是:
2
4
6
8
10
2
4
6
8
10
?
如果需要更多,这里将提供一些详细信息。您应该使用您范围内的步骤:
for i in range(2,11,2):
print(i)
输出:
相当于
iterator = iter(range(10))
try:
while True:
i = next(iterator)
i += 1
print(i)
except StopIteration:
pass
iter(范围(10))
产生的迭代器将产生值0
,1
,2
8
和9
每次使用它调用next
,然后在第11次调用时引发StopIteration
因此,您可以看到,i
在每次迭代中都会被范围(10)
中的一个新值覆盖,并且不会像在C-stylefor
循环中看到的那样递增。i
在每次循环迭代中被分配,覆盖对其值所做的任何更改
for i in range(10):
i += 1
print(i)
相当于:
i = 0 # first iiteration
i += 1
print(i)
i = 1 # second iiteration
i += 1
print(i)
i = 2 # third iiteration
i += 1
print(i)
# etc up to i = 9
i = 0 # first iiteration
i += 1
print(i)
i = 1 # second iiteration
i += 1
print(i)
i = 2 # third iiteration
i += 1
print(i)
# etc up to i = 9