sec01 - 四則演算・計算で使用する演算子

Pythonでは、様々な演算子が用意されており、複雑な計算を簡単に記述することができます。このレクチャーでは、使用頻度の高い、計算で使用する演算子を紹介します。

加算・減算・乗算・除算・剰余・切り捨て除算・べき乗

Pythonの『加算(足し算)・減算(引き算)・乗算(掛け算)・除算(割り算)・剰余(除算の余り)・切り捨て除算(除算結果を切り捨てて整数を返す)・べき乗』の計算方法を解説します。
(適宜、新しいファイルを作成してコードの挙動を確認してみてください。)

加算・減算・乗算・除算

加算・減算・乗算・除算で使用する演算子は、加算(+プラス)・減算(-ハイフン)・乗算(*アスタリスク)・除算(/スラッシュ) になります。値の組み合わせを変えて、計算を試してみてください。("整数同士"・"浮動小数点数同士"・"整数と浮動小数点数"・"正の数と負の数"など。)

result1 = 5 + 2.4   # Addition: 7.4
result2 = 5 - 2.4   # Subtraction: 2.6
result3 = 5 * 2.1   # Multiplication: 10.5
result4 = 5.5 / 2.5   # Division: 2.2

print('Addition:', result1)
print('Subtraction:', result2)
print('Multiplication:', result3)
print('Division:', result4)
print出力のTips

"print()"の丸カッコの中で、値をカンマを区切って入力すると、それぞれの値が空白を1つ開けて出力されます。

上記コードの例では、"print('Addition:', result1)"は、"Addition:"という文字と"result1"変数の値が空白を1つ開けて出力されます。

TERMINALへの出力例

剰余

剰余とは、除算の余りの値のことです。例えば、"5/2"は"2余り1"となります。その場合、剰余は"1"になります。

剰余で使用する演算子は、"%"(パーセント)になります。

result1 = 5 % 1   # 5...0 -> 0
result2 = 5 % 2   # 2...1 -> 1
result3 = 5 % 3   # 1...2 -> 2
result4 = 5 % 4   # 1...1 -> 1
result5 = 5 % 5   # 1...0 -> 0
result6 = 5 % 6   # 0...5 -> 5

print('5 % 1 =', result1)
print('5 % 2 =', result2)
print('5 % 3 =', result3)
print('5 % 4 =', result4)
print('5 % 5 =', result5)
print('5 % 6 =', result6)

切り捨て除算

切り捨て除算は、除算の結果が浮動小数点数だった場合に、負の無限大の方向一番近い整数の値を返します。 例えば、除算の結果が"2.5"の場合、"2"が返されます。負の無限大の方向に丸められる(切り捨てられる)ので、2.5より小さな一番近い整数の値が返されることになります。計算結果がマイナスの値(例えば"-2.5")の場合も、-2.5より小さな一番近い整数の値("-3")が返されます。

(四捨五入ではないので注意してください。また、結果で得られる型については、割る数・割られる数のいずれかが浮動小数点数型だった場合はfloat型、両方とも整数の場合はint型になります。)

切り捨て除算で使用する演算子は、"//"(スラッシュ2本)になります。

result1 = 10 // 4   # 2.5 -> 2
result2 = -10 // 4   # -2.5 -> -3
print('10 // 4 =', result1)
print('-10 // 4 =', result2)

べき乗

べき乗とは、ある数を繰り返し掛ける演算のことです。例えば、"2の3乗"の場合、"2 * 2 * 2"の計算が行われることになります。

べき乗で使用する演算子は、"**"(アスタリスク2個)になります。

result1 = 2 ** 2   # 2 * 2     = 4
result2 = 2 ** 3   # 2 * 2 * 2 = 8
result3 = 3 ** 2   # 3 * 3     = 9
result4 = 3 ** 3   # 3 * 3 * 3 = 27
print('2 ** 2 =', result1)
print('2 ** 3 =', result2)
print('3 ** 2 =', result3)
print('3 ** 3 =', result4)

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

まず、次のコードをご覧ください。

num = 3
num = num + 6  # numに6を足して値を上書きする
print(num)  # 9が出力される

最初に、変数num3が代入されています。2行目で変数num6が足され、代入(上書き)されています。出力結果は9になります。このコードの書き方は、これまで習ってきたやり方です。

先ほどの2行目の式を、複合代入演算子で記述することができます。次のように書き換えることができます。

num = 3
num += 6  # numに6を足して値を上書きする
print(num)  # 9が出力される

上記コードで変わったのは、2行目の"num += 6"の部分で、"+="という記号の組み合わせが使われています。これは"num = num + 6"と同じ意味になります。つまり、『"+="の左辺(変数)に代入されている値に右辺の値を足して、左辺の変数に代入せよ』という意味になります。このように書くことで、コードがシンプルになります。(※"num = num + 6"と書いても間違いではありません。)

複合代入演算子は、"a = a + b"のような形の式で使用することができ、+記号以外にも各演算子で使用することができます。

num += 5  # num = num + 5
num -= 5  # num = num - 5
num *= 5  # num = num * 5
num /= 5  # num = num / 5
num %= 5  # num = num % 5
num //= 5  # num = num // 5
num **= 5  # num = num ** 5

複合代入演算子の使いどころとしては、例えば、『ある条件を満たしたモノの数を数える場合に、条件を満たしたモノが見つかったタイミングで"count"変数の値を1ずつ上げていく』、というような場面です。下記のコードは、『"高さの数値リスト"の中から、2.0以上の値がいくつあるかをカウントする』プログラムです。まだ習ったことが無い記述がたくさん出てきているので難しく感じるかもしれませんが、どこで複合代入演算子が使われているのか、確認してみてください。

height_list = [0, 6.4, 5, 1.2, 0.8, 2.6]

count = 0  # 初期値は0
for height in height_list:
    if height > 2.0:
        count += 1  # ここで、countを1上げる
print('Count is', count)

このコードで注目して欲しいのは、『3行目で0に初期化したcount変数の値を、6行目で1足している』という部分です。5行目のifの部分で高さが2.0以上かどうかを確認しています。条件を満たしていれば"count += 1"で値をインクリメントします。このように複合代入演算子を使う場面があります。

インクリメント・デクリメント

インクリメントとは、変数の値を1上げることを言い、デクリメントは変数の値を1下げることを言います。

Pythonでは、"num += 1"がインクリメントの式で、"num -= 1"がデクリメントの式になります。

(※ 他のプログラミング言語では、"num++"や"num--"といった演算子をつかう場合もありますが、Pythonにはこのような演算子はありません。)

おすすめの記事