Python/演算子
< 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)
|