代码1:
iteration = 0
count = 0
while iteration < 5:
for letter in "hello, world":
count += 1
print "Iteration " + str(iteration) + "; count is: " + str(count)
iteration += 1
代码2:
iteration = 0
while iteration < 5:
count = 0
for letter in "hello, world":
count += 1
print "Iteration " + str(iteration) + "; count is: " + str(count)
iteration += 1
代码3:
iteration = 0
while iteration < 5:
count = 0
for letter in "hello, world":
count += 1
if iteration % 2 == 0:
break
print "Iteration " + str(iteration) + "; count is: " + str(count)
iteration += 1
答案 0 :(得分:2)
对于代码1 ,您将继续添加计数。因此在第一次迭代期间,计数变为12(“hello,world”的长度为12),然后在第二次迭代期间,您永远不会将计数重置为0,因此计数会持续添加,直到达到24,因为它再加上“你好,世界”的长度(12 + 12 = 24)。
0 + len("hello, world") = 12
12 + len("hello, world") = 24
and so forth
对于代码2 ,每次都会将count重置为0。这意味着计数总是等于12,因为“你好,世界”的长度是12。
0 + len("hello, world") = 12
reset to 0
0 + len("hello, world") = 12
and so forth
对于代码3 ,每次迭代为偶数时都会中断。这意味着对于迭代0,2和4,迭代返回值1,因为在for循环开始时将1添加到迭代。但是在奇数迭代期间,计数是12,因为程序没有突破for循环并且增加了“hello,world”的长度,即12。
count = 0
For loop
"h" in "hello, world"
Add 1, 0 -> Is it even or odd? Even, Do not add len("ello, world") to count
1
count = 0
For loop
"h" in "hello, world"
Add 1, 0 -> Is it even or odd? Odd, Do add len("ello, world") to count
12
答案 1 :(得分:1)
代码1:
您的计数设置在while
循环之外,因此它不会受到影响,因此会增加12 len(hello, world) = 12
代码2:
您的计数在while
循环内,因此它仅在每次迭代时重置。这就是为什么count = 12
保持不变的原因Iteration
在循环之外会增加。
代码3:
当你的Iteration
是偶数时,代码在第一次计数后就会中断。当它很奇怪时,它会很好地运行代码。
答案 2 :(得分:0)
在每次迭代期间的代码1中,您将count
的值添加到前一个值。在代码2中,在每次迭代开始时,您将重新分配count = 0
。在每次迭代中,在执行for循环之后,将12添加到先前的count值,在代码2的情况下,始终为0
。因此,在这两种情况下,计数值都是不同的。
在情况3中,执行for循环后,计数值将为1(如果迭代值为偶数)或12(如果迭代值为奇数)。这是因为检查i%2的if条件。因此,在情况3中,对于奇数和偶数,计数值是不同的。并且因为在每次迭代期间您重新分配count = 0
,所有奇数的计数值为12,所有偶数的计数值为1.