是否可以针对 2 个变量测试布尔值?
Is it possible to test a bool against 2 variables?
我正在尝试做这样的事情:
if (a == ("A" or "U")):
do something
但当我在控制台中引入输入时它只针对 "A" 进行测试
但如果我这样做它会起作用:
if (a == "A" or a == "U")):
do something
是否可以像第一条一样用更简单的线来实现第二条?
谢谢!
使用in
:这样会更简单
if a in ('A', 'U'):
#do something
了解您的代码。
if (a == ("A" or "U")):
# do something
Python 检查 "A" or "U"
其中 "A"
是 return 因为真实性是如何工作的。如果第一个为真,则不计算 or
。由于只有空字符串为 False,因此将选择第一个 none 空字符串,您的代码相当于:
if (a == "A"):
# do something
与python无关。你不能进一步简化第二个方程。
a == "A" 是一个布尔值 -> x
a == "U" 是一个布尔值 -> y
x || y -> 简化版本。
此外,您不能将分配律应用于等式运算符(==、<、>)。
您可以使用成员运算符in
检查上面的实现。
if a in ["A", "U"]:
do_something()
您不能使用 (a == ("A" or "U"))
检查这两个条件,因为当您在 python 解释器中执行 "A" or "U"
时,您将得到 "A"
(第一个真值)同样当你执行"A" and "U"
你会得到"U"
(最后一个真值)。
如果想简化表达,可以用,
if a in ("A", "U"):
# TODO: perform a task
我正在尝试做这样的事情:
if (a == ("A" or "U")):
do something
但当我在控制台中引入输入时它只针对 "A" 进行测试
但如果我这样做它会起作用:
if (a == "A" or a == "U")):
do something
是否可以像第一条一样用更简单的线来实现第二条? 谢谢!
使用in
:这样会更简单
if a in ('A', 'U'):
#do something
了解您的代码。
if (a == ("A" or "U")):
# do something
Python 检查 "A" or "U"
其中 "A"
是 return 因为真实性是如何工作的。如果第一个为真,则不计算 or
。由于只有空字符串为 False,因此将选择第一个 none 空字符串,您的代码相当于:
if (a == "A"):
# do something
与python无关。你不能进一步简化第二个方程。
a == "A" 是一个布尔值 -> x a == "U" 是一个布尔值 -> y
x || y -> 简化版本。
此外,您不能将分配律应用于等式运算符(==、<、>)。
您可以使用成员运算符in
检查上面的实现。
if a in ["A", "U"]:
do_something()
您不能使用 (a == ("A" or "U"))
检查这两个条件,因为当您在 python 解释器中执行 "A" or "U"
时,您将得到 "A"
(第一个真值)同样当你执行"A" and "U"
你会得到"U"
(最后一个真值)。
如果想简化表达,可以用,
if a in ("A", "U"):
# TODO: perform a task