Developer

【Python独学】複合代入演算子
2020.11.02
Lv1

【Python独学】複合代入演算子

複合代入演算子について

今回は、複合代入演算子について扱っていきます。


以前の記事で、算術演算子を使った計算について扱いました。
例えば、以下のような計算を見てみましょう。

num = 10
num = num + 1
print(num)
C:\Python> python 2-5.py
11

Pythonを含めプログラミングでは、上のような変数に代入されている値に1を加算し、
元の変数に再び代入するような処理がよく使われます。
上記の例では、10を代入した変数numに対して、1を加算した上で
変数numに再代入しています。
よって、最終的な変数numの値は11になっています。
こういった計算をより短く記述できる、複合代入演算子という演算子があります。

num = 10
num += 1
print(num)
C:\Python> python 2-5.py
11

上記の例にある、「+=」という演算子が複合代入演算子になります。
num = num + 1 と記述する代わりに、
num += 1 と記述することで、加算と代入を一度に行うことが出来ます。

複合演算子には、以下のようなものがあります。

演算子 説明
+= xにyを足した値を再代入する。x = x + y と同じ。 x += y
-= xからyを引いた値を再代入する。x = x – y と同じ。 x -= y
*= xにyをかけた値を再代入する。x = x * y と同じ。 x *= y
/= xをyで割った値を再代入する。x = x / y と同じ。 x /= y
%= xをyで割った余りを再代入する。x = x % y と同じ。 x % y
**= xをy回掛けた値(べき乗)を再代入する。x = x ** y と同じ。 x **= y
//= xをyで割った商の整数部分を再代入する。x = x // y と同じ。 x //= y

複合代入演算子を使うとどのような結果が得られるか、実際に確認してみましょう。

a = 7
a -= 2
print(a)
b = 7
b *= 2
print(b)
c = 7
c /= 2
print(c)
C:\Python> python 2-5.py
5
14
3.5

また、文字列の連結でも数値と同様に複合代入演算子を用いることが出来ます。

word1 = "こんにちは、"
word1 += "Python"
print(word1)
word2 = "Yes!"
word2 *= 3
print(word2)
C:\Python> python 2-5.py
こんにちは、Python
Yes!Yes!Yes!

まとめ

変数の値を更新し、再代入する処理を短く書く方法として、複合代入演算子が用意されています。
以前ご紹介した、算術演算子と代入演算子と合わせて覚えておきましょう。


確認問題

1.以下の計算を複合代入演算子を使って記述しましょう。
x = 10
xに3を加算し、その値をxに再代入する。

2.複数の文字列を複合代入演算子を使って連結しましょう。
x = “私の名前は、”
y = “Pythonです。”

連載目次

独学で学ぶ Pythonプログラミング 連載目次