こんにちは、ライターのアキヒロです。
「標準ライブラリってよく聞くけど、何なんだろう」
「標準ライブラリには、どんな種類があるのかな」
そんなことを考えたことはありませんか?
この記事では、Pythonの標準ライブラリについて解説します。
【実践】便利な標準ライブラリの解説
といった基礎から実践的に役立つ内容までを解説します。
※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。
この記事の目次
標準ライブラリとは?
Pythonではprint()やlen()などのように、何もしなくても使える組み込み関数の他に、標準ライブラリと呼ばれるモジュール群も付属しています。
モジュールとは一連の関連した関数を埋め込んだPythonプログラムのことです。
つまり標準ライブラリを使うということは、既存のPythonプログラムに埋め込まれている便利な関数を使うということなんですね!
標準ライブラリの使い方
各モジュールの関数を呼び出すには、まずインポートを行う必要があります。
import モジュール名
複数のモジュールをインポートするときは、カンマで区切ってインポートもできますが、別々にインポートすることが推奨されています(PEP8というコーディング規約があります)。
import モジュール名1 import モジュール名2
fromを使えばモジュールの中にあるオブジェクトをインポートすることもできます。
from モジュール名 import オブジェクト名
便利な標準ライブラリ
では早速、使えると便利な標準ライブラリを紹介します!
randomモジュール
randomモジュールには乱数の生成に関する関数が含まれています。
import random print(random.randint(0, 10))[実行結果]
2
1行目では先ほど紹介したモジュールのインポートを行っています。
2行目ではrandomモジュールのrandint関数を使って疑似乱数を生成しています。
この例では0<= N <=10で乱数を生成しています。
当然、実行するごとに結果が変わります。
また、randrange()を使えばstepも決めてランダムな整数を取得できます。
print(random.randrange(0, 10, 2))[実行結果]
8
引数はrandrange(start, stop, step)となっています。
そのため、このコードでは0<= N <=9の数字の中から2のステップ、つまり0,2,4,6,8の偶数のみ表示するようになっているはずです。
mathモジュール
mathモジュールは数学に関する関数が含まれています。
from math import pi, e, sqrt, log, pow, sin, cos, tan print(pi) print(e) print(sqrt(4)) # 平方根 print(log(5)) # 自然対数 print(pow(2, 3)) # xのy乗 print(sin(0)) print(cos(0)) print(tan(0))[実行結果]
3.141592653589793 2.718281828459045 2.0 1.6094379124341003 8.0 0.0 1.0 0.0
まず、一行目でmathモジュールにある各オブジェクトをインポートしています。
pi, eは定数です。piは円周率、eは自然対数の底を返します。
sqrt()は平方根、log()は自然対数を返します。
pow(x, y)はxのy乗を返します。この例では2の3乗、つまり2*2*2 = 8という結果が返されます。
さらにsin()、cos()、tan()もあります。これらは三角関数のサイン、コサイン、タンジェントを返します。
sysモジュール
sysモジュールにはシステムパラメータに関する関数が含まれています。
では、プログラムをsys.exit()を呼び出して終了させてみましょう!
import sys print('おはよう') print('こんにちは') sys.exit() print('こんばんは')[実行結果]
おはよう こんにちは
このコードは「おはよう」、「こんにちは」、「こんばんは」を順番に表示するプログラムです。しかし「こんにちは」と「こんばんは」の間にsys.exit()を記述しました。
これによってプログラムが呼び出した場所で終了し、「こんばんは」が表示されていないことがわかります。
この関数を使うことで好きな時に早期にプログラムを終了させることができます。
osモジュール
osモジュールにはファイル操作に関する関数が含まれています。
import os print(os.getcwd()) os.mkdir('./test') os.chdir('./test') print(os.getcwd())[実行結果]
/home/user/workspace /home/user/workspace/test
1行目は今までと同様にモジュールのインポートをしています。
os.mkdir()はディレクトリを作ります。
os.chdir()はディレクトリを移動します。
このコードではディレクトリを作って、移動しています。そのためもう一度os.getcwd()を呼び出した時には新たに作ったディレクトリがカレントディレクトリになっていることがわかります。
reモジュール
reモジュールには正規表現の操作に関する関数が含まれています。
import re name = 'samurai' print(re.match('sam', name)) # 先頭がマッチするか print(re.match('sum', name)) print(re.search('rai', name)) # 'rai'という文字が含まれるか print(re.findall('a', name)) # マッチした部分をリストで返す print(re.sub('a', 'b', name)) # 'a'を'b'に置換する print(re.split('a', name)) # 'a'でnameを分割する[実行結果]
<_sre.SRE_Match object; span=(0, 3), match='sam'> None <_sre.SRE_Match object; span=(4, 7), match='rai'> ['a', 'a'] sbmurbi ['s', 'mur', 'i']
順番に見ていきましょう。1行目はインポートをしています。
re.match()は文字列の先頭がパターンにマッチするかどうかが返されます。このコードではnameという変数に’samurai’という文字列を入れています。
そのため最初のmatch()では先頭がsamなのでmatchオブジェクトが返されています。
次のmatch()では先頭が’sum’かどうかを判定していますが、’samurai’の先頭は’sum’ではないのでNoneという結果が返されています。
re.search()は先頭に限らず、文字列の全てからパターンにマッチするか調べます。
re.findall()はマッチした部分をリストで返します。
この例では’a’にマッチした部分が2つあったことがわかりますね。
re.sub()は置換する関数です。’a’を’b’に置換したため、’samurai’が’sbmurbi’になっています。
re.split()は分割する関数です。’a’を区切りとして文字列を分割すると、’s’、’mur’、’i’になるため、正しい結果であることがわかります。
あなたが学ぶべき言語はPythonで本当に大丈夫?
ここまでPythonの標準ライブラリについて解説してきましたが、この記事をご覧の方の中には、
と不安になっている人もいるのではないでしょうか?そんな方には、一度立ち止まって考えて欲しいことがあります。それは、そもそもあなたがPythonを学ぶ目的は何か?本当に学ぶべき言語はPythonで間違いないか?ということです。
Pythonを学ぶ目的や理由は明確ですか?
Pythonに限った話ではありませんが、プログラミング学習はエラーとの戦いが大半なので、学ぶ目的や理由が不明確だとモチベーションが下がってしまい、挫折してしまいやすいです。
なのでもしあなたが今、
- なんとなくPythonが人気そうだから
- Pythonは将来性がありそうだから
といったような、ぼんやりした理由でPythonを学んでいるとしたらそれは要注意。もっと言うと、そもそもあなたが学ぶべき最適な言語が他にあるという可能性も考えられます。
どのプログラミング言語を学ぶか?は、その先のエンジニア人生を左右すると言っても過言ではありません。もしあなたが現状の言語選定に少しでも不安があるなら、まずはプログラミング言語無料診断アプリを使ってみてください。
いくつかの簡単な質問に答えるだけで、あなたにぴったりの言語や学習プランを1分ほどで無料診断致します。
挫折せずに学びたいなら
また、学ぶべき言語はPythonで間違っていないけど、エラーとの戦いに消耗している方や、Python学習に最適な学習環境を作れていない人もいるかもしれません。
というのも、一般的にPythonは初心者でも学びやすい言語と言われていますが、そもそも機械学習という分野は、プログラミング以外にも専門的な知識や数学の知識も必要になってくるので、実は想像以上に挫折しやすい言語でもあるのです。
なのでやはり、つまずいた時に分からない部分を聞ける環境を作っておくと、挫折する事なく学習を続けられスキルを習得できる可能性がグッと上がります。
もしあなたが今Pythonの独学に少しでも不安を抱いているのであれば、ぜひ弊社「侍エンジニア」をご利用ください。
弊社では機械学習専門コースを用意しており、現役エンジニアがマンツーマンであなたの学習をサポートします。また、転職支援や独立・起業サポートもしているので、学習した先も安心ですよ。
もちろん、いきなり入会するのは不安な人も多いと思います。そこで、興味がある人はまず無料体験レッスンを利用してみてください。弊社随一のコンサルタントが、あなたの理想や目標をヒアリングした上で、あなたにぴったりの学習プランを提供させて頂きます。
無料体験は下記ボタンから1分ほどで予約できるので、ぜひお気軽にご利用ください。オンラインでの利用も可能となっています。
まとめ
今回はPythonの標準ライブラリの解説と、便利なモジュールを紹介しました。
標準ライブラリを上手に使えば、簡単に複雑な処理ができるようになります。
ぜひマスターして簡単に処理が書けるようになりましょう!
なお、今Pythonを学習している方は以下の記事もどうぞ。
はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。
復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。
【Python 入門完全攻略ガイド】