Python - WHILE 循环嵌套在 FOR 循环中
Python - WHILE loop nested in FOR loop
我试图实现这个输出:
0;12
1;24
2;36
3;48
4;60
...但我得到了这个:
0;12
1;12
2;12
3;12
4;12
代码如下:
iter = 0
count = 0
letter = 0
for iter in range(5):
while letter < len("hello, world"):
letter+=1
count+=1
print("Iteration " + str(iter) + "; count is: " + str(count))
我设法通过在 print 语句中添加 count*(iter+1)
而不是 count
来解决这个问题,但我想了解的是为什么 count 变量每次新的 for 迭代开始时重置。
提前致谢。
letter
始终为 13,因为它没有重新初始化。所以 while 循环只会执行一次。要解决此问题,
count = 0
for iter in range(5):
letter = 0
while letter < len("hello, world"):
letter+=1
count+=1
print("Iteration " + str(iter) + "; count is: " + str(count))
这里发生的事情是你从未在交互后将 letter
设置为 0。所以 letter
始终保持在 12。
像这样打印信件:
iter = 0
count = 0
letter = 0
for iter in range(5):
while letter < 12:
letter+=1
count+=1
print(letter)
输出:
1
2
3
4
5
6
7
8
9
10
11
12
第一次 while 迭代后 letter
保持在 12,因此 while letter < 12:
永远不会 运行 所以 count
永远不会增加。
确保在每个 while
循环后将 letter
设置为 0:
iter = 0
count = 0
letter = 0
for iter in range(5):
while letter < 12:
letter+=1
count+=1
letter=0
有!这可以通过在每个 while 循环后将字母重置为 0 来解决。 while 循环只会第一次 运行 因为在第二次,字母值增加到 13 并且不再 < len("hello, world").
iter = 0
count = 0
letter = 0
for iter in range(5):
while letter < len("hello, world"):
letter+=1
count+=1
print("Iteration " + str(iter) + "; count is: " + str(count))
letter=0
我试图实现这个输出:
0;12
1;24
2;36
3;48
4;60
...但我得到了这个:
0;12
1;12
2;12
3;12
4;12
代码如下:
iter = 0
count = 0
letter = 0
for iter in range(5):
while letter < len("hello, world"):
letter+=1
count+=1
print("Iteration " + str(iter) + "; count is: " + str(count))
我设法通过在 print 语句中添加 count*(iter+1)
而不是 count
来解决这个问题,但我想了解的是为什么 count 变量每次新的 for 迭代开始时重置。
提前致谢。
letter
始终为 13,因为它没有重新初始化。所以 while 循环只会执行一次。要解决此问题,
count = 0
for iter in range(5):
letter = 0
while letter < len("hello, world"):
letter+=1
count+=1
print("Iteration " + str(iter) + "; count is: " + str(count))
这里发生的事情是你从未在交互后将 letter
设置为 0。所以 letter
始终保持在 12。
像这样打印信件:
iter = 0
count = 0
letter = 0
for iter in range(5):
while letter < 12:
letter+=1
count+=1
print(letter)
输出:
1
2
3
4
5
6
7
8
9
10
11
12
第一次 while 迭代后 letter
保持在 12,因此 while letter < 12:
永远不会 运行 所以 count
永远不会增加。
确保在每个 while
循环后将 letter
设置为 0:
iter = 0
count = 0
letter = 0
for iter in range(5):
while letter < 12:
letter+=1
count+=1
letter=0
有!这可以通过在每个 while 循环后将字母重置为 0 来解决。 while 循环只会第一次 运行 因为在第二次,字母值增加到 13 并且不再 < len("hello, world").
iter = 0
count = 0
letter = 0
for iter in range(5):
while letter < len("hello, world"):
letter+=1
count+=1
print("Iteration " + str(iter) + "; count is: " + str(count))
letter=0