为什么这"is not" if 语句不起作用?



这是我的代码

if diff != "1" or diff != "2" or diff != "3":
            print("You need to pick either 1, 2 or 3n")

由于某种原因,结果是,

Pick a difficulty:
1) Easy
2) Medium
3) Hard
>> 2
You need to pick either 1, 2 or 3

我希望if语句检查变量 diff 不是等于字符串 1、2和3 。但是,当我放置 1、2或3 时,何时diff不等于数字时的错误消息。为什么会发生?

应用"不"的逻辑您要检查是否是任何有效结果,然后反转。(也)

if not (diff == "1" or diff == "2" or diff == "3"):

或应用demorgan定理,这将等效于"不等于1,不等于2,不等于3"

if diff != "1" and diff != "2" and diff != "3":

当然,Python还具有innot in操作员,这使得更加干净:

if diff not in ("1", "2", "3"):

您需要使用,而不是OR。如果输入1,则diff != "1"返回true。

您的代码应该看起来像这样:

if diff != "1" and diff != "2" and diff != "3":
            print("You need to pick either 1, 2 or 3n")

最新更新