You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python嵌套range循环代码中,为何n的输出从3而非2开始?

为什么循环输出中n从3开始而非2?

咱们先把代码和对应的输出明确列出来,再一步步拆解逻辑:

你的代码

for n in range(2,5): 
    for x in range(2,n): 
        print(n,x)

实际输出

3 2
4 2
4 3

(注:如果你的输出是一行的3 2 4 2 4 3,只是因为print语句用了end=' '之类的参数让输出不换行,核心逻辑是一致的)


问题的关键在于Python中range()函数的左闭右开规则,以及内层循环的执行条件:

  1. 外层循环range(2,5)会生成序列[2, 3, 4],所以n会依次取2、3、4三个值。
  2. 内层循环for x in range(2, n)的执行逻辑:
    • 当n=2时,range(2,2)是一个空序列(因为range只包含起始值,不包含结束值,当起始值等于结束值时,没有元素)。内层循环没有可遍历的元素,所以print(n,x)完全不会执行,自然看不到n=2的输出。
    • 当n=3时,range(2,3)生成[2],内层循环执行1次,x=2,打印3 2。
    • 当n=4时,range(2,4)生成[2,3],内层循环执行2次:x=2时打印4 2,x=3时打印4 3。

所以只有当n≥3时,内层循环才有元素可以遍历,才会触发打印,这就是你看到输出里n从3开始的原因。

内容的提问来源于stack exchange,提问作者Amir Jadhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:43:55