標準ライブラリと環境の要点
内容の確認日: 2026-10-04
この分野は「Pythonチュートリアル」の第 10 章・第 11 章 (標準ライブラリのツアー) と第 12 章 (仮想環境とパッケージ) に対応します。Python に最初から付いている便利なモジュールの使い方と、プロジェクトごとにパッケージを管理する仕組みが問われます。
出題項目は「標準ライブラリ (os・math・random など)」「標準ライブラリ (json・re・datetime など)」「仮想環境とパッケージ」の 3 つです。関数の名前と戻り値を、実際の出力で確かめながら覚えましょう。
math・statistics・random
math は数学の関数を集めたモジュールです。math.gcd() (最大公約数)・math.factorial() (階乗)・math.ceil() (切り上げ)・math.floor() (切り捨て)・math.sqrt() (平方根) などがあります。math.floor(-2.1) は -3 のように、負の数では 0 から離れる方向に切り捨てます。
statistics は統計の関数を集めたモジュールで、mean() (平均)・median() (中央値)・mode() (最頻値) などがあります。
random は乱数のモジュールです。random.random() (0 以上 1 未満の小数)・randint(a, b) (a 以上 b 以下の整数)・choice(シーケンス)・shuffle(リスト)・sample(シーケンス, k) などがあります。random.seed(値) で乱数の種を固定すると、同じ乱数の並びが再現されます。
import mathimport randomimport statisticsprint(math.gcd(12, 18), math.factorial(4), math.ceil(2.1), math.floor(-2.1))data = [1, 2, 2, 3, 10]print(statistics.mean(data), statistics.median(data), statistics.mode(data))random.seed(42)first = [random.randint(1, 6) for _ in range(5)]random.seed(42)second = [random.randint(1, 6) for _ in range(5)]print(first == second)python3 main.py 6 24 3 -3 3.6 2 2 True
平均の 3.6 は外れ値の 10 に引っ張られていますが、中央値の 2 は影響を受けにくい、という違いも押さえておきましょう。
os と sys
os は OS の機能を使うモジュールです。os.getcwd() (現在のディレクトリ)・os.environ (環境変数)・os.path.join() (パスの連結)・os.path.splitext() (拡張子の分離)・os.path.basename() (ファイル名の部分) などがあります。
sys.argv はコマンドライン引数のリストで、先頭の sys.argv[0] はスクリプト名です。実際の引数は sys.argv[1:] に入ります。
import osimport sysprint(sys.argv[1:], len(sys.argv))print(os.path.splitext("report.final.txt"), os.path.basename("/tmp/a/b.txt"))print(os.path.join("data", "2026", "log.txt"))python3 main.py x y ['x', 'y'] 3 ('report.final', '.txt') b.txt data/2026/log.txt
splitext は最後の . で分けます。os.path.join の区切り文字は OS によって変わります (この例は macOS・Linux の結果で、Windows では \ になります)。
datetime・json・re
datetime は日付と時刻を扱うモジュールです。date(年, 月, 日) で日付を作り、year・month などの属性で値を取り出します。timedelta で日付の足し算・引き算ができ、strftime(書式) で好きな形の文字列にできます (%Y は 4 桁の年、%m は 2 桁の月、%d は 2 桁の日)。
json.dumps() は Python のオブジェクトを JSON の文字列 (str) に、json.loads() は JSON の文字列を Python のオブジェクトに変換します。
re は正規表現のモジュールです。パターンには \ を多く使うので、r"..." の raw 文字列で書きます。re.search() は最初に一致した部分を表すマッチ・オブジェクト (一致しなければ None) を返し、group(0) で一致した全体、group(1) 以降で ( ) で囲んだ部分を取り出せます。re.findall() は一致したすべての文字列のリスト、re.sub() は置き換えた文字列を返します。
import jsonimport refrom datetime import date, timedeltad = date(2026, 4, 5)print(d.year, d + timedelta(days=30), d.strftime("%Y/%m/%d"))print(json.dumps({"ok": True, "n": None}), json.loads('[1, "a"]'))m = re.search(r"(\d+)-(\d+)", "TEL: 03-1234")print(m.group(0), m.group(1), re.findall(r"\d", "a1b22"), re.sub(r"\s+", " ", "a b c"))python3 main.py 2026 2026-05-05 2026/04/05 {"ok": true, "n": null} [1, 'a'] 03-1234 03 ['1', '2', '2'] a b c
collections と decimal
collections には、便利なコンテナが入っています。Counter は要素の出現回数を数え、most_common(n) で多い順に n 個を返します。deque は両端からの追加・取り出しが速いキューで、appendleft()・popleft() などが使えます。
小数は内部では 2 進数の近似値で表されるため、0.1 + 0.2 == 0.3 は False になります。お金の計算など正確な 10 進数の計算が必要なときは、decimal モジュールの Decimal を使います (Decimal("0.1") のように文字列で作ります)。
from collections import Counter, dequefrom decimal import Decimalc = Counter("banana")print(c["a"], c.most_common(1))q = deque([1, 2])q.appendleft(0)q.append(3)print(q.popleft(), list(q))print(0.1 + 0.2 == 0.3, Decimal("0.1") + Decimal("0.2") == Decimal("0.3"))python3 main.py 3 [('a', 3)] 0 [1, 2, 3] False True
ほかにも、品質管理のための doctest・unittest (テスト)、logging (ログの出力)、zlib (データの圧縮)、timeit (処理時間の計測) などが標準ライブラリに含まれています。
仮想環境とパッケージ
仮想環境は、プロジェクトごとに独立したパッケージのインストール先を用意する仕組みです。プロジェクトごとに違うバージョンのパッケージを使えるようになります。標準の venv モジュールで作ります。
パッケージは pip で、PyPI (Python Package Index) からインストールします。pip freeze でインストール済みのパッケージを一覧にして requirements.txt に保存しておくと、pip install -r で同じ環境を再現できます。
python3 -m venv .venv # 仮想環境を作るsource .venv/bin/activate # 有効にする (Windows は .venv\Scripts\activate)pip install requests # パッケージをインストールするpip install requests==2.31.0 # バージョンを指定するpip install --upgrade requests # 更新するpip freeze > requirements.txt # インストール済みの一覧を保存するpip install -r requirements.txt # 一覧からまとめてインストールするdeactivate # 仮想環境を抜ける試験でよくある引っかけ
sys.argv[0]sys.argv[0]はスクリプト名です。1 つ目の引数はsys.argv[1]です。random.seedの意味同じ種を設定すれば、同じ乱数の並びが再現されます。乱数を「より乱雑にする」設定ではありません。
math.floorと負の数math.floor(-2.1)は-3です。負の無限大の方向へ切り捨てます。json.dumpsの戻り値json.dumpsが返すのは JSON 形式の文字列 (str) です。ファイルへの書き込みはjson.dumpです。re.searchとre.findallsearchは最初の一致のマッチ・オブジェクト (なければNone)、findallは一致した文字列のリストを返します。仮想環境の作り方
仮想環境は
python3 -m venv 名前で作ります。パッケージのインストールはpip installです。
問題で確認する
この分野の問題を、解説つきで読めます (登録不要)。
出典・参考
- Python エンジニア育成推進協会「Python 3 エンジニア認定基礎試験」
- Python ドキュメント「Python チュートリアル」10. 標準ライブラリミニツアー
- Python ドキュメント「Python チュートリアル」11. 標準ライブラリミニツアー --- その 2
- Python ドキュメント「Python チュートリアル」12. 仮想環境とパッケージ
コード例は、実際に実行して結果を確認しています。