Dlaczego `a == b lub c lub d` zawsze ma wartość Prawda? [duplikować]

To pytanie ma już tutaj odpowiedź:

Jak przetestować wiele zmiennych względem wartości? 20 odpowiedzi

Piszę system bezpieczeństwa, który odmawia dostępu nieautoryzowanym użytkownikom.

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

Zapewnia dostęp do autoryzowanych użytkowników zgodnie z oczekiwaniami, ale pozwala także nieautoryzowanym użytkownikom!

Hello. Please enter your name:
Bob
Access granted.

Dlaczego tak się dzieje? Jasno stwierdziłem, że udzielam dostępu tylko wtedy, gdyname równa się Kevin, Jon lub Inbar. Próbowałem też odwrotnej logiki,if "Kevin" or "Jon" or "Inbar" == name, ale wynik jest taki sam.

questionAnswers(1)

yourAnswerToTheQuestion