Pythonにおける演算子の優先順位とは?正しい評価の順序を一覧で解説
Pythonの演算子の優先順位とは
Pythonでは、1つの式に複数の演算子が含まれる場合、あらかじめ定められた優先順位(precedence)に従って評価されます。優先順位を正しく理解することは、意図した通りの計算結果を得るために非常に重要です。
以下の表は、Pythonの主な演算子を優先度の高い順から低い順に並べたものです。
演算子の優先順位一覧(高い順)
| ** : べき乗(累乗)演算 |
| ~ + - : ビット反転、単項プラス・単項マイナス(最後の2つのメソッド名は +@ と -@) |
| * / % // : 乗算、除算、剰余(モジュロ)、切り捨て除算 |
| + - : 加算(足し算)と減算(引き算) |
| >> << : 右シフトおよび左シフト(ビットシフト演算) |
| & : ビットごとの AND 演算 |
| ^ | : ビットごとの排他的 OR(XOR)および通常の OR 演算 |
| <= < > >= : 比較演算子 |
| == != : 等価演算子(※Python 2 の <> は Python 3 では廃止され、!= を使用します) |
| = %= /= //= -= += *= **= : 代入演算子 |
| is / is not : 同一性演算子(同一オブジェクトかどうかを判定) |
| in / not in : メンバーシップ演算子(要素が含まれるかどうかを判定) |
| not / or / and : 論理演算子 |
優先順位を扱う際のポイント
- 括弧 ( ) を活用する:括弧で囲んだ部分は最優先で評価されるため、複雑な式では積極的に使うことで可読性が向上します。
- 同じ優先順位の場合:ほとんどの演算子は左から右へ評価されますが、べき乗演算子 ** だけは右から左へ評価されます(例:2 ** 3 ** 2 は 2 ** (3 ** 2) と同じ)。
- 論理演算子の順序:not は or や and よりも高く、and は or よりも高い優先順位を持ちます。
これらの優先順位を覚えておくと、バグの少ない読みやすいコードを書くことにつながります。迷ったときは括弧を使って評価順序を明示するのが安全です。
-
Pythonでタプルを作成する正しい構文とは?基本から実例まで解説
Pythonにおけるタプル(tuple)は、イミュータブル(変更不可)な要素の集合体です。リストと異なり、一度作成した後に要素の追加や削除を行うことはできません。また、各要素は同じ型である必要はなく、数値、文字列、リストなど、異なる型のデータを混在させて格納することができます。タプルの要素はカンマで区切り、丸括弧 () の中に記述します。なお、この丸括弧は必須ではなく、省略して記述することも可能です。 T2 = 1,2,3,4 空のタプルを作成する方法空のタプルオブジェクトを作成するには、丸括弧の中に何も記述しないだけでOKです。 T3 () 要素が1つだけのタプルを作成する方法タプルに要素を
-
Pythonの__init__.pyとは?役割と基本的な使い方をわかりやすく解説
__init__.pyファイルの役割とはPythonにおいて、__init__.pyファイルは、ディレクトリを「パッケージ」として認識させるために必要なファイルです。このファイルが存在することで、Pythonはそのディレクトリをひとつのパッケージとして扱うことができるようになります。この仕組みには重要な目的があります。それは、stringのような一般的な名前を持つディレクトリが、モジュール検索パス上の後続にある正規のモジュールを意図せず隠してしまう(シャドーイングする)ことを防ぐためです。__init__.pyの中身は空でもOK最もシンプルなケースでは、__init__.pyは単なる空のファイ