为什么`a == b或c或d`总是评估为True?
我正在编写一个拒绝访问未授权用户的安全系统。
import sysprint("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
,但结果是一样的。
互换的青春
qq_笑_17