2016-11-10 7 views
0

私はPythonプログラミングにはかなり新しく、最近この問題に遭遇しました。Pythonの "or"とビット演算子の相違点

ビット演算子を使用すると、私はこのエラーを受け取ります:unsupported operand type(s) for |: 'str' and 'str'。しかし、OR演算子に変更すると、うまくいきました。

これはなぜ発生したのですか?

おかげ

+1

使用 'panelType.lower IF()はセット内([ 'A'、 'B'、 'C​​'、 'D'])'。 – SparkAndShine

答えて

4

!=|がそう、それは意味をなさない"a" | panelType.lower()を計算しようとしたよりも低い優先順位を持っています。

|は、オペレータが*または+に似た数字、のためのものですので、それはあなたがそのような>!=として比較を行う前に、それを計算したい理にかなっています。この場合、orが必要です。優先順位はさらに低くなります。いっそ

if panelType.lower() in ('a', 'b', 'c', 'd'): 
+0

クール!助けてくれてありがとう。私は他の投稿で回答を見つけようとしましたが、何を検索するのか分かりませんでした – djskj189