0

私がこの状態にあると仮定しましょう。a と b は既にブール値であると仮定します。

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

それをもっと最適化する方法はありますか?

4

2 に答える 2

4

2 つの条件が互いに除外されています。次のように書き換えることができます。

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)。

于 2012-08-12T14:23:42.700 に答える
-1

排他的な or (xor) を探しているようです。これを試して:

if a is not b:
    print "a xor b"
于 2012-08-12T14:21:26.113 に答える