モジュールと標準ライブラリ

INPUT · スライド

数の計算をまかせる

01 / 07

円の面積を出したい

半径から円の面積を出すには、半径×半径×円周率。ここで困るのが円周率だね。

3.14 と自分で書いてもいいけれど、桁が足りないぶんだけ答えがずれる。かといって、円周率を自分で計算するのはとても大変だ。

こういう「よくある計算」は、Pythonに最初からついてくる math(マス)というモジュールが持っているよ。import math と1行書くだけで使える。インストールも設定も要らない。

02 / 07

平方根は math.sqrt

平方根(2乗するとその数になる数)は math.sqrt で出せる。sqrt は square root(スクエアルート)の略だよ。

答えは必ず小数で返ってくる。math.sqrt(16) は 4 ではなく 4.0 になるところに注目してね。

import mathprint(math.sqrt(16))print(math.sqrt(2))

実行結果

4.0
1.4142135623730951

03 / 07

円周率は math.pi

math.pi は円周率だよ。ここで大事なのは、これは関数ではなく値だということ。カッコをつけないよ。

math.sqrt() はカッコに数を渡すけれど、math.pi はそれ自体がもう数。変数と同じように使えるんだ。

import mathprint(math.pi)hankei = 3print(math.pi * hankei ** 2)

実行結果

3.141592653589793
28.274333882308138

04 / 07

切り捨てと切り上げ

math.floor(フロア、床)は下へ、math.ceil(シール、天井)は上へそろえるよ。返ってくるのは整数だね。

「3個ずつ箱に入れると箱はいくつ要るか」のように、あまりが出ても1つ数えたいときに math.ceil が効くよ。

import mathprint(math.floor(3.7))print(math.ceil(3.2))

実行結果

3
4

05 / 07

import が要らない仲間もいる

四捨五入の round と、絶対値(符号を取った大きさ)の abs は 組み込み関数なので import が要らない。最初から名前が置いてあるんだ。

round は近いほうへ、math.floor は必ず下へ。3.7 なら round は 4、math.floor は 3 になる。どちらがほしいのかを決めてから選ぼう。

print(round(3.456, 2))print(abs(-5))

実行結果

3.46
5

06 / 07

math.pow と ** のちがい

math.pow(a, b) は a の b 乗。第1章でやった ** と同じ計算だよ。

ちがうのは返ってくる型。math.pow は必ず小数を返すので、整数のまま扱いたいなら のほうが素直だね。同じ答えを出す道具が2つあるときは、そのあと何に使うか**で選ぶといいよ。

import mathprint(math.pow(2, 3))print(2 ** 3)

実行結果

8.0
8

07 / 07

覚えるのではなく、探す

math には他にも対数の math.log、三角関数の math.sin など、たくさんの道具が入っている。全部覚える必要はまったくない。

持ち帰ってほしいのはこちら。「この計算、誰かがもう作っているんじゃないか」と一度考えること。自分で平方根の計算を書き始める前に math を覗く——この習慣が、この章でいちばん大事なところだよ。