Python条件一个或另一个但不是两个

Tsv*_*Gis 5 python conditional if-statement

我试图在python中编译一个if语句,它检查两个变量,看它们是否<= .05.现在如果两个变量都是True,我只想让代码传递/继续,但如果只有一个变量为True,那么我希望代码能够做一些事情.例如:

ht1 = 0.04
ht2 = 0.03

if (ht1 <= 0.05) or (ht2 <= 0.05):
    # do something
else:
    pass
Run Code Online (Sandbox Code Playgroud)

我不认为这个例子会按照我想要的方式工作,因为我对OR的理解是1条件返回True或两个条件都返回True.如果有人可以帮助我指出正确的方向,那么它将非常适合.

tza*_*man 9

你想要什么称为"异或",在这种情况下可以表示为"不等于"或"不是"关系:

if (ht <= 0.05) is not (ht2 <= 0.05):
Run Code Online (Sandbox Code Playgroud)

这样做的方式是,if只有当其中一个是True,而另一个是,它才会成功False.如果它们是两者True或两者,False那么它将进入else阻止.


Ign*_*ams 7

由于关系运算符总是导致a bool,只需检查它们是否是不同的值.

if (ht1 <= 0.05) != (ht2 <= 0.05): # Check if only one is true
   ...
Run Code Online (Sandbox Code Playgroud)