返回

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 新手遇到的,他们可能难以将反向问题的知识应用于他们的问题。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像
下一篇
nosql-无法组织Cassandra表结构 2022-06-12 19:43:07