Python嵌套for循环结合break语句无打印输出问题咨询
Python代码无打印输出的原因
核心问题是缩进错误导致内层循环逻辑完全不符合预期,具体执行逻辑拆解如下:
- 原代码中内层
for b in range(5)循环里,和if判断同级的位置多写了一个break,这意味着不管a + b ==5的条件是否成立,内层循环跑完第一次判断就会直接触发break退出。 range(5)生成的整数序列是0、1、2、3、4,内层循环每次启动后,b永远只会取到第一个值0,根本没有机会遍历到1、2、3、4:外层a从0到4依次取值时,第一次进入b循环拿到b=0,此时a+0的最大值为4(当a=4时),永远不可能满足等于5的条件;条件不成立就会直接触发同级的break跳出内层循环,进入下一轮a的迭代。- 整个执行流程中b从来没有取到4的机会,自然碰不到逻辑上预期的
a=1、b=4的组合,也不会触发任何打印逻辑。
修正方案
删掉和if判断同级的多余break即可,修正后代码如下:
def fun(): for a in range(5): for b in range(5): if a + b == 5: print(a,b) break fun()
运行后会正常打印第一组满足条件的结果:1 4
内容的提问来源于stack exchange,提问作者Tan Yong Boon
相关产品推荐
相关产品推荐

