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

Python条件分支中else语句无法正常工作问题:无论输入何种CPU均输出‘CPU FOUND’

问题原因分析

嘿,我来帮你搞定这个问题!你的条件判断逻辑犯了一个Python新手很容易踩的坑——or连接的表达式写法错误。

看你写的if语句:

if cpu == "Ryzen 9 5950X" or "i9-10900K" or "i9-10900KF":

Python会把这个表达式拆成三个独立的判断:

  1. cpu == "Ryzen 9 5950X"(这个是正常的比较)
  2. "i9-10900K"(非空字符串在布尔判断里永远是True)
  3. "i9-10900KF"(同样永远是True)

也就是说,哪怕第一个比较不成立,后面的字符串本身会被判定为True,导致整个if条件永远为真,自然永远走不到else分支。

解决方法

这里有两种简洁可靠的修正方式:

方式1:补全每个比较表达式

把or连接的每个部分都写成完整的cpu == 目标值:

cpu = input("CPU: ")
if cpu == "Ryzen 9 5950X" or cpu == "i9-10900K" or cpu == "i9-10900KF":
    print("CPU FOUND")
else:
    print("CPU NOT FOUND")

方式2:使用in操作符(更推荐)

把所有目标CPU型号放到一个集合(或列表)里,用in判断输入是否在集合内,这种写法在选项较多时更简洁易维护:

cpu = input("CPU: ")
target_cpus = {"Ryzen 9 5950X", "i9-10900K", "i9-10900KF"}
if cpu in target_cpus:
    print("CPU FOUND")
else:
    print("CPU NOT FOUND")

用集合的原因是in操作在集合中的查找效率比列表更高,当然如果选项少,用列表也完全没问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 05:02:29