关于 python 中的 or 运算符的基本问题
A basic question regarding or operator in python
我很困惑为什么无论用户输入什么,消息总是像 'Welcome xxx' 那样弹出。
username = input('Please enter your username: ')
if username == 'admin' or 'Admin' or 'ADMIN':
print(f'Welcome {username}')
抱歉,我知道这似乎是一个愚蠢的问题,但希望它能帮助像我这样的初学者更好地理解或操作 python。
感谢您的帮助。
您想参加:
if username == 'admin' or username == 'Admin' or username =='ADMIN':
这里发生的事情是把 Python 当作一种口头语言。
你打算用什么:
if username == 'admin' or 'Admin' or 'ADMIN':
# stuff
是指:
if <condition>:
"condition" 如果用户名是 'admin'、'Admin' 或 'ADMIN'。
但这不是 python 的工作方式。 Python 读取
if username == 'admin' or 'Admin' or 'ADMIN':
# code
作为
if <condition 1> or <condition 2> or <condition 3>:
# code
--
Condition 1: username == 'admin'
is FALSE.
--
Condition 2: 'Admin'
is TRUE. This is because 'Admin' is a string literal object, which exists, and is non-zero, not null, and not empty, and therefore true.
这就像去
myString = "any string"
if myString:
# code is executed because myString is not empty.
但你却在做
if 'my string':
# this code would run.
--
Condition 3: 'ADMIN'
is TRUE, for the same reason Condition 2 is TRUE.
--
这里发生的事情是 if
条件始终为真,无论输入什么。 因为
if username == 'admin' or 'Admin' or 'ADMIN':
# code
评估为
if FALSE or TRUE or TRUE:
# code
因此,将始终评估为真并打印 username
变量中的任何内容,即使它不是 'admin'.
我很困惑为什么无论用户输入什么,消息总是像 'Welcome xxx' 那样弹出。
username = input('Please enter your username: ')
if username == 'admin' or 'Admin' or 'ADMIN':
print(f'Welcome {username}')
抱歉,我知道这似乎是一个愚蠢的问题,但希望它能帮助像我这样的初学者更好地理解或操作 python。
感谢您的帮助。
您想参加:
if username == 'admin' or username == 'Admin' or username =='ADMIN':
这里发生的事情是把 Python 当作一种口头语言。
你打算用什么:
if username == 'admin' or 'Admin' or 'ADMIN':
# stuff
是指:
if <condition>:
"condition" 如果用户名是 'admin'、'Admin' 或 'ADMIN'。
但这不是 python 的工作方式。 Python 读取
if username == 'admin' or 'Admin' or 'ADMIN':
# code
作为
if <condition 1> or <condition 2> or <condition 3>:
# code
--
Condition 1:
username == 'admin'
is FALSE.
--
Condition 2:
'Admin'
is TRUE. This is because 'Admin' is a string literal object, which exists, and is non-zero, not null, and not empty, and therefore true.
这就像去
myString = "any string"
if myString:
# code is executed because myString is not empty.
但你却在做
if 'my string':
# this code would run.
--
Condition 3:
'ADMIN'
is TRUE, for the same reason Condition 2 is TRUE.
--
这里发生的事情是 if
条件始终为真,无论输入什么。 因为
if username == 'admin' or 'Admin' or 'ADMIN':
# code
评估为
if FALSE or TRUE or TRUE:
# code
因此,将始终评估为真并打印 username
变量中的任何内容,即使它不是 'admin'.