Pythonのmathモジュールを使ってみる

数学計算用モジュール「math」を使ってみる

数学計算用のmathモジュールを使ってみます。

詳細なドキュメントは以下を参照してください。

9.2. math — 数学関数 — Python 3.5.2 ドキュメント

mathモジュールには、数学計算用の変数と関数が入っています。ここでは、mathモジュールに含まれている変数・関数のうち一般によく使われそうなものを中心に解説していきます。

sqrt()関数

sqrt()関数は、指定した値の平方根を返す関数です。例えば、5の平方根を求めて変数numに格納し、結果を表示するには以下のように実行します。

>>> import math
>>> num = math.sqrt(5)
>>> print (num)
2.23606797749979

実際に値を入力して、その値に対する平方根を計算するコードを書くと以下のようになります。

% vim sqrt.py

import math

num = float(input("数値を入力してください:"))
num_sqrt = math.sqrt(num)
print (str(num) + "の平方根は、" + str(num_sqrt) + "です。")

fromを使用してインポートする場合は、以下のように記述します。

from math import sqrt

num = float(input("数値を入力してください:"))
num_sqrt = sqrt(num)
print (str(num) + "の平方根は、" + str(num_sqrt) + "です。")

上記コードを実行すると次のように出力されます。

% python sqrt.py
数値を入力してください:5
5.0の平方根は、2.23606797749979です。

sqrt()関数以外にも便利な関数がありますので紹介しておきます。

floor(x)

x以下の最大の整数を返す。

>>> math.floor(3.3)
3

ceil(x)

x以上の最小の整数を返す。

>>> math.ceil(3.3)
4

trunc(x)

小数点以下を切り捨てる。

>>> math.trunc(3.3)
3

exp(x)

eのx乗を返す。

>>> math.exp(3)
20.085536923187668

log(x)

xの自然対数を返す。

>>> math.log(3)
1.0986122886681098

pow(x,y)

xのy乗を返す。

>>> math.pow(3,2)
9.0

sin()、cos()、tan()

それぞれ、xのサイン、コサイン、タンジェントを返す

>>> math.sin(3)
0.1411200080598672
>>> math.cos(3)
-0.9899924966004454
>>> math.tan(3)
-0.1425465430742778

モジュール内の定数を利用する

モジュールには関数だけではなく、定数も用意されているものがあります。mathモジュールの場合は、「pi」と「e」という2つの定数が用意されています。

  • pi
    円周率を返す
  • e
    自然対数の底を返す
>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045

定数piを使って、円周率を計算するコードを書いてみます。

vim enshuritu.py

import math

hankei = float(input("半径を入力してください:"))

enshu = hankei * 2 * math.pi
menseki = math.pow(hankei,2) * math.pi

print ("半径が" + str(hankei) + "の時の円周は、" + str(enshu))
print ("半径が" + str(hankei) + "の時の面積は、" + str(menseki))

半径を入力すると、円周と面積を計算して出力します。実行結果は以下の通りです。

% python enshuritu.py
半径を入力してください:4
半径が4.0の時の円周は、25.132741228718345
半径が4.0の時の面積は、50.26548245743669

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: