【Python】mathモジュールの便利な関数【基本講座】
Pythonでは、mathモジュールと言って算術計算において便利なライブラリがあります。今回はそれを見ていきましょう。
mathモジュールの基本
mathモジュールの使い方
mathモジュールだけではなく、様々なモジュールを使うには、Pythonのソースコードの1行目に import と書く必要があります。
例:
1 2 3 4 5 |
import math num = 3.14 print(math.sqrt(num)) |
1行目でimportするだけでなく、モジュールで定義されている関数は、3行目のように math.sqrt のように書くことで使うことができる。上記の動作は、numを平方根で表示しているプログラムです。
mathモジュールの便利な関数【丸暗記】
関数 | 説明 |
ceil(x) | xの値以上の最小の整数を返す |
floor(x) | xの値以下の最大の整数を返す |
exp(x) | eのx乗を返す |
log(x) | xの自然対数を返す |
pow(x, y) | xのy乗を返す |
sqrt(x) | xの平方根を返す |
sin(x) | xのサインを返す |
cos(x) | xのコサインを返す |
tan(x) | xのタンジェントを返す |
radian(x) | 角度xをラジアンに変換して返す |
ちょっとした問題を解いてみよう!
問題:
aにb とcを足して2で割った値の整数部をいれよ。(b,c >= 0とする)
例) b=2, c = 3 のとき a = 2になる。
いくつか回答が考えられるが4つほど思いつくだろうか?
1 2 3 4 5 6 7 8 9 10 11 |
# 解1 a = (b + c) // 2 # 解2 a = floor((b + c) / 2) # 解3 a = int((b + c) / 2) # 解4 a = b + c >> 2 |
解1は、商の部分だけ取得することを利用した解法です。
解2は、floor関数を利用した小数点以下切り捨てた解法です。
解3は、解2と同じような感じで整数部のみ表示する解法です。
解4は、ビット演算を利用した解法です。この中では一番高速に処理できます。しかし、3で割るときは使用できないというデメリットもあります。使い時を選ぶ解法です。
ceilとfloorのちょこっと話
ceilやfloorは頻出関数ではありますが、ただ単に丸暗記というのもしんどいことだと思います。
そこで、ここでは意味を理解してそれをフックに記憶と結び付けておけるように解説したいと思います。
ceil:天井という意味で、それ以上上がないので値を繰り上げると理解します。
1 2 3 |
print(math.ceil(3.5)) >> 4 |
floor:床という意味で下に行くので、小数点以下切り捨てになります。なお、ガウス記号と同じ振る舞いと覚えておくと良いです。
1 2 3 |
print(math.floor(3.5)) >> 3 |
Pythonおすすめ書籍
最初の2冊は初心者向けです。Effectiv Pythonはこの2冊を終えてから読むとかなりわかりやすく感動できると思います。
|
|
|
独学に限界を感じていませんか?
プログラミング初学者がもっとも陥りやすいのは、挫折です。
なぜ?挫折するのでしょうか?
それは独学だけでは、限界があるからです。
でも、あきらめてはそこで終わりです。
プログラミング言語習得には、メンターと呼ばれる教えてくれる人間が必要です。メンターがいれば、挫折する確率がグンと低くなります。
困ったときに、いつでも教えてくれる先生がいれば心強いと思いませんか?
でも、先生って、学校行く時間もないし、、、そんなこと思っていませんか?
今は、Webでプログラミングが学べる時代なんですよ!
でも、お高いんでしょ?
うーん。これは考え方なのかもしれないんですが、例えば、こう考えてはどうでしょうか?
スクール代金が1コース20万円として、その後、ITエンジニアに就職したら、平均30万円以上は、稼げるのですぐに元が取れますよね?
この数値は、リクナビなど転職サイトを検索すればすぐ出てくる数値です。
今一時の出し渋りにより、一生の賃金を損することになるか、倍以上手に出来るかは、自明ですよね?
でも、どこが良いのかわからない。
そこで、厳選したプログラミングスクールと動画サイトをご紹介いたします。
- TechAcademy [テックアカデミー]※スクールの数が多い!返金制度あり!
- 【WebCampPRO】※WEB系に特化したスクール!返金制度あり!
- 【CodeCamp】※無料体験レッスンを受講すると受講料が1万円OFF!
- Python 3 入門+アメリカのシリコンバレー流コードスタイル
- 【Web開発初心者向け!】Web開発入門完全攻略 充実の18時間コース※動画で学びたい人はこちら!格安もあり!
- フロントエンドエンジニアになりたい人の Webプログラミング入門