Почему `a == b или c или d` всегда оценивается как True? [Дубликат]

На этот вопрос уже есть ответ здесь:

Как проверить несколько переменных против значения? 20 ответов

Я пишу систему безопасности, которая запрещает доступ неавторизованным пользователям.

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.")

Он предоставляет доступ авторизованным пользователям, как и ожидалось, но также позволяет неавторизованным пользователям!

Hello. Please enter your name:
Bob
Access granted.

Почему это происходит? Я'Я четко заявил, что предоставлять доступ только тогда, когдаname равен Кевину, Джону или Инбару. Я также попробовал противоположную логику,if "Kevin" or "Jon" or "Inbar" == name, но результат тот же.

Ответы на вопрос(1)

Ваш ответ на вопрос