Python始めました。
Windows 10, Python 3.6.2rc2 を使っています.
演算子の優先順位が分からなかったので,ここにおぼえがき
演算子の順序
優先度 | 演算子 | 意味 |
---|---|---|
高:1 | (expressions...) | 優先順位の指定 / ダブルリテラル |
[expressions...] | リストリテラル | |
{key: value...} | 辞書リテラル | |
{expressions...} | 集合リテラル | |
2 | x(arguments...) | 関数呼び出し |
3 | x[index] | 添え字指定 |
x[indexStart:indexStop] | スライス | |
4 | x.attribute | 属性参照 |
5 | ** | べき乗 |
6 | +x, -x, ~x | 正,負,bit否定 |
7 | *, /, //, % | 乗算,除算,整除除算,剰余 書式化文字列 |
8 | +, - | 加算,減算 |
9 | <<, >> | bitごとのシフト |
10 | & | bitごとの論理積 |
11 | ^ | bitごとの排他的論理和 |
12 | | | bitごとの論理和 |
13 | <, <=, >, >=, !=, == | 比較演算子 |
14 | in, is | メンバシップ演算子 |
15 | not x | 否定 |
16 | and | 論理積 |
17 | or | 論理和 |
18 | if condition : else | 条件式 |
低:19 | lambda | ラムダ式 |
同じ演算子が重なったときは
基本的には左が優先される
>>> 8 // 2 // 2
2
>>> (8 // 2) // 2
2
>>> 8 // (2 // 2)
8
でも累乗 ** は右優先
>>> 2 ** 2 ** 3
256
>>> 2 ** (2 ** 3)
256
>>> (2 ** 2) ** 3
64
おわりに
tableの仕様なのか書けなかったのですが,12行目の演算子は"|"です.
あと,1つのセルに複数行を書く書き方が分からなかったので,若干見にくくなっています.
Markdownの方法を教えてくださ~~ると,大変助かります.~~り,ありがとうございます。
同列優先度の順序に関しては,shiracamusさんのこちらのコメントをご覧くださいませ.
今さらながら修正をしました.(2023年9月19日)