如何在 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
永远是真的。如果 n
是 2
那么它就不是 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,所以包含 or
的 if
语句将始终解析为 True
问题:如果用户输入单词 != '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
永远是真的。如果 n
是 2
那么它就不是 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,所以包含 or
的 if
语句将始终解析为 True