Python 中代码的 continue/break 功能及其输出

functionalities of continue/ break on the code in Python and its output

对于以下程序,我知道它们是无效的,但我在询问代码的逻辑。我不是要 运行 这段代码,只是想知道它将打印的输出,以及继续/中断的功能。非常感谢你的 feedback/comment/concern。

for x in [1, 1, 2, 3, 5, 8, 13]:
    if 1 < x < 13:
        continue
    else:
        print x

输出不应该是:2,3,5,8 因为它们在 1< x< 13 范围内吗? continue 在此代码中的作用是什么?它会改变结果吗?

found = False
for n in xrange(40,50):
    if (n / 45) > 1:
        found = True
        break
print found

我认为它会打印出 46、47、48、49、50。但是代码中的那个中断,是否只是暂停了进程?

在第一个循环中,continue 语句 跳过 循环体的其余部分,到 'continue' 进行下一次迭代。由于 113 不匹配 1 < x < 13 链式比较,因此实际上只打印前 2 个和最后一个值,其余的将被跳过。

这里 continue 并不重要,print 只在 else 套件中执行 无论如何 ;你也可以使用 pass 而不是 continue:

for x in [1, 1, 2, 3, 5, 8, 13]:
    if 1 < x < 13:
        pass
    else:
        print x

或使用if not (1 < x < 13): print x.

在第二个循环中,break 完全结束 循环。没有打印数字(任何地方都没有 print n),只有 print found 语句打印了 False。那是因为在 Python 2 / 中,整数只给你 下限除法 所以 if 语句永远不会变成真的(只有 n = 90或更大 n / 45 会变成 2 或更大)。

这两个语句的一个更好的例子是在循环之前使用 print,在语句前后的循环中,然后打印,这样你就可以看到执行了什么代码:

print 'Before the loop'
for i in range(5):
    print 'Start of the loop, i = {}'.format(i)
    if i == 2:
        print 'i is set to 2, continuing with the next iteration'
        continue
    if i == 3:
        print 'i is set to 3, breaking out of the loop'
        break
    print 'End of the loop'
print 'Loop has completed'

输出:

Start of the loop, i = 0
End of the loop
Start of the loop, i = 1
End of the loop
Start of the loop, i = 2
i is set to 2, continuing with the next iteration
Start of the loop, i = 3
i is set to 3, breaking out of the loop
Loop has completed

注意i = 2后面没有End of the loop,根本就没有i = 4

continue 使程序跳到循环的下一次迭代。因此,第一个块将打印 1 1 13,因为这些是唯一不满足 if 条件的元素。

break 终止一个循环,因此第二个片段的循环似乎应该在 46 处终止。但是,由于 python 中的整数除法只保留了整个部分,因此该循环将不间断地继续直到范围结束。