[解決済み] ブール演算子 vs ビット演算子
2023-04-29 17:22:12
質問
ブール演算子とビット演算子をいつ使うべきか迷っています。
-
and
対&
-
or
対|
どのような場合にそれぞれを使用するのか、また、一方を使用すると結果にどのような影響を与えるのか、どなたか教えてください。
どのように解決するのですか?
いくつかのガイドラインを紹介します。
- ブール演算子は通常 ブール演算子 の値に対して使用されますが、ビット演算子は通常 整数 の値に対して使用されます。
- ブール演算子は 短絡的 ですが、ビット演算子は ではなく を短絡させる。
短絡的な動作は、このような表現に有効です。
if x is not None and x.foo == 42:
# ...
この場合、ビット単位の
&
演算子では両辺が常に評価されてしまうため、正しく動作しません。
AttributeError: 'NoneType' object has no attribute 'foo'
. ブール演算子
and
演算子を使うと、最初の式が False のとき、2 番目の式は評価されません。同様に
or
は最初の引数がTrueの場合、2番目の引数を評価しません。
関連
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] Pythonのsuper()は多重継承でどう動くのか?
-
[解決済み] Pythonの「名前付きタプル」とは何ですか?
-
[解決済み] Pythonの旧スタイルのクラスと新スタイルのクラスの違いは何ですか?
-
[解決済み] 'and' (boolean) vs '&' (bitwise) - なぜリストとnumpy配列で動作が異なるのですか?
-
[解決済み] ビット演算子とは何ですか?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて