javascript-为什么“a == x or y or z”总是计算为 True?
发布时间:2022-06-12 21:42:29 165
相关标签: # 前端
我正在编写一个拒绝未经授权的用户访问的安全系统。
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 新手遇到的,他们可能难以将反向问题的知识应用于他们的问题。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报