Python/演算子
演算子
式は、演算子と1項以上のオペランド(被演算子)から成ります。典型的には中置の二項演算子式ですが、単項演算子や if
式のような構文要素もあります。値を持つ構文要素はすべて式と考えて良いです。
演算子の優先順位
以下の表は、Pythonにおける演算子の優先順位を、最も高い優先順位(最も拘束力が強い)から最も低い優先順位(最も拘束力が弱い)へと示しています。同じグループ内の演算子は同じ優先順位を持ち、構文が明示的に与えられない限り、演算子は二項演算子です。括弧を使って演算順序を明示的に指定することができます。
比較、メンバーシップテスト、同一性テストはすべて同じ優先順位を持ち、左から右へ連鎖的に処理されます(ただし、指数演算は右から左へ結合されます)。
演算子 | 概要 |
---|---|
(expr...) ,[expr...] , {key: value...} , {expr...} |
結合式または括弧付き式、リスト、辞書、集合 |
x[index] , x[start:stop:step] , x(args...) , x.attr |
配列要素参照、スライス、関数やメソッドの呼出し、属性参照 |
await x |
Await 式 |
** |
指数関数 |
+x , -x , ~x |
単項プラス、単項マイナス、ビット単位のNOT |
* , @ , / , // , % |
乗算、行列乗算、除算、剰余有除算、剰余 |
+ , - |
加算、減算 |
<< , >> |
シフト演算 |
& |
ビット単位の AND |
^ |
ビット単位の XOR |
<nowiki>|</nowiki> |
ビット単位の OR |
in , not in , is , is not , < , <= , > , >= , != , == |
メンバーシップテスト、アイデンティティテストなどの比較 |
not x |
ビット単位の NOT |
and |
ビット単位の AND |
or |
ビット単位の OR |
if – else |
条件演算子 |
lambda |
ラムダ式 |
:= |
代入演算子 |
演算子の一覧
演算 | 構文 | 関数 |
---|---|---|
加算 | a + b |
add(a, b) |
連結 | seq1 + seq2 |
concat(seq1, seq2) |
包含テスト | obj in seq |
contains(seq, obj) |
除算 | a / b |
truediv(a, b) |
除算 | a // b |
floordiv(a, b) |
ビット単位論理積 | a & b |
and_(a, b) |
ビット単位排他的論理和 | a ^ b |
xor(a, b) |
ビット反転 | ~ a |
invert(a) |
ビット単位論理和 | <nowiki>a | b</nowiki> |
or_(a, b) |
冪乗 | a ** b |
pow(a, b) |
同一性 | a is b |
is_(a, b) |
同一性 | a is not b |
is_not(a, b) |
インデックス指定代入 | obj[k] = v |
setitem(obj, k, v) |
インデックス指定削除 | del obj[k] |
delitem(obj, k) |
インデックス指定参照 | obj[k] |
getitem(obj, k) |
左シフト | a << b |
lshift(a, b) |
剰余 | a % b |
mod(a, b) |
乗算 | a * b |
mul(a, b) |
行列乗算 | a @ b |
matmul(a, b) |
算術否定 | - a |
neg(a) |
論理否定 | not a |
not_(a) |
単項プラス | + a |
pos(a) |
右シフト | a >> b |
rshift(a, b) |
スライス指定代入 | seq[i:j] = values |
setitem(seq, slice(i, j), values) |
スライス指定削除 | del seq[i:j] |
delitem(seq, slice(i, j)) |
スライス参照 | seq[i:j] |
getitem(seq, slice(i, j)) |
文字列フォーマッティング | s % obj |
mod(s, obj) |
減算 | a - b |
sub(a, b) |
真偽判定 | obj |
truth(obj) |
より小 | a < b |
lt(a, b) |
より小または一致 | a <= b |
le(a, b) |
一致 | a == b |
eq(a, b) |
不一致 | a != b |
ne(a, b) |
より大または一致 | a >= b |
ge(a, b) |
より大 | a > b |
gt(a, b) |