私はPythonプログラミングにはかなり新しく、最近この問題に遭遇しました。Pythonの "or"とビット演算子の相違点
ビット演算子を使用すると、私はこのエラーを受け取ります:unsupported operand type(s) for |: 'str' and 'str'
。しかし、OR演算子に変更すると、うまくいきました。
これはなぜ発生したのですか?
おかげ
私はPythonプログラミングにはかなり新しく、最近この問題に遭遇しました。Pythonの "or"とビット演算子の相違点
ビット演算子を使用すると、私はこのエラーを受け取ります:unsupported operand type(s) for |: 'str' and 'str'
。しかし、OR演算子に変更すると、うまくいきました。
これはなぜ発生したのですか?
おかげ
!=
は|
がそう、それは意味をなさない"a" | panelType.lower()
を計算しようとしたよりも低い優先順位を持っています。
|
は、オペレータが*
または+
に似た数字、のためのものですので、それはあなたがそのような>
や!=
として比較を行う前に、それを計算したい理にかなっています。この場合、or
が必要です。優先順位はさらに低くなります。いっそ
:
if panelType.lower() in ('a', 'b', 'c', 'd'):
クール!助けてくれてありがとう。私は他の投稿で回答を見つけようとしましたが、何を検索するのか分かりませんでした – djskj189
使用 'panelType.lower IF()はセット内([ 'A'、 'B'、 'C'、 'D'])'。 – SparkAndShine