Pythonには標準でさまざまな数学関数を提供するmathモジュールがあります。
四捨五入や平方根、階乗、三角関数、対数など、日常的に使う関数が一通りそろっており、新しいライブラリをインストールすることなく利用できるのが大きな魅力です。
本記事では、初心者の方にもわかりやすいように、mathモジュールの基本的な使い方を具体的なコード例とともに解説します。
記事の最後には、学んだ内容を確認できる演習問題と解答例もご用意していますので、ぜひ実際に手を動かして試してみてください。
mathモジュールのインポート
まずはmathモジュールを読み込みましょう。通常は次のようにimportします。
import math
これだけで以降、math.sqrt()のようにプレフィックスを付けて呼び出せるようになります。
主な関数と使い方
以下、よく使う関数をピックアップして紹介します。
絶対値:math.fabs(x)
>>> math.fabs(-3.7)
3.7
>>> abs(-3.7) # 組み込み関数 abs() との違いは返り値の型
3.7
切り上げ・切り捨て:ceil/floor
>>> math.ceil(3.2) # 小数点以下を切り上げ
4
>>> math.floor(3.8) # 小数点以下を切り捨て
3
平方根:math.sqrt(x)
>>> math.sqrt(16)
4.0
>>> math.sqrt(2) # 2 の平方根
1.4142135623730951
べき乗:math.pow(x, y) ※組み込み演算子 ** とも使える
>>> math.pow(2, 3) # 2 の 3 乗
8.0
>>> 2 ** 3 # よりシンプルに書くなら
8
階乗:math.factorial(n)
>>> math.factorial(5) # 5 × 4 × 3 × 2 × 1 = 120
120
対数:math.log(x[, base])
自然対数(底 e)
>>> math.log(math.e)
1.0
指定した底の対数
>>> math.log(100, 10) # 100 の底 10 の対数 = 2
2.0
三角関数:sin, cos, tan
>>> math.sin(math.pi / 2) # 90°(π/2 ラジアン)の正弦
1.0
>>> math.cos(0) # 0°の余弦
1.0
- 度→ラジアン変換:math.radians(deg)
- ラジアン→度変換:math.degrees(rad)
>>> math.radians(180) # 180°をラジアンに
3.141592653589793
>>> math.degrees(math.pi) # πラジアンを度に
180.0
実践例:円の面積・三角形の面積計算
import math
# ① 円の面積
def circle_area(radius):
return math.pi * radius ** 2
# ② 三角形の面積(底辺 b、高さ h)
def triangle_area(base, height):
return (base * height) / 2
print("半径 3 の円の面積:", circle_area(3)) # →約28.274
print("底辺 4、高さ 5 の三角形の面積:", triangle_area(4, 5)) # →10.0
※math.pi は π の定数で、高い精度が確保されています。
演習問題
以下の問題に挑戦して、学んだ知識を確認しましょう。(制限時間:各 5 分程度)
- 問題1:切り上げ・切り捨て
与えられた浮動小数点数 x = 5.73 を切り上げ・切り捨てし、それぞれの結果を表示するプログラムを作成せよ。 - 問題2:円周の長さ
半径 r = 7 の円の円周の長さを計算する関数 circle_circumference(r) を作成せよ。公式は 2 * π * r。 - 問題3:三角関数の利用
30° の正弦・余弦・正接(tan)をそれぞれ表示せよ。ただし、Python の sin・cos・tan はラジアン単位なので、変換が必要。 - 問題4:対数の活用
正の数 x = 256 に対し、底が 2 の対数 log₂(x) を求めよ。
演習問題 解答例
import math
# 問題1
x = 5.73
print("切り上げ:", math.ceil(x)) # →6
print("切り捨て:", math.floor(x)) # →5
# 問題2
def circle_circumference(r):
return 2 * math.pi * r
print("半径7の円周の長さ:", circle_circumference(7)) # →約43.982
# 問題3
angle_deg = 30
angle_rad = math.radians(angle_deg)
print("sin30°:", math.sin(angle_rad)) # →0.5
print("cos30°:", math.cos(angle_rad)) # →0.8660254037844387
print("tan30°:", math.tan(angle_rad)) # →0.5773502691896257
# 問題4
x = 256
print("log2(256) =", math.log(x, 2)) # →8.0
まとめ
- import math で手軽に数学関数が使える。
- ceil, floor, sqrt, factorial, log, 三角関数など、基本関数を押さえる。
- math.pi, math.e など定数も豊富。
- 初級者はまず「数値の丸め」「平方根」「三角・対数・階乗」の使い方を練習しよう。
あなたも本記事の例や演習問題を通じて、mathモジュールを日常的なスクリプトや分析に活用してみてください。Pythonの基本力が確実にアップします!