我有一个 for 循环如下:
i=0
while true:
print("i initialized as", i)
for i in range(0,3):
print ("inside for",i)
i = i + 1
print("exit from for i value is",i)
Run Code Online (Sandbox Code Playgroud)
现在在 while 无限循环中有 for 并且每次在里面 for "i" 迭代都从 "0" 开始,理想情况下 "i" 应该得到递增的值并从 2 开始,输出是:
inside for 0
inside for 1
inside for 2
second iteration:
inside for 0
inside for 1
inside for 2
.
.
Run Code Online (Sandbox Code Playgroud)
理想的输出是这样的:
inside for 0
inside for 1
inside for 2
second iteration:
inside for 3
inside for 4
inside for 5
.
.
Run Code Online (Sandbox Code Playgroud)
所以重点是“i”值没有保存,每次循环从0开始,那么在进入for循环之前,我如何让“i”从最后一个递增的值开始。
您无法控制i何时使用for i in .... 它被设置为for循环时循环决定的任何内容。
在这里,只是不要i用于您的循环索引,使用匿名变量,例如_计数 3 次,保留i为“全局”计数器:
i=0
while i<10: # just to stop after a while for the demo
print("i initialized as", i)
for _ in range(0,3):
print ("inside for",i)
i = i + 1
print("exit from for i value is",i)
Run Code Online (Sandbox Code Playgroud)
输出:
inside for 0
inside for 1
inside for 2
exit from for i value is 3
i initialized as 3
inside for 3
inside for 4
inside for 5
exit from for i value is 6
i initialized as 6
inside for 6
inside for 7
inside for 8
exit from for i value is 9
i initialized as 9
inside for 9
inside for 10
inside for 11
exit from for i value is 12
Run Code Online (Sandbox Code Playgroud)
旁白:while true应该是while True。与 Java 和 C++ 不同,布尔值在 Python 中大写。
| 归档时间: |
|
| 查看次数: |
16244 次 |
| 最近记录: |