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

Python while循环异常求助:输入合法选项仍触发重试提示

问题修正:Python输入验证循环逻辑错误

你的代码出现问题的核心原因是逻辑表达式写法错误,导致循环条件始终成立,即便输入正确选项也会触发重试提示:

  • while option.lower() != 'A' or 'B' or 'C' 这种写法的逻辑是:只要option.lower() != 'A'为真,或者'B'本身为真(非空字符串在Python中永远是布尔真),或者'C'为真,条件就成立。这意味着无论输入什么,循环都会一直执行。
  • 同时你将输入转成小写后,却和大写的'A'/'B'/'C'比较,逻辑不匹配。
  • 后续的if判断也重复了同样的错误。

修正后的代码

option = input('\nChoose A, B or C: ').strip().lower()
while option not in {'a', 'b', 'c'}:
    print('\nThat option is not available, try again')
    option = input('\nChoose A, B or C: ').strip().lower()
print(f'You chose: {option.upper()}')

关键修正点

  • 添加strip()去除输入前后的空格,避免用户误输入带空格的无效内容
  • 统一将输入转成小写,用not in {'a', 'b', 'c'}判断是否属于有效选项,逻辑清晰且高效
  • 循环结束后直接打印结果,无需额外if判断(循环已确保option为有效选项)
  • 用upper()将结果转回大写,符合常规输入展示习惯

内容的提问来源于stack exchange,提问作者Carlos De Avila

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:00:54