问题:如果用户输入单词!=“加密”或“解密”,我尝试再次调用ask_user(),但当输入正确时会出现相同的错误消息。
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)
我应该如何更改代码来解决这个问题?
最佳答案
您的问题是您使用的是 or
而不是 and
。
如果您考虑一下代码是如何解释的:
假设mode=“加密”
。一步一步:
mode != 'encrypt'
计算结果为 false
。到目前为止一切都很好。
mode != 'decrypt'
的计算结果为true
。这是一个问题。
发送到 if
的最终表达式将为:false 或 true
。最后,计算结果为 true
,导致进入 if
block 。
将其更改为和
意味着必须检查两种无效模式true
才能进入 block 。
关于python - 如何在 if/else 子句中正确使用 != 符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55326781/