我正在寫一個拒絕未經授權用戶訪問的安全系統。爲什麼`a == b或c或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
,但結果是一樣的。
寫作條件最常用的寫法是'如果名字在[「凱文」,「喬恩」,「Inbar」]:'' – djinn