更多pythonic方式处理这个条件?

时间:2012-08-12 14:15:44

标签: python if-statement

假设我有这种情况,假设a和b已经是布尔值

if not a and b:
    do something
if a and not b:
    do something different

有没有办法更好地优化它,还有更多的pythonic方法来处理这个问题吗?

2 个答案:

答案 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"