[Python] 演算子
優先順位
式は、以下の表の優先順位にしたがって評価されます。結合規則は、同じ優先順位のものがふたつ以上あった場合、どちらから先に評価するかを示します(「左」なら、左にあるものから評価されます)。表の中の、exprとkey, f, index, x, yは式で、attrとargは識別子です。
優先順位 | 形式 | 説明 | 結合規則 | |
---|---|---|---|---|
高い | `expr, ...`, { key: expr, ...}, [expr, ...], (expr, ...) | 文字列変換、辞書の作成、リストの作成、タプルの作成 | なし | |
^ | f(expr, ...), x[index:index], x[index], x.attr | 関数呼び出し, スライス、添字、属性参照 | 左 | |
¦ | x ** y | べき乗 | 右 | |
~x, +x, -x | ビット単位の補数 (NOT)、単項演算子の符号保持、単項演算子の符号反転 | なし | ||
x * y, x / y, x // y, x % y | 乗算、除算、切り捨て除算、剰余 | 左 | ||
x + y, x - y | 加算、減算 | 左 | ||
x << y, x >> y | 左シフト、右シフト | 左 | ||
x & y | ビット単位の論理積 (AND) | 左 | ||
x ^ y | ビット単位の排他的論理和 (XOR) | 左 | ||
x ¦ y | ビット単位の論理和 (OR) | 左 | ||
x < y, x <= y, x > y, x >= y, x <> y, x != y, x == y, x is y, x is not y, x in y, x not in y | 比較(小なり、以下、大なり、以上、不等価、等価、オプジェクトのアイデンティティの同一性評価、集合内のメンバシップの評価) | なし | ||
not x | 論理否定 (NOT) | なし | ||
x and y | 論理積 (AND) | 左 | ||
¦ | x or y | 論理和 (OR) | 左 | |
v | expr if expr else expr | 三項式 | 右 | |
低い | lambda arg, ...: expr | 無名関数 | なし |
除算
除算 (/) のオペランドがふたつとも整数であった場合、演算結果の小数点以下は切り捨てられ、整数になります。どちらかが浮動小数点数であった場合、演算結果は浮動小数点数になります。
>>> 1 / 2 0 >>> 1 / 2.0 0.5 >>> 1.0 / 2 0.5
なお、この仕様は将来のPythonでは変更される可能性があります。
切り捨て乗算
//演算子は、除算を実行し、演算結果の小数点以下を切り捨てます。演算結果の方は、オペランドがふたつとも整数であった場合は整数に、どちらかが浮動小数点であった場合は浮動小数点になります。
>>> 1 // 2 0 >>> 1 // 2.0 0.0 >>> 1.0 // 2 0.0
比較
Pythonでは、比較演算子をつなげて記述することが可能です。すなわち、他のプログラミング言語では、
>>> 1 < 2 and 2 < 3 True
と記述しなければならないところを、
>>> 1 < 2 < 3 True
と記述できます。
三項式
三項式は、
expr1 if expr2 else expr3
と記述し、expr2が真のときexpr1となり、expr2が偽のときexpr3となります。