代入演算子とは変数という箱に対して数値リテラルや文字リテラルを代入するための演算子の事を言います。「=」がまさにそれです。「=」については変数の時に取り上げましたが、今回はその他の演算子と組み合わせることで使える計算について取り上げていきます。
前回の記事はこちら

代入演算子について
代入演算子は上記でも記載しましたが、「=」がそれです。今回の肝はその他の演算子と合わせて記載する代入演算子についてです。例えば加算の記号の「+」と合わせて「+=」として記載しますが、加算した上で変数に代入する計算を実施することができます。書き方は以下の通りです。

上記の計算式は以下の計算式と同じ意味を持ちます。

つまり、加算と代入を一緒に実施しているわけです。これの使い方は計算結果を基に変数の値を更新したいとき等に使用します。主に繰り返し処理を使用する際に使いたくなる場面が多いかもしれません。

更新するための変数が式中に2回も出現すると式が長くなり可読性を下げてしまう恐れがありますので、可読性を上げるためにこのような書き方をします。もちろん、上記のように書かずあえて分解して各場合の方が読みやすいこともありますので、そこはケースバイケースです。どのようなときにそうするとよいかは経験を積んで感覚をつかみましょう。
それでは各代入演算子について見ていきます。
加算
加算の代入演算子は上記で紹介した「+=」です。単純に繰り返し処理で値を加算していきたいときに使用したりします。
また、Pythonでは他の言語で使用できるインクリメント変数「++」が使うことができませんのでその代替手段として使われます。インクリメント演算子とは「a++」と書くことで処理を繰り返すごとに変数の値を1加算することができる演算子です。aの値が最初は0ならインクリメント演算子を通すごとに1,2,3…と増えていきます。これがPythonでは使えないので、代わりに +=1として書くことで同じような処理を再現できます。
1 2 3 4 5 6 7 8 9 |
a = 0 b = 2 a += b a += 1 a += 1 a += 1 print(a) #5を出力 |
減算
減算の代入演算子は「-=」です。インクリメント演算子の反対としてデクリメント演算子「–」が存在しますが、こちらもPythonでは使えないので、「-=1」と書いて代用します。
1 2 3 4 5 6 |
a = 2 a -= 1 a -= 1 print(a) #0を出力 |
その他
ここまでくればわかると思いますが、その他の演算子についても=の後ろに使いたい演算子の記号を書くだけです。

使い方は同じですので一覧表でまとめて確認しましょう。
代入演算子 | 例 | 分解して記載 |
+= | a += b | a = a + b |
-= | a -= b | a = a – b |
*= | a *= b | a = a * b |
/= | a /= b | a = a / b |
%= | a %= b | a = a % b |
**= | a **= b | a = a ** b |
//= | a //= b | a = a // b |
&= | a &= b | a = a & b |
|= | a |= b | a = a | b |
^= | a ^= b | a = a ^ b |
<<= | a <<= b | a = a << b |
>>= | a >>= b | a = a >> b |
注意点として、「+=」のような代入演算子を使用する場合、更新したい変数は予め宣言されている必要があります。宣言せずに使用しようとするとエラーが発生します。
例えば「a += 2」という式であれば分解すると 「a = a + 2」ですが、右辺の a が宣言されない状態で使用しようとしている状態ですのでここでエラーが発生します。なので、「a += 2」を使用したい場合は記載する前に 「a=0」を記載して変数を初期化しておきましょう。

計算の順序
計算の順序は四則演算の時と同様に *,/ が先に計算され +,- が後に計算されます。()を使用した場合は()の中の式が最優先されます。これは代入演算子を使用した場合も同じです。
1 2 3 4 5 6 7 8 9 10 |
a = 2 a += 2 * 3 print(a) #8を出力 b = 3 b += 2 * (3 + a) print(b) #25を出力 |
ただし、()は 代入演算子を囲んで記載することができませんのでご注意ください。
1 2 3 4 5 |
a = 2 (a += 3) * 3 #errorが発生! print(a) |

上記はaと3を先に計算した後に3を掛けたかったのですが、このように計算したい場合は分解して記載する必要があります。
1 2 3 4 5 |
a = 2 a = (a + 3) * 3 print(a) |
以上で、代入演算子については完了です。繰り返し処理ではよく使用する演算子ですので、書き方は覚えておきましょう。
今回は以上です。お疲れ様でした。
コメント