Pythonの演算子(四則演算・代入演算子・ 比較演算子・論理演算子・演算の優先順位)について解説します。
数値計算
+ :加算
- :減算
* :乗算
/ :除算(少数)
// : 除算(整数)
% : 剰余
** : べき乗
- :減算
* :乗算
/ :除算(少数)
// : 除算(整数)
% : 剰余
** : べき乗
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | a = 6 b = 4 print(a+b) # 10 print(a-b) # 2 print(a*b) # 24 print(a/b) # 1.5 print(a//b) # 1 print(a%b) # 2 print(b ** 3) # 64 |
代入演算子
変数に対して値を代入するために利用される演算子です。
変数 = 値 :値を変数に代入
変数1 += 変数2 :変数1と変数2を足した結果を変数1に代入
変数1 -= 変数2 :変数1から変数2を引いた結果を変数1に代入
変数1 *= 変数2 :変数1と変数2を掛けた結果を変数1に代入
変数1 /= 変数2 :変数1を変数2で割った結果の少数を変数1に代入
変数1 //= 変数2 :変数1を変数2で割った結果の整数を変数1に代入
変数1 %= 変数2 :変数1を変数2で割った余りを変数1に代入
変数1 **= 変数2 :変数1と変数2のべき乗の結果を変数1に代入
変数1 += 変数2 :変数1と変数2を足した結果を変数1に代入
変数1 -= 変数2 :変数1から変数2を引いた結果を変数1に代入
変数1 *= 変数2 :変数1と変数2を掛けた結果を変数1に代入
変数1 /= 変数2 :変数1を変数2で割った結果の少数を変数1に代入
変数1 //= 変数2 :変数1を変数2で割った結果の整数を変数1に代入
変数1 %= 変数2 :変数1を変数2で割った余りを変数1に代入
変数1 **= 変数2 :変数1と変数2のべき乗の結果を変数1に代入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | a = 6; b = 4 a += b print(a) # 10 a = 6; b = 4 a -= b print(a) # 2 a = 6; b = 4 a *= b print(a) # 24 a = 6; b = 4 a /= b print(a) # 1.5 a = 6; b = 4 a //= b print(a) # 1 a = 6; b = 4 a %= b print(a) # 2 a = 6; b = 4 a **= b print(a) # 1296 |
比較演算子
比較演算子により値を比較して、結果をTrue
もしくはFalse
で取得することができます。
< :小さい
> :大きい
<= :以下
>= :以上
==:等しい
!= :等しくない
> :大きい
<= :以下
>= :以上
==:等しい
!= :等しくない
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | a = 6; b = 4 print(a < b) # False print(a > b) # True print(a <= b) # False print(a >= b) # True print(a == b) # False print(a != b) # True |
論理演算子
論理演算子はブール値を組み合わせて評価する場合に使用される演算子です。
and :論理積(かつ)
or :論理和(または)
not :否定(でない)
or :論理和(または)
not :否定(でない)
1 2 3 4 5 6 7 8 9 10 | a = 6; b = 4 print(a >0 and b == 4) # True print(a >0 or b >10) # True print(not a == 5) # True |
三項演算子
三項演算子とは、if文のような処理を一行で記述することができる記述方法です。
変数 = 条件がTrueのときの値 if 条件 else 条件がFalseのときの値
1 2 3 4 5 6 7 8 9 10 11 | a = 6; b = 4 c = 'big' if a*b >20 else 'small' print(c) # big #通常のif文記述 if a*b > 20 : print('big') else: print('small') |
演算の優先順位
異なる演算子が複数含まれていた場合、優先順位が高い演算から先に行われます。
Pythonで定義されている優先順位は下表のようになります。同じ順位にある演算子は優先順位は同じです。Pythonでは式を左から右へと順に評価するため、同順位の場合は式の左側にある演算子を優先して演算します。代入式を評価するときは右辺が左辺よりも先に評価されます。
順位 | 演算子 | 説明 |
---|---|---|
1 | (expressions...) ,[expressions...] , {key: value...} , {expressions...} | 結合式または括弧式、リスト表示、辞書表示、集合表示 |
2 | x[index] , x[index:index] , x(arguments...) , x.attribute | 添字指定、スライス操作、呼び出し、属性参照 |
3 | await x | Await 式 |
4 | ** | べき乗 |
5 | +x , -x , ~x | 正数、負数、ビット単位 NOT |
6 | * , @ , / , // , % | 乗算、行列乗算、除算、切り捨て除算、剰余 |
7 | + , - | 加算および減算 |
8 | << , >> | シフト演算 |
9 | & | ビット単位 AND |
10 | ^ | ビット単位 XOR |
11 | | | ビット単位 OR |
12 | in , not in , is , is not , < , <= , > , >= , != , == | 所属や同一性のテストを含む比較 |
13 | not x | ブール演算 NOT |
14 | and | ブール演算 AND |
15 | or | ブール演算 OR |
16 | if — else | 条件式 |
17 | lambda | ラムダ式 |
実際に計算をしてみると以下のようになります。優先順位を無視する場合には丸括弧()を利用します。
1 2 3 4 5 6 7 | a = 6; b = 4; c= 2 print(a + b * c) # *が先に演算されて 6+8 になる # 48 print((a + b) * c) # ()内が先に演算されて 10*2 になる # 20 |
1 2 3 4 5 6 7 | a = 6; b = 4; c= 2 print(a > 10 and b > 5 or c > 0) # andが先に演算され False or Trueになる # True print(a >10 and (b > 5 or c > 0)) # ()内のorが先に演算され False and Falseになる # False |
Pythonの演算子について解説しました。