Python代码执行解析:为何未陷入无限循环?
这段Python代码为啥没无限循环?执行流程拆解
原代码
positive = -9 negative = -12 while negative: if positive: print(negative) positive += 3 negative += 3
运行结果
-12 -9 -6
为啥没无限循环?
在Python里,while循环的判断逻辑看的是条件的布尔值:整数里只有0会被当成False,其他任何非零整数都是True。
这段代码里negative每次循环都加3,从-12开始,加几次后就会变成0:
- 初始-12 → 非零→循环继续
- 加3变-9 → 非零→继续
- 加3变-6 → 非零→继续
- 加3变-3 → 非零→继续
- 再加3就成0了→布尔值是False,循环直接终止
所以等negative变成0时,while的条件不满足,循环就停了,不会无限跑。
具体执行步骤
我们一步步捋每一次循环的操作:
- 初始状态:
positive设为-9,negative设为-12 - 第一次循环:
- 检查
while negative:-12是非零,条件成立,进循环 - 检查
if positive:-9是非零,条件成立,打印-12 positive加3,变成-6;negative加3,变成-9
- 检查
- 第二次循环:
- 检查
while negative:-9非零,进循环 if positive:-6非零,打印-9positive变-3,negative变-6
- 检查
- 第三次循环:
- 检查
while negative:-6非零,进循环 if positive:-3非零,打印-6positive变0,negative变-3
- 检查
- 第四次循环:
- 检查
while negative:-3非零,进循环 if positive:0被当成False,不打印positive变3,negative变0
- 检查
- 循环结束:
- 再检查
while negative:0是False,循环直接终止
- 再检查
这就是为啥运行结果只有三行,且循环不会无限进行的原因。
内容的提问来源于stack exchange,提问作者M Nishad
相关产品推荐
相关产品推荐

