是否可以针对 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