Python嵌套循环中范围定义差异导致输出不同的原因咨询
为什么两种嵌套循环写法输出不同?
核心原因就是内层循环的执行次数由range()的范围决定,两种写法的内层循环范围完全不一样。
第一种写法:固定次数的内层循环
内层循环用range(1,4),这个范围是固定的——不管外层的outer是1、2还是3,内层都会循环3次(遍历1、2、3)。所以外层每跑一轮,内层就输出3行,3轮下来就是9行,也就是你看到的那种“每行3个”的正方形排列结果。
第二种写法:次数随外层变化的内层循环
内层循环用range(1, outer+1),这个范围是跟着outer动态变化的:
- 当
outer=1时,range(1,2)只包含1,内层只跑1次; - 当
outer=2时,range(1,3)包含1、2,内层跑2次; - 当
outer=3时,range(1,4)包含1、2、3,内层跑3次;
这样内层循环次数从1到3逐步增加,总共有1+2+3=6行输出,就是你看到的那种“每行数量递增”的三角形排列结果。
这刚好对应你学习的星型图案场景:第一种写法会生成每行数量相同的正方形星阵,第二种会生成每行数量递增的三角形星阵。
内容的提问来源于stack exchange,提问作者ETPROG....
相关产品推荐
相关产品推荐

