複合代入演算子

複合代入演算子

インクリメント

 プログラミングでは変数の値を 1 つだけ増やす インクリメント (increment) という処理を行なうことがよくあります。たとえば次のようなコードを書けば、変数 a の値をインクリメントすることができます。

# PYTHON_INCREMENT

# In[1]

a = 10
a = a + 1
print(a)
11

 上のコードでは最初に a の値を入れておいてから、次の行で自身に 1 を加えた値をあらためて変数 a に入れています。Python では 複合代入演算子(累算代入演算子) を用いて次のように記述することができます。

# In[2]

a = 10
a += 1
print(a)
11

デクリメント

 a の値を 1 つだけ小さくしたいとき、すなわち デクリメント (decrement) するときは「 -= 」という複合演算子(累算代入演算子)を使います:

# PYTHON_DECREMENT

a = 10
a -= 1
print(a)
9

 

複合代入演算子(累算代入演算子)

 あらゆる種類の算術演算子を代入演算子と組合わせることが可能です。

複合代入演算子 演算
+= 左の値に右の値を足して代入
-= 左の値から右の値を引いて代入
*= 左の値にに右の値をかけて代入
/= 左の値を右の値を割って代入
**= 左の値を右の値でべき乗して代入
//= 左の値を右の値で切り捨て除算して代入
%= 左の値を右の値で割った余りを代入

 いくつかの複合代入演算子を試してみます。

 a = 10 を 2 乗して a に代入します:

# PYTHON_COMPOUND_ASSIGNMENT_OPERATOR

# In[1]

a = 10
a **= 2
print(a)
100

 a = 17 を 3 で割った整数部分を a に代入します。

# In[2]

a = 17
a //= 3
print(a)
5

 a = 8753 を 219 で割った余りを a に代入します。

# In[3]

a = 8753
a %= 219
print(a)
212

 このように、複合代入演算子を用いるとスマートなコードを書くことができます。