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

Python中while循环的条件判定时机及执行逻辑疑问

问题解答

第一个代码的执行流程与输出原因

我们一步步拆解第一个代码的执行过程:

  • 初始值:l = 1,r = 2
  • 外层while l < r:此时1 < 2为True,进入外层循环体
  • 内层while l < 50:l从1开始持续自增,直到l = 50时,l < 50不成立,内层循环结束
  • 执行print(l):输出50
  • 执行l += 1:l变为51
  • 外层循环体执行完毕,回到条件判断:51 < 2为False,外层循环退出
  • 执行最后一行print(l):输出51

这就是为什么最终输出是50、51,而非你猜测的50或1——最后一行的print(l)会在外层循环结束后执行,而内层循环已经把l从1累加到了50,后续又自增到了51。

while循环的条件判定时机

Python的while循环是先判断条件,再执行循环体,并非“仅在每次迭代完成后才判定”:

  • 每次准备进入循环体前,都会先检查条件是否为True,只有条件满足才会执行循环体内的代码
  • 当一次循环体的代码全部执行完毕后,会再次回到条件判断的位置,重新检查条件,决定是否开启下一次循环

提前跳出循环的方式

不一定必须添加你写的那种if语句才能提前跳出循环,break语句本身就是用来直接终止当前所在的循环的,if只是用来判断触发跳出的条件而已。比如你可以简化逻辑,直接在需要跳出的位置用break:

l = 1
r = 2
while l < r:
    while l < 50:
        l += 1
    print(l)
    if l > 2:
        break  # 直接跳出外层循环
    l += 1
print(l)

这样执行后,输出会是50、50,因为跳出外层循环后,最后一行print(l)输出的是50。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:03:16