以前、randomモジュールの記事で、便利な機能が詰まった「モジュール」の使い方を学習しました。
今回は、計算を強力にサポートしてくれるPythonの標準ライブラリ「math(マス)モジュール」について解説します。
この知識は、今後予定している「数学の視覚化」シリーズで様々なグラフを描くための重要な準備にもなります。
mathモジュールとは
Pythonには、最初から様々な機能が「モジュール」として用意されています。
mathモジュールは、その名の通り「数学的な計算」に特化した機能がたくさん詰まったモジュールです。
これを使うことで、複雑な計算式を自分で一から書かなくても、用意された機能を呼び出すだけで簡単に結果を得ることができます。
モジュールの読み込み
mathモジュールを使うには、プログラムの先頭で以下のように「インポート(読み込み)」の宣言を行います。
import mathこれを書くだけで、Pythonの中で強力な数学の道具が使えるようになります。
円周率と平方根の計算
mathモジュールの中でもよく使うのが、円周率と平方根(ルート)です。まずはこの2つがどういうものかをおさらいしておきましょう。
円周率の取得(math.pi)
円周率とは、円の直径に対する円周の長さの比率のことです。式で表すと
$$円周率=円周の長さ \div 直径$$
となり、およそ「\(3.141592…\)」と無限に続く一定の小数になります。円の面積(\(半径 \times 半径 \times 円周率\))や、円周の長さなどを計算する時に必ず必要になります。
自分でこの長い小数を入力しなくても、math.piと記述するだけで、Pythonが精度の高い円周率の数値を呼び出してくれます。
平方根の計算(math.sqrt)
平方根(ルート)とは、「ある数を2乗する(同じ数を2回掛ける)と、その数になるもとの数」のことです。数学の記号では\(\sqrt{}\)(ルート)を使って表します。
例えば、4を2回掛けたら\(4 \times 4 = 16\)なので、「16の平方根は4」となります(補足: 数学的にはマイナスの数である-4も16の平方根になりますが、math.sqrt()はプラスの数だけを結果として返します)。平方根は、ピタゴラスの定理(三平方の定理)を使って2点間の距離を求める時など、図形や物理の計算でよく使われます。
ある数の平方根を計算したい場合には、math.sqrt()という関数を使います。
math.sqrt(計算したい数値)のように記述することで、簡単にルートの計算を行ってくれます。
具体的には次のような順番で行います。
- モジュールのインポート: まず、
import mathで機能を使える状態にします。 - 計算式の作成: 次に、変数などを使って計算式を作ります。
- 機能の利用: その式の中で、円周率を使いたい部分には
math.piを置き、平方根を求めたい部分にはmath.sqrt()の括弧の中に数値を渡すことで、Pythonが正確な計算結果を導き出してくれます。
では、実際にやってみましょう。
Google Colaboratory (Colab) を開いて新しいノートブックを作成し、円の面積と16の平方根を計算するプログラムを書いてみます。
import math
# 半径5の円の面積を計算する
radius = 5
# 半径 * 半径 * 円周率(math.pi)
area = radius * radius * math.pi
print(f"半径{radius}の円の面積は約{area:.2f}です")
# 16の平方根(ルート)を計算する
number = 16
root = math.sqrt(number)
print(f"{number}の平方根は{root}です。")とセルに入力して実行してみましょう。すると結果は
半径5の円の面積は約78.54です
16の平方根は4.0です。
のように表示されます。
プログラムの解説(円周率と平方根の計算)
- モジュールの読み込み(1行目):
import mathで、数学関数を使う準備をしています。 - 円の面積の計算(4~6行目): 変数
radiusに半径の5を代入し、計算式の中でmath.piを使って円周率を掛け合わせています。 - 結果の表示(8行目): f文字列の機能(
:.2f)を使って、小数点以下が長く続く面積の計算結果を小数点第2位までに整えて表示しています。 - 平方根の計算(11~12行目): 変数
numberに16を代入し、math.sqrt(number)で16の平方根を計算して変数rootに代入しています。結果として4.0が得られます。
小数を切り上げる・切り捨てる
計算結果として出た小数を、そのままではなく「整数に整えたい」という場合もあります。数値を丸める方法として「四捨五入」がありますが、四捨五入は「4以下の数なら切り捨て、5以上の数のときは切り上げる」というルールです。
しかし、プログラムを作っていると「どんな小数でも強制的に上げたい(または下げたい)」という場面が出てきます。
そこで活躍するのが、小数を処理するための機能である切り上げと切り捨てです。
切り上げ(math.ceil)
括弧の中に指定した数値の小数点以下を切り上げて、「次の大きい整数」にします。
切り捨て(math.floor)
括弧の中に指定した数値の小数点以下を切り捨てて、「切り捨て前以下の最大の整数」にします。
では、実際にやってみましょう。
Colabの新しいセルに、適当な小数に対して切り上げと切り捨てを適用し、結果を比較するプログラムを書いてみます。
import math
# 処理する小数のデータを用意する
value1 = 4.3
value2 = 4.8
# math.ceil()を使って切り上げる
ceil_result = math.ceil(value1)
print(f"{value1}を切り上げると{ceil_result}になります")
# math.floor()を使って切り捨てる
floor_result = math.floor(value2)
print(f"{value2}を切り捨てると{floor_result}になります")とセルに入力して実行してみましょう。すると結果は
4.3を切り上げると5になります
4.8を切り捨てると4になります
のように表示されます。
プログラムの解説(切り上げと切り捨て)
- 切り上げの実行(8行目):
math.ceil(value1)について、変数value1の中身は「4.3」ですが、四捨五入なら4になるところを、切り上げ処理によって次の整数である「5」に変換され、変数ceil_resultに代入されます。 - 切り捨ての実行(12行目):
math.floor(value2)について、変数value2の中身は「4.8」ですが、こちらも四捨五入なら5になるところを、切り捨て処理により「4」に変換され、変数floor_resultに代入されます。
階乗を計算する
他にもmathモジュールで使われる機能として、階乗(かいじょう)の計算があります。
「階乗」とは、1からその数までのすべての整数を掛け合わせた数のことです。数学の記号では「\(!\) (エクスクラメーションマーク)」を使って表します。
例えば、「5の階乗(\(5!\))」であれば、次のような計算になります。
$$5! = 5 \times 4 \times 3 \times 2 \times 1 = 120$$
この階乗の計算は、「5人を横一列に並べる並べ方は何通りあるか?」といった、順番や組み合わせ(順列)を計算する時によく使われます。自分でfor文を使って順番に掛け算していくプログラムを書くこともできますが、mathモジュールにはこれを計算してくれる機能が用意されています。
階乗(math.factorial)
括弧の中に指定した整数の階乗を計算します。
では、実際にやってみましょう。
Colabの新しいセルに、階乗を計算するプログラムを書いてみます。
import math
# 5の階乗を計算する
number = 5
result = math.factorial(number)
print(f"{number}の階乗は{result}です")とセルに入力して実行してみましょう。すると結果は
5の階乗は120です
のように表示されます。
プログラムの解説(階乗の計算)
- 階乗の実行(5行目):
math.factorial(number)は、変数numberの中身は「5」なので、内部で\(5 \times 4 \times 3 \times 2 \times 1\)の計算が行われ、その結果である「120」が変数resultに代入されます。
まとめ
今回は、便利な数学計算の機能が詰まった「mathモジュール」について解説しました。
- モジュールの準備: プログラムの先頭で
import mathと記述する。 - 円周率の利用:
math.piを使うことで、円周率(約3.14)の数値を簡単に取得できる。 - 平方根の計算:
math.sqrt(数値)を使うことで、2回掛けるともとの数になるルートの計算を行える。 - 小数の処理:
math.ceil(数値)を使うことで、切り上げを行える。math.floor(数値)を使うことで、切り捨てを行える。
- 階乗の計算:
math.factorial(数値)を使うことで、階乗の計算ができる。
mathモジュールには、今回紹介した以外にも関数が多数用意されています。今後のプログラムで複雑な計算が必要になった時は、ぜひこのモジュールのことを思い出して活用してみてください。

今回はこれで終了です。
今回のサンプルを用意したので、もし必要な場合は上の「Open in Colab」と書いてあるボタンをクリックしてください。なおそのままだと編集不可なので編集をしたい場合は「ドライブにコピー」をクリックしてコピーしてください。
なおGoogle ColaboratoryについてわからなかったらGoogleColaboratoryを使ってみよう_導入編をご覧ください。