演算子の優先順位の一覧
演算子の優先順位は以下のとおりです。
演算子 | 説明と例 |
---|---|
[ v1, ... ]、{ v1, ... }、{ k1:v1, ... }、( ... ) | リスト/集合/辞書/ジェネレータの作成、内包表記、かっこで囲まれた式 |
seq [ n ]、seq [ n:m ]、func ( args, ... )、obj.attr | 添字、スライス、関数呼び出し、属性参照 |
** | 指数 |
+X、-X、~X | 正、負、ビット単位のNOT |
*、/、//、% | 乗算、floatの除算、整数の除算、剰余 |
+、- | 加算、減算 |
<<、>> | 左シフト、右シフト |
& | ビット単位のAND |
| | ビット単位のOR |
in、not in、is、is not、<、<=、>、>=、!=、== | メンバー、等価性テスト |
not x | 論理NOT |
and | 論理AND |
or | 論理OR |
if ... else | 条件式 |
lambda ... | ラムダ式 |
乗算の方が加算より優先順位が高いので以下の結果になります。
>>> 5 + 6 * 7 47
もし式が複雑だと優先順位がわかりにくいので、かっこを追加してグループ化する方がよいかもしれません。
>>> 5 + (6 * 7) 47