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

Python嵌套循环执行逻辑疑问:输入6时输出不符预期求解

问题分析:输入6时代码输出与预期不符的原因

先看你提供的代码:

stop = int(input())
result = 0
for a in range(4):
    print(a, end=': ')
    for b in range(2):
        result += a + b
        if result > stop:
            print('-', end=' ')
            continue
        print(result, end=' ')
    print()

当输入6时,实际输出是:

0: 0 1 
1: 2 4 
2: 6 - 
3: - - 

你的预期和实际不符,核心是两个基础知识点理解偏差:

1. result是累加变量,而非每次重新赋值

代码中用的是result += a + b,这等价于result = result + (a + b),也就是说result的值会在每次循环中持续累加,而不是每次都重置为a + b。

2. range(2)的取值范围是0和1,不包含2

range(n)生成的是从0到n-1的整数序列,所以range(2)对应的b值是0和1,不存在b=2的情况。

逐行模拟执行过程(输入6时)

初始化:stop=6,result=0

  • a=0时:

    • 打印0:
    • b=0:result = 0 + (0+0) = 0,0≤6 → 打印0
    • b=1:result = 0 + (0+1) = 1,1≤6 → 打印1
    • 换行 → 输出0: 0 1
  • a=1时:

    • 打印1:
    • b=0:result = 1 + (1+0) = 2,2≤6 → 打印2
    • b=1:result = 2 + (1+1) = 4,4≤6 → 打印4
    • 换行 → 输出1: 2 4
  • a=2时:

    • 打印2:
    • b=0:result =4 + (2+0)=6,6≤6 → 打印6
    • b=1:result=6 + (2+1)=9,9>6 → 打印-
    • 换行 → 输出2: 6 -
  • a=3时:

    • 打印3:
    • b=0:result=9 + (3+0)=12,12>6 → 打印-
    • b=1:result=12 + (3+1)=16,16>6 → 打印-
    • 换行 → 输出3: - -

这样就能完全对应上实际的输出结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:21:03