Python 代码及其输出的 continue/break 功能
Posted
技术标签:
【中文标题】Python 代码及其输出的 continue/break 功能【英文标题】:functionalities of continue/ break on the code in Python and its output 【发布时间】:2015-09-22 20:15:41 【问题描述】:对于以下程序,我知道它们无效,但我在询问代码的逻辑。我并不是要运行这段代码,只是想知道它应该打印的输出,以及 continue/break 的功能。感谢您对此的反馈/评论/关注。
for x in [1, 1, 2, 3, 5, 8, 13]:
if 1 < x < 13:
continue
else:
print x
输出不应该是:2、3、5、8,因为它们在 1
found = False
for n in xrange(40,50):
if (n / 45) > 1:
found = True
break
print found
我认为它会打印出 46、47、48、49、50。但是代码中的中断,是否只是让进程暂停?
【问题讨论】:
continue
表示“跳过本回合的剩余部分并从下一回合继续循环”。 break
表示“退出整个循环”。
@khelwood 感谢您的评论。我明白了,然后第二个会打印出 True,我想?
@khelwood 第一个会打印出 1, 1, 2, 3, 5, 8, 13?因为它只是打印 x
@khelwood 提前感谢您的纠正
" 第一个会打印出 1, 1, 2, 3, 5, 8, 13? " -- 不,不会。请参阅我的第一条评论。
【参考方案1】:
在第一个循环中,continue
语句跳过 循环体的其余部分,以“继续”下一次迭代。由于1
和13
与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
。
【讨论】:
【参考方案2】:continue
使程序跳到循环的下一次迭代。因此,第一个块将打印 1 1 13,因为这些是唯一不满足 if
条件的元素。
break
终止了一个循环,因此第二个 sn-p 的循环似乎应该在 46 处终止。但是,由于 python 中的整数除法只保留整个部分,因此该循环将不间断地继续直到范围结束.
【讨论】:
以上是关于Python 代码及其输出的 continue/break 功能的主要内容,如果未能解决你的问题,请参考以下文章
Python随机产生10个70-100的数并输出,找出其中的最小值及其第一次出现的位置?
python输入小写字符串,输出字符串中出现字母最多的字母及其出现次数,如果有多
学习经验分享NO.16超全代码-python画Sigmoid,ReLU,Tanh等十多种激活函数曲线及其梯度曲线(持续更新)