16: 算術演算子を理解してプログラム内で計算できるようにする

前回の続きです。

Pythonで計算に使う基本的な記号

次は計算に使う記号、つまり演算子を見ていきます。以下のコードはPythonコンソールで実行

もしくはモジュールにprint関数を使って実行してみてください。

まずは算術演算子。足したり引いたりです。これは数学の記号と似通っています。足す場合は+、引く場合は-。これは数学の記号と同じです。

10 + 1010 - 10

掛け算は*(アスタリスク)。これも馴染みがあると思います。Excelでも、掛け算をする場合はアスタリスクを使いますね。それと一緒です。

10 * 2

そして、アスタリスクを2つ使った場合というのは、累乗ということになります。以下のコードは10の二乗という意味になります。

10 ** 2

割り算する場合はスラッシュ。これもExcelと一緒ですね。

10 / 2

そしてスラッシュを2つ使った場合。切り捨て除算、つまり商ということになります。10÷3の答えは、3.33333…というふうに余りが発生しますが、以下のように切り捨て除算だと、小数点以下を切り捨てた結果がの3返ってくるのがこの商というものです。

10 // 3

パーセントは剰余です。割り算の余りが答えとして返ってくるものです。

10 % 3

余談ですが、アスタリスクはstr型やリスト型でも使えます。

'py' * 2  #pypy

文字列でアスタリスクで掛けると文字列を2回繰り返すと言う意味になります。文字列にアスタリスクをふたつ掛けるとこれはエラーになるんですが、一度だけだった場合は、その回数分文字列が繰り返されると言うことになります。

ハイフン掛ける50みたいなふうにして、こういう区切り線を作るという使い方ができます。

"-" * 50

累算演算子を理解する

続いて累算演算子を見ていきましょう。これは、よりプログラミングっぽい演算子です。

今回はPythonコンソールではなくモジュールに記述し実行します。

演算子とイコールを組み合わせるものですが、よく使うものはプラスイコールと、マイナスイコール。この2つはよく使います。他のものは個人的にはあまり使ったことがありません。

では、+= から見ていきます。これは左辺の変数aに、右辺の値を加えると言うのが += です。

num_1 = 100
print(num_1)
num_1 += 100
print(num_1)

結果の1回目の値は、100、そして2回目の値は、200となっています。つまり、この += で200が足されたと言うことになります。

ブレイクポイントを置いてデバッグ実行してみましょう。1回目のnum_1の値は100という状態です。

F8キーで実行しますが、次の状態で実行するとnum_1の値は200に変わります

この += を使わずに同じことをすることもできます。

num_1 = num_1 + 100

このように書いても同じ結果になります。

ただ、こういう書き方をするとちょっと混乱するかと思います。

変数num_1に対して行った演算をさらに同じ変数に代入すると言うことなので、循環していますね。

ぐるぐる回って計算がうまくできないんじゃないかみたいなイメージを持たれるかもしれません。しかし、そうではなくて、この右辺のnum_1という値は100ですが、その値100足す100の結果である200を = で num_1に代入する、となります。

つまり、右辺は100+100とコンピュータは認識していますので、代入は200と言うことになります。

このように、変数にある値を足して元の変数に戻すという書き方はプログラミングではよく使う書き方です。

しかし毎回、num_1 = num_1 + 100 というふうに書いていたのではちょっと冗長ですね。なので省略表記したのがこの累算演算子というものです。

もうひとつよく使うものとして、プラスではなくて -= というものがあります。

num_1 -= num_1

このプログラムの結果は0になります。100引く100ですね。

100引く100は0と言うことなので、num_1は0になります。

あとは *= これは乗算するということになりますし、**= であれば累乗したということになります。

よく使用するのは、プラスイコールとマイナスイコールですから、他の演算子の説明は割愛いたします。ご興味がある場合は是非ご自身で試してみてください。

というわけで、以上、累算演算子でした。