我正在尝试实现以下输出:
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))
我设法通过在打印语句中添加count*(iter+1)
而不是count
来解决此问题,但是我想了解的是为什么 count 变量每次在新的时候都会重置 for 迭代开始。
提前致谢。
答案 0 :(得分:0)
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))
答案 1 :(得分:0)
这里发生的事情是您在进行交互后永远不会将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
从未增加。
请确保在每个letter
循环之后将while
设置为0:
iter = 0
count = 0
letter = 0
for iter in range(5):
while letter < 12:
letter+=1
count+=1
letter=0
答案 2 :(得分:0)
有!这可以通过在每个while循环后将字母重置为0来解决。 while循环只会在第一次运行,因为在第二次,字母值增加到13,并且不再是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