Come si ottiene lo xor logico di due variabili in Python?

| | |

Come si ottiene la xor logico di due variabili in Python?

Ad esempio, ho due variabili che mi aspetto siano stringhe. Voglio verificare che solo uno di essi contenga un valore True (non è None o la stringa vuota):

str1 = raw_input("Enter string one:") str2 = raw_input("Enter stringa due:") if logical_xor(str1, str2): print "ok" else: print "bad" 

L'operatore ^ sembra essere bit a bit e non definito su tutti gli oggetti:

>>> 1 ^ 1 0 >>> 2 ^ 1 3 >>> "abc" ^ "" Traceback (ultima chiamata più recente): File "<stdin>", riga 1, in <module> TypeError: tipi di operandi non supportati per ^: "str" e "str"