C/C++と同じような演算子が多くあります。C/C++でおなじみだったi++のような演算子がなくなっていたり、Python特有の演算子があったりします。
代入演算子
演算 |
演算子 |
操作例 |
代入 |
= |
a = 2 (どんな言語でも当たり前の演算子) |
算術演算子
演算 |
演算子 |
操作例 |
加算 |
+ |
数値型は足し算 文字列型は文字の連結 'Py' + 'thon' → Python |
減算 |
- |
数値型は引き算 文字列型は使用不可 |
乗算 |
* |
数値型は掛け算 文字列型 'python' *2 → pythonpython |
除算 |
/ |
数値型は割り算 文字列型は使用不可 |
除算の商 |
// |
数値型は割り算の商 10 // 3 → 3
3.14 // 2 →1.0 |
除算の余り(剰余) 文字列の書式指定 |
% |
10 % 3 → 1
3.14 % 2 →1.1400000000000001 |
右シフト |
>> |
数値型のみ 4 >> 1 → 2 |
左シフト |
<< |
数値型のみ 4 << 1 → 8 |
論理積 |
& |
数値型のみ 15 & 8 → 8 |
論理和 |
| |
数値型のみ 15 | 16 → 31 |
排他的論理和 |
^ |
数値型のみ 15 ^ 10→ 5 |
単項 |
- |
符号の反転 -(-15) → 15 |
比較演算子 比較の結果はTrue/Falseになる。
演算子 |
説明 |
操作例 |
== |
2つのオブジェクトの値が等しい |
1 == 2 →True
[1,2] == [1,2] →True 'abc' == 'def'→False |
!= |
2つのオブジェクトの値が等しくない |
1 != 2 →False
[1,2]!= [1,2] →False 'abc' != 'def'→True |
> |
左辺が右辺より大きい |
1 > 2 →False
[1,2] > [1,2] →False 'abc' >
'def'→False |
>= |
左辺が右辺以上 |
1 >= 2 →False
[1,2] < [1,2] →True 'abc' >=
'def'→False |
< |
左辺が右辺より小さい |
1 < 2 →True
[1,2]
< [1,2] →False 'abc' < 'def'→True |
<= |
左辺が右辺以下 |
1 <= 2 →True
[1,2]
<= [1,2] →True 'abc' <= 'def'→True |
is |
2つのオブジェクトのid(C言語でいうところのポインタ)が同一
(分かったようで分からない) [1,2] ==
[1,2]では左辺と右辺のオブジェクトの内容が同じかで判定しています。どちらも1,2で同じです。よってTrueになります。
[1,2] is
[1,2]では左辺のリストのアドレス(0xaaaaとします)を確保して1,2の内容をセットします。右辺も同様に左辺とは異なるアドレス(0xbbbbとします)に1,2をセットします。
is はこのアドレス0xaaaaと0xbbbbを比較するので結果は同一でなくFasleになります。 |
[1,2] == [1,2] →True
[1,2] is [1,2] →False
|
is not |
is を参照:
is not はこのアドレス0xaaaaと0xbbbbを比較するので結果は同一でなくTrueになりまさす。 |
[1,2] != [1,2] →False
[1,2] is [1,2] →True
|
in |
左側のおbジェクトが右側のオブジェクトに含まれているか |
'th' in 'Python' →True
2 in [1,2,3] →True
|
not in |
左側のおbジェクトが右側のオブジェクトに含まれていないか |
'th'
not in 'Python' →False
2
not in [1,2,3] →False
|
累算代入演算子
演算子 |
説明 |
操作例 |
+= |
左辺に右辺を加算する |
a= 5 b= 'abc'
a += 3 →a= 8 b+='xyz'→'abcxyz'
|
-= |
左辺に右辺を減算する |
a= 5
a -= 10 →a= -5
|
*= |
左辺に右辺で乗算する |
a= 5 b= 'abc_'
a *= 10
→a= 50 b *= 4→'abc_abc_abc_abc_'
|
/= |
左辺に右辺で除算する |
a= 10
a /= 2 →a= 5.0
|
//= |
左辺に右辺で除算した商 |
a= 10
a //= 3 →a=3
|
%= |
左辺に右辺で除算した余り(剰余) |
a= 10
a %= 3 →a=1
|
**= |
左辺を右辺でべき乗 |
a= 10
a **= 3 →a=1000
|
>>= |
左辺を右辺値で右シフト |
a= 256
a
>>= 4 →a=16 |
<<= |
左辺を右辺値で左シフト |
a=2
a <<= 2 →a=8 |
&= |
左辺を右辺値で論理積 |
a=15
a &= 8 →a=8 |
|= |
左辺を右辺値で論理和 |
a=7
a |= 8 →a=15 |
^= |
左辺を右辺値で排他的論理和 |
a=15
a ^= 9 →a=6 |
|