最佳答案
我正在编写一个安全系统,拒绝访问未经授权的用户。
name = input("Hello. Please enter your name: ")
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
,但结果是相同的。
这个问题旨在作为这个非常常见问题的规范重复目标。还有一个流行的问题 如何测试多个变量对单个值的相等性?也有同样的根本问题,但是比较目标是相反的。这个问题不应该作为那个问题的副本而结束,因为这个问题是 Python 的新手遇到的,他们可能难以将反问题中的知识应用到他们的问题中。