はじめに
Python3エンジニア認定基礎試験の対策として自分用に執筆しています。
この記事はPython・執筆学びたての初心者が執筆しています。間違いがあるかもしれませんので、ぜひ各項目にある参考文献も確認してください。また、誤りがあればコメントで教えていただけると幸いです。
標準ライブラリミニツアー
OSへのインターフェース
os
モジュールはOSと対話するための関数を提供する
>>> import os
>>> os.getcwd()
C:\\Python39
>>> os.chdir('/server/accesslogs')
>>> os.system('mkdir today')
0
ファイルやディレクトリの管理作業のために使えるモジュール shutil
>>> import shutil
>>> shutil.copyfile('data.db', 'archive.db')
archive.db
>>> shutil.move('/build/executables', 'installdir')
installdir
ファイルのワイルドカード表記
glob
モジュールは、ディレクトリのワイルドカード検索からファイルのリストを生成するための関数を提供する
>>> import glob
>>> glob.glob('*.py')
['primes.py', 'random.py', 'quote.py']
コマンドライン引数
コマンドライン引数はsys
モジュールのargv属性にリストとして保存される。今回の例は、コマンドライン上にpython demo.py one two three
と入力した際の実行例
>>> import sys
>>> print(sys.argv)
['demo.py', 'one', 'two', 'three']
文字のパターンマッチング
re
モジュール。正規表現に使われる。
>>> import re
>>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
>>> re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
'cat in the hat'
数学
math
モジュール。浮動小数点演算など。
>>> import math
>>> math.cos(math.pi / 4)
0.70710678118654757
>>> math.log(1024, 2)
10.0
random
モジュールは乱数の生成。
>>> import random
>>> random.choice(['apple', 'pear', 'banana'])
'apple'
>>> random.sample(range(100), 10) # 0~100の間でランダムの数値
[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
>>> random.random() # 0~1の間でランダムな数値
0.17970987693706186
>>> random.randrange(6) # range(6)の中でランダムの数値
4
statistics
モジュールは数値データの基礎的な統計的特性を計算(平均、中央値、分散等)
>>> import statistics
>>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]
>>> statistics.mean(data)
1.6071428571428572
>>> statistics.median(data)
1.25
>>> statistics.variance(data)
1.3720238095238095
インターネットへのアクセス
urllib.request
はURLからデータを取得する
smtplib
はメールを送信する
日付と時刻
datetime
モジュールは日付や時刻を操作する。
>>> from datetime import date
>>> now = date.today()
datetime.date(2024. 1, 25)
データ圧縮
zlib
, gzip
, bz2
などの複数のモジュールでサポートされる
パフォーマンスの計測
timeit
モジュールで相対的なパフォーマンスについて調べることができる。
>>> from timeit import Timer
>>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()
0.57535828626024577
>>> Timer('a,b = b,a', 'a=1; b=2').timeit()
0.54962537085770791
参考文献