假设我有这种情况,假设a和b已经是布尔值
if not a and b:
do something
if a and not b:
do something different
有没有办法更好地优化它,还有更多的pythonic方法来处理这个问题吗?
答案 0 :(得分:4)
两个条件相互排斥。您可以将其重写为:
if bool(a) != bool(b): # a xor b
if a:
print "a and not b"
else:
print "not a and b"
但它看起来更加模糊。所以对我来说最好的方法是:
if not a and b:
print "not a and b"
elif a and not b:
print "a and not b"
(注意elif
而不是if
)。
答案 1 :(得分:-1)
好像你正在寻找一个独家或(xor)。试试这个:
if a is not b:
print "a xor b"