Python新手求助:输入为6时指定for循环代码输出9的原因
问题解答:Python for循环输出疑惑
你遇到的核心误解有两点:
- 你推导n=1轮次结束后
result值为6,实际计算结果为5 - 你误以为所有输出都是循环内打印的
n值,实际最后一行9是循环结束后单独打印的result值,不是n的取值。
逐轮执行流程拆解(输入stop=6)
初始状态:result = 0,range(10)生成的遍历序列为0、1、2、3...9
- 第一轮(n=0)
- 执行
result += n + 2:result = 0 + 0 + 2 = 2 - 判断
result > stop:2 > 6不成立 - 执行
print(n),输出0
- 执行
- 第二轮(n=1)
- 执行
result += n + 2:result = 2 + 1 + 2 = 5 - 判断
result > stop:5 > 6不成立 - 执行
print(n),输出1
- 执行
- 第三轮(n=2)
- 执行
result += n + 2:result = 5 + 2 + 2 = 9 - 判断
result > stop:9 > 6成立,直接执行break跳出循环 - 本轮
print(n)不会执行,因此不会输出2
- 执行
- 循环完全结束后,执行代码最后一行
print(result),输出当前result的取值9
内容的提问来源于stack exchange,提问作者Calvin Redburn
相关产品推荐
相关产品推荐

