如何在 if/else 子句中正确使用 != 符号?

How to use != sign correctly in if/else clause?

问题:如果用户输入单词 != 'encrypt' 或 'decrypt',我试图再次调用 ask_user(),但是当输入 IS 时出现相同的错误消息正确。

def ask_user():
    while True:
        mode = input("Would you like to encrypt or decrypt:   ")
        if mode != 'encrypt' or mode != 'decrypt':          
            print("Please retry; you must type lowercase. \n")
            ask_user()

        else:
            message = input("Enter your message:   ")

似乎在同一行使用多个 != 语句并不像我想象的那样有效:

# test to support above observ.
for n in range(4):
    if n != 2 or n != 3:
        print('me')
    else:
        print(n)

我应该如何修改代码来解决这个问题?

n != 2 or n != 3 永远是真的。如果 n2 那么它就不是 3。所有其他值都不是 2.

您打算n != 2 and n != 3

您的问题是您使用的是 or 而不是 and。 如果您考虑如何解释代码:

假设mode="encrypt"。一步一步:

mode != 'encrypt' 的计算结果为 false。目前一切顺利。

然而,

mode != 'decrypt' 的计算结果为 true。这是一个问题。

发送到 if 的最终表达式将是:false or true。这最终计算为 true,导致进入 if 块。

将其更改为 and 意味着必须检查两种无效模式 true 才能进入块。

您需要使用 and,而不是 or。因为 n 永远不会同时等于 3 和 4,所以包含 orif 语句将始终解析为 True