Python 演算子のリストとその優先順位と結合性

ここに画像の説明を挿入

この記事の表は、Python における演算子の優先順位を、最も高い優先順位 (最初にバインドされる) から最も低い優先順位 (最後にバインドされる) までまとめています。同じセル内の演算子は同じ優先順位を持ちます。構文で特に指定されていない限り、演算子は二項演算を指します。

同じセル内の演算子は、左から右にグループ化されます。ただし、少数の演算子は、代入演算、べき乗演算、論理 NOT 演算、ビット単位の AND 演算、ビット単位の NOT 演算、シンボリック演算、条件式など、右から左へのグループ化演算です。右側は前に評価されます。左側、具体的なリストについては、以下の表の「組み合わせ」列の説明を参照してください。

優先順位と結合性は Python 式の 2 つの重要な概念であり、式のどの部分が最初に実行されるかを決定します。詳細は次のとおりです。

  • Python 演算子の優先順位
  • Python 演算子の結合性
    比較、メンバーシップ チェック、および ID チェックはすべて同じ優先順位を持ち、左から右への連結があることに注意してください。

1. Python演算子の一覧

ここに画像の説明を挿入
ここに画像の説明を挿入

2. Python 演算子の優先順位

いわゆる優先度とは、式内に複数の演算子が同時に出現した場合に、どの演算子が最初に実行されるかを指します。

たとえば、式 a + b * c の場合、Python は最初に乗算を計算し、次に加算を計算します。b * c の結果は 8、a + 8 の結果は 24 となるため、d の最終値も次のようになります。 24. 最初に計算してから + を計算すると、 + よりも記述の優先順位が高くなります。

次の式の結果をもう一度分析してみましょう。

4+4<<2

+ の優先順位は << よりも高いため、最初に 4+4 を実行して結果 8 を取得し、次に 8<<2 を実行して結果 32 を取得します。これは式全体の最終結果でもあります。

このような優先順位を決定するのが難しい式の場合は、次のように部分式に ( ) を追加できます。

(4+4) << 2

次に、最初に 4<<2 を実行して結果 16 を取得し、次に 4+16 を実行して結果 20 を取得します。

Python 演算子には優先順位関係がありますが、演算子の優先順位に依存しすぎるとプログラムの可読性が低下するため、推奨されません。したがって、次のことをお勧めします。

  • 式を複雑にしすぎないでください。式が複雑すぎる場合は、別個に記述してみてください。
  • 式の実行順序を制御するために演算子の優先順位にあまり依存しないでください (可読性が高すぎるため)。式の実行順序を制御するには ( ) を使用するようにしてください。

3. Python 演算子の結合性

いわゆる結合性は、式内に同じ優先順位を持つ複数の演算子が現れた場合にどの演算子が最初に実行されるかを指します。つまり、左の結合性が最初に実行され、右の結合性が最初に実行されます。

たとえば、式 100 / 25 * 16、/ が同じ優先順位を持つ場合、どちらを先に実行する必要がありますか? このとき、演算子の優先順位に依存して決定するだけでなく、演算子の結合性を参照することもできます。/ と は両方とも左結合であるため、左側の除算が最初に実行され、次に右側の乗算が実行され、最終結果は 64 になります。

Python のほとんどの演算子は左結合です。つまり、左から右に実行されます。** べき乗演算子、単項演算子 (論理的 NOT 演算子など)、代入演算子、および三項演算子のみが例外であり、これらは右結合性を持ちます。つまり、右から左に実行されます。上の表は、すべての Python 演算子の結合性を示しています。

4. まとめ

式に複数の演算子が含まれる場合、Python はまず各演算子の優先順位を比較し、優先順位の高いものから低いものの順に実行します。同じ優先順位の演算子が見つかった場合は、結合に従ってどの演算子を最初に実行するかを決定します。 : 左結合の場合は左の演算子を最初に実行し、右結合の場合は右の演算子を最初に実行します。

おすすめ

転載: blog.csdn.net/weixin_61587867/article/details/131959393