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

Python中使用or与sys.exit处理无效输入的问题咨询

问题解答

关于第一个代码的判断

你的判断完全正确。这段代码里的or逻辑存在致命问题:不管user_choice是"1"、"2"还是"3",三个条件里至少有两个是成立的(比如输入"1"时,user_choice != "2"和user_choice != "3"都是True)。而or逻辑只要有一个条件为True,整个表达式就为True,所以无论输入有效还是无效,程序都会触发退出。

修复后的代码是否可行?

你写的修复代码是可行的,它通过先判断有效输入并跳过(pass),再对无效输入执行退出逻辑,确实能解决问题。但这种写法属于"正向判断后反向处理",逻辑上不够直接,可读性稍差。

更优的处理方式

推荐直接用in操作符检查输入是否在有效选项集合中,代码更简洁直观:

# Sub Code: Invalid Choice Handler
if user_choice not in {"1", "2", "3"}:
    sys.exit("You typed an invalid choice, you lose.")

用集合{"1", "2", "3"}来存储有效选项,不仅代码更短,集合的成员查找效率也比多个or判断更高(尤其是当有效选项数量较多时)。另外注意拼写:你代码里的loose是错误的,正确拼写是lose。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:30:56