【Python入門】標準ライブラリとは?知っておくと便利な関数5選

こんにちは、ライターのアキヒロです。

「標準ライブラリってよく聞くけど、何なんだろう」
「標準ライブラリには、どんな種類があるのかな」

そんなことを考えたことはありませんか?

この記事では、Pythonの標準ライブラリについて解説します。

【基礎】そもそも標準ライブラリとは何か?
【実践】便利な標準ライブラリの解説

といった基礎から実践的に役立つ内容までを解説します。

※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。

なお、Pythonの記事については、こちらにまとめています。

標準ライブラリとは?

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.getcwd()はカレントディレクトリを返します。
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は将来性がありそうだから

といったような、ぼんやりした理由でPythonを学んでいるとしたらそれは要注意。もっと言うと、そもそもあなたが学ぶべき最適な言語が他にあるという可能性も考えられます。

どのプログラミング言語を学ぶか?は、その先のエンジニア人生を左右すると言っても過言ではありません。もしあなたが現状の言語選定に少しでも不安があるなら、まずはプログラミング言語無料診断アプリを使ってみてください。

いくつかの簡単な質問に答えるだけで、あなたにぴったりの言語や学習プランを1分ほどで無料診断致します。

挫折せずに学びたいなら

また、学ぶべき言語はPythonで間違っていないけど、エラーとの戦いに消耗している方や、Python学習に最適な学習環境を作れていない人もいるかもしれません。

というのも、一般的にPythonは初心者でも学びやすい言語と言われていますが、そもそも機械学習という分野は、プログラミング以外にも専門的な知識や数学の知識も必要になってくるので、実は想像以上に挫折しやすい言語でもあるのです。

なのでやはり、つまずいた時に分からない部分を聞ける環境を作っておくと、挫折する事なく学習を続けられスキルを習得できる可能性がグッと上がります。

もしあなたが今Pythonの独学に少しでも不安を抱いているのであれば、ぜひ弊社「侍エンジニア」をご利用ください。

弊社では機械学習専門コースを用意しており、現役エンジニアがマンツーマンであなたの学習をサポートします。また、転職支援や独立・起業サポートもしているので、学習した先も安心ですよ。

もちろん、いきなり入会するのは不安な人も多いと思います。そこで、興味がある人はまず無料カウンセリングを利用してみてください。弊社随一のコンサルタントが、あなたの理想や目標をヒアリングした上で、あなたにぴったりの学習プランを提供させて頂きます。

無料体験は下記ボタンから1分ほどで予約できるので、ぜひお気軽にご利用ください。オンラインでの利用も可能となっています。

侍エンジニア
無料カウンセリングの予約はこちら

まとめ

今回はPythonの標準ライブラリの解説と、便利なモジュールを紹介しました。

標準ライブラリを上手に使えば、簡単に複雑な処理ができるようになります。

ぜひマスターして簡単に処理が書けるようになりましょう!

なお、今Pythonを学習している方は以下の記事もどうぞ。

はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。

復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。

Python 入門完全攻略ガイド

ライターのアキヒロです。大学で機械学習・自然言語処理を学び、Pythonという言語を中心にコードを書いています。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら