基本的な算術演算
Pythonの算術演算子一覧
演算 |
演算名 |
演算子 |
説明 |
例 |
結果 |
足し算 |
加算(Addition) |
x + y |
X と y を足す |
5 + 2 |
7 |
引き算 |
減算(Subtraction) |
x - y |
X から y を引く |
5 - 2 |
3 |
掛け算 |
乗算(Multiplication) |
x * y |
X と y を掛ける |
5 * 2 |
10 |
割り算 |
除算(Division) |
x / y |
X を y で割る |
5 / 2 |
2.5 |
整数の割り算 |
整数除算(Integer Division) |
x // y |
X を y で割った商の整数 |
5 // 2 |
2 |
余り |
剰余(Modulus) |
x % y |
X を y で割った余り |
5 % 2 |
1 |
べき乗 |
累乗(Exponentiation) |
x ** y |
X の y 乗を求める |
5 ** 2 |
25 |
計算の優先順位
演算子には優先順位があり、優先順位が高いものから計算されます。優先順位が同じ場合は 左 から計算されます。
算術演算子の優先順位
優先順位 |
演算 |
演算名 |
演算子 |
1 |
べき乗 |
累乗 |
** |
2 |
掛け算 |
乗算 |
* |
2 |
割り算 |
除算 |
/ |
2 |
整数の割り算 |
整数除算 |
// |
2 |
余り |
剰余 |
% |
3 |
足し算 |
加算 |
+ |
3 |
引き算 |
減算 |
ー |
例:足し算と掛け算の混在
掛け算の方が優先度が高いので、掛け算 -> 足し算の 順で計算されます。優先度を変えたい場合は カッコ で括ります。
x = 5
y = 2
result = x + y * 10
print(result) # 結果 = 25
result = 10 * x + y
print(result) # 結果 = 52
result = (x + y) * 10
print(result) # 結果 = 70
例:掛け算と割り算の混在
どちらも優先度が同じなので、左 から計算されます。
x = 10
y = 5
result = x / y * 10
print(result) # 結果 = 20.0
result = x / (y * 10)
print(result) # 結果 = 0.2
整数 int と 浮動小数点数 float の演算
整数(int) と 浮動小数点数(float) が混在すると、結果が 整数 でも 浮動小数点数 を返します。
print(1 + 1) # 結果 = 2 (int型)
print(1 + 1.0) # 結果 = 2.0(float型)
ただし、除算 の場合は 整数(int) 同士 で 結果が 整数 でも 浮動小数点数 を返します。
print(1 / 1) # 結果 = 1.0(float型)
print(1 / 1.0) # 結果 = 1.0(float型)
0(Zero)を含む演算
ゼロ除算(division by zero)
除算、整数除算、剰余をするとき、分母がゼロになると ZeroDivisionError が発生します。
# 除算
result = 10 / 0
# -> ZeroDivisionError: division by zero
# 整数除算
result = 10 // 0
# -> ZeroDivisionError: integer division or modulo by zero
# 剰余
result = 10 % 0
# -> ZeroDivisionError: integer modulo by zero
0 の 0 乗
0 の 0 乗 は 1 を返します。底 または 指数 に少数(float型)が含まれる場合、1.0(float型)を返します。
print(0 ** 0) # 結果 = 1
print(0.0 ** 0) # 結果 = 1.0
print(0 ** 0.0) # 結果 = 1.0
参考資料
検証環境
-
Python 3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)] on win32
-
Microsoft Windows 10 Enterprise Version 22H2 OS Build 19045.3570 Experience: Windows Feature Experience Pack 1000.19052.1000.0