我正在写一个拒绝未经授权用户访问的安全系统。为什么`a == b或c或d`总是评估为True?
import sys
print("Hello. Please enter your name:")
name = sys.stdin.readline().strip()
if name == "Kevin" or "Jon" or "Inbar":
print("Access granted.")
else:
print("Access denied.")
它按预期授予授权用户的访问权限,但它也允许未经授权的用户使用!
Hello. Please enter your name:
Bob
Access granted.
为什么会发生这种情况?我明白表示只在name
等于Kevin,Jon或Inbar时授予访问权限。我也尝试了相反的逻辑,if "Kevin" or "Jon" or "Inbar" == name
,但结果是一样的。
写作条件最常用的写法是'如果名字在[“凯文”,“乔恩”,“Inbar”]:'' – djinn