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

为何Python中if条件为True时else分支却被执行?求解答

代码执行流程解析

先把代码再贴一遍:

string = "aabbcc"
count = 3
while True:
    if string[0] == 'a':
        string = string[2:]
    elif string[-1] == 'b':
        string = string[:2]
    else:
        count += 1
        break
print(string)
print(count)

咱们一步步走一遍执行过程:

  1. 初始状态:string = "aabbcc",count = 3
  2. 第一次进入while True循环:
    • 检查if条件:string[0]是'a',条件成立,执行string = string[2:],此时string变成"bbcc"
    • 这次循环没有触发break,所以会重新进入循环
  3. 第二次进入while True循环:
    • 检查if条件:string[0]是'b',不满足
    • 接着检查elif条件:string[-1]是'c',不是'b',也不满足
    • 所以进入else分支:count加1变成4,然后执行break跳出循环
  4. 最后输出string的值"bbcc"和count的值4

你之前误以为是第一次if执行后直接走到else,其实是第一次循环只执行了if分支,循环继续;第二次循环时if和elif都不满足,才触发了else分支。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:12:05