相关疑难解决方法(0)

为什么`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.")
Run Code Online (Sandbox Code Playgroud)

它按预期授予对授权用户的访问权限,但它也允许未经授权的用户访问!

Hello. Please enter your name:
Bob
Access granted.
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我明确表示,只有在与nameKevin,Jon或Inbar相同时才授予访问权限.我也尝试过相反的逻辑if "Kevin" or "Jon" or "Inbar" == name,但结果是一样的.

python boolean boolean-expression

96
推荐指数
3
解决办法
2万
查看次数

标签 统计

boolean ×1

boolean-expression ×1

python ×1