Python での数値の操作

完了

主要な算術演算以外に、数値に対して他にも演算を用いることができます。 端数処理を行なったり、文字列を数値に変換したりする必要がある場合があります。

このモジュールのシナリオでは、ユーザーからの入力を受け取る必要があります。 入力は数値ではなく文字列であるため、数値に変換する必要があります。 また、ユーザーが負の回を示す値を入力しても、これを表示したくありません。 場合によっては、回を絶対値に変換する必要があります。 幸いなことに、Python にはこういった演算用のユーティリティが用意されています。

文字列を数値に変換する

Python では、整数 (int) と浮動小数点 (float) の 2 つの主な数値型がサポートされています。 両者の主な違いは、小数点の有無です。整数は整数ですが、浮動小数点には 10 進値が含まれます。

文字列を数値に変換する際は、作成する数値型を指定します。 小数点が必要かどうかを判断する必要があります。 整数に変換するには int、浮動小数点数に変換するには float を使います。

demo_int = int('215')
print(demo_int)

demo_float = float('215.3')
print(demo_float)
215
215.3

重要

int または float に無効な値を使用した場合、エラーが発生します。

絶対値

数値演算における絶対値とは、符号なしの負でない数値のことです。 絶対値を使うと、例にとった 2 つの惑星間の距離の測定など、さまざまな場面で役立ちます。 次の数式を考えてみましょう。

print(39 - 16)
print(16 - 39)

この 2 つの式の違いは、数値が逆になっていることに注意してください。 回はそれぞれ、23-23 です。 2 つの惑星間の距離を求める場合、絶対的な回は同じなので、数字を入力する順序は関係ありません。

abs を使用して、負の値を絶対値に変換します。 abs を使って同じ演算を実行 (回を出力) してみると、どちらの式も 23 と表示されることがわかります。

print(abs(39 - 16))
print(abs(16 - 39))
23
23

丸め

Python の組み込み関数である round も便利です。 これを使用して、小数点以下の値が .5 より大きい場合は直近の整数に切り上げ、.5 より小さい場合は切り下げることができます。 小数点以下の値が .5 に等しい場合、関数は直近の偶数への切り上げまたは切り下げを行います。

print(round(1.4))
print(round(1.5))
print(round(2.5))
print(round(2.6))
1
2
2
3

数値演算ライブラリ

Python には、より高度な演算と計算を行うためのライブラリが用意されています。 最も一般的なものの 1 つは math ライブラリです。 math では floorceil による端数処理や、円周率の算出など、様々な演算が可能です。 このライブラリを使用して切り上げや切り下げを行う方法を見てみましょう。

数値の端数処理によって、浮動小数点の小数点以下の部分を削除できます。 常に直近の整数に切り上げるには ceil を、切り下げるには floor を使用します。

from math import ceil, floor

round_up = ceil(12.5)
print(round_up)

round_down = floor(12.5)
print(round_down)
13
12