非常に単純なプログラムですが、
a="abc"
if a == "abc" | a =="adb" :
print(True)
else:
print(False)
とした場合、TypeError :unspported operand type(s) for |:'str' and 'str'
というエラーが出てきます。
しかし
a="abc"
if a == "abc" or a =="adb" :
print(True)
else:
print(False)
とした場合は正しく判定されます。
上では文字列型の変数aを用いましたが、
a=123
if a == 123 | a ==143 :
print(True)
else:
print(False)
とした場合、先ほどのエラーは出ませんが、Falseの判定になってしまいます。(or を使った場合、Trueと判定されました。)
今回お聞きしたいことは、
1、なぜTypeError :unspported operand type(s) for |:'str' and 'str' が出るのか
2、pythonでは or と | の意味は違うのか
3、なぜ数値型ではエラーが出なかったのか
の三点になります。
どなたか知識のある方、よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。