1. ホーム
  2. パイソン

[解決済み】Pythonで2つの変数の論理xorを取得するにはどうすればいいですか?

2022-03-23 16:58:15

質問

をどのように取得するのですか? 論理和 Pythonで2つの変数の?

例えば、文字列と思われる変数が2つあるとします。私はそれらのうちの1つだけが真の値を含んでいる(Noneや空文字列ではない)ことをテストしたい。

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

^ 演算子はビット単位で、すべてのオブジェクトで定義されているわけではないようです。

>>> 1 ^ 1
0
>>> 2 ^ 1
3
>>> "abc" ^ ""
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for ^: 'str' and 'str'

解決方法は?

すでに入力をブーリアンに正規化している場合は、!=はxorになります。

bool(a) != bool(b)