무단 사용자에 대한 액세스를 거부하는 보안 시스템을 작성 중입니다.`a == b or c or d`가 항상 True로 평가되는 이유는 무엇입니까?
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
이 Kevin, Jon 또는 Inbar와 같을 때만 액세스 권한을 부여하겠다고 분명히 말했습니다. 나는 또한 반대 논리 인 if "Kevin" or "Jon" or "Inbar" == name
을 시도했지만 그 결과는 같습니다.
조건을 쓰는 데 사용되는 대부분의 관용어는 'if name in [Kevin ","Jon ","Inbar "] : – djinn