Python早見帳(拡張版)
元ネタ: https://chokkan.github.io/python/index.html
🆕 = 元の目次に追加した章・節。章番号は追加に伴い振り直している。 元の18章 → 26章(新規8章 + 既存章への節追加)+ 付録。
目次
基礎
1. 基本的な計算
- 1.1. Pythonことはじめ
- 1.2. 四則演算
- 1.3. 浮動小数点数
- 1.4. 2進数と16進数
- 1.5. 🆕 比較演算子
- 1.6. 🆕 論理演算子と短絡評価
- 1.7. 🆕 真偽値と Truthy / Falsy
- 1.8. 🆕
Noneと、==とisの違い
2. 変数
- 2.1. 基本
- 2.2. 変数の再評価
- 2.3. 複数の変数への代入
- 2.4. 変数の型アノテーション (Python 3.6以降)
- 2.5. 🆕 命名規則とコードスタイル (PEP 8)
- 2.6. 🆕 海象演算子
:=(Python 3.8以降)
3. 実行制御
- 3.1. for文(反復処理)
- 3.2. if文(条件分岐)
- 3.3. while文(条件付き反復)
- 3.4. continue文
- 3.5. break文
- 3.6. for文およびwhile文のelse節
- 3.7. match文 (Python 3.10以降)
4. 関数
- 4.1. 関数の定義と引数
- 4.2. 関数の戻り値
- 4.3. ドキュメンテーション文字列
- 4.4. 変数のスコープと関数
- 4.5. 関数オブジェクト
- 4.6. 可変長引数
- 4.7. 🆕 位置専用引数とキーワード専用引数(
/と*) - 4.8. 🆕 ラムダ式
- 4.9. 🆕 高階関数(
map/filter/sorted(key=)/functools.reduce) - 4.10. 🆕 クロージャ
- 4.11. 🆕 デコレータ
5. モジュール
- 5.1. 他のモジュールの取り込み
- 5.2. インストールされたモジュールの利用
- 5.3. コマンドラインからの実行
- 5.4. 🆕
if __name__ == "__main__":の仕組み - 5.5. 🆕 パッケージ(
__init__.py、相対import) - 5.6. 🆕 コマンドライン引数(
sys.argv/argparse)
6. 🆕 環境構築とパッケージ管理
- 6.1. 🆕 Pythonのバージョン管理(pyenv、
uv python) - 6.2. 🆕 仮想環境(
venv) - 6.3. 🆕 pip によるパッケージのインストール
- 6.4. 🆕 uv によるプロジェクト管理
- 6.5. 🆕
pyproject.toml(PEP 621) - 6.6. 🆕
requirements.txtとロックファイル - 6.7. 🆕 よくあるトラブル(複数のPython、
externally-managed-environmentなど)
データ構造
7. リスト
- 7.1. 基本
- 7.2. スライス
- 7.3. リストの要素に対する繰り返し
- 7.4. リストの要素に対する操作
- 7.5. 要素の並び替え
- 7.6. 要素の所属検査
- 7.7. リストと参照
- 7.8. リストと関数の引数
- 7.9. リストの様々な作成方法
- 7.10. 🆕 内包表記のまとめ(リスト・辞書・集合・ジェネレータ式)
8. タプル
- 8.1. 基本
- 8.2. パック・アンパック
- 8.3. 特殊なタプルの作成
- 8.4. リストとタプルの相互変換
9. 文字列
- 9.1. 基本
- 9.2. 特殊文字や複数行にわたる文字列
- 9.3. 数値と文字列の間の変換
- 9.4. インデックス、スライス
- 9.5. 文字列に対する操作
- 9.6. 文字列に対する条件
- 9.7. フォーマット文字列
- 9.8. 文字エンコーディング
- 9.9. 🆕 文字列の結合は
joinを使う理由
10. 辞書
- 10.1. 基本
- 10.2. タプルをキーとする辞書
- 10.3. ネストした辞書
- 10.4. 辞書の内包表記
- 10.5. ネストしたオブジェクトの構築
- 10.6. 🆕
get/setdefault/defaultdictによる欠損キーの扱い - 10.7. 🆕 辞書のマージ(
|演算子、**展開)(Python 3.9以降)
11. 集合
- 11.1. 基本
- 11.2. 集合の内包表記
- 11.3. 集合間の演算
12. 🆕 collectionsモジュール
- 12.1. 🆕
Counter(要素の出現回数) - 12.2. 🆕
defaultdict - 12.3. 🆕
deque(両端キュー) - 12.4. 🆕
namedtuple - 12.5. 🆕
OrderedDictと辞書の順序保証 (Python 3.7以降) - 12.6. 🆕
ChainMap - 12.7. 🆕 データ構造の使い分け(list / tuple / dict / set / deque の計算量)
発展
13. ファイルの入出力
- 13.1. ファイルへの書き込み
- 13.2. ファイルからの読み込み
- 13.3. CSV
- 13.4. JSON
- 13.5. 文字コードを指定したファイルオブジェクト
- 13.6. 🆕
pathlibによるパス操作 - 13.7. 🆕 ディレクトリ操作(
glob/shutil/tempfile) - 13.8. 🆕 TOML(
tomllib、Python 3.11以降)
14. 🆕 with文とコンテキストマネージャ
- 14.1. 🆕 基本(なぜ
withを使うのか) - 14.2. 🆕 複数のコンテキストマネージャ
- 14.3. 🆕
contextlib.contextmanager - 14.4. 🆕
__enter__/__exit__の自作 - 14.5. 🆕 よく使うもの(
open/Lock/suppress/TemporaryDirectory)
15. 可変と不変
- 15.1. 不変なオブジェクト
- 15.2. 可変なオブジェクト
- 15.3. 関数への参照渡しと不変・可変
- 15.4. 🆕 浅いコピーと深いコピー(
copyモジュール) - 15.5. 🆕 可変なデフォルト引数の罠
16. クラス
- 16.1. インスタンス化
- 16.2. メソッド
- 16.3. 継承
- 16.4. 特殊メソッド
- 16.5. 🆕
@property - 16.6. 🆕 クラスメソッドと静的メソッド
- 16.7. 🆕
dataclass - 16.8. 🆕
Enum - 16.9. 🆕 抽象基底クラス(
abc)
17. 🆕 型ヒント応用
- 17.1. 🆕 組み込みジェネリクス(
list[int]/dict[str, int]) - 17.2. 🆕
OptionalとX | None(Python 3.10以降) - 17.3. 🆕
Union/Literal/Final - 17.4. 🆕
TypedDict - 17.5. 🆕
Protocol(構造的部分型) - 17.6. 🆕 ジェネリクス(
TypeVar、Python 3.12以降の新構文) - 17.7. 🆕 型エイリアス(
type文、Python 3.12以降) - 17.8. 🆕 静的型チェッカ(pyright / mypy)の使い方
18. 例外
- 18.1. 例外の捕捉
- 18.2. 例外の送出
- 18.3. よく見かける例外
- 18.4. 🆕 独自の例外クラス
- 18.5. 🆕 例外の連鎖(
raise ... from ...) - 18.6. 🆕
ExceptionGroupとexcept*(Python 3.11以降) - 18.7. 🆕
assert文
19. イテレータとジェネレータ
- 19.1. イテレータ
- 19.2. ジェネレータ
- 19.3. ジェネレータ式
- 19.4. 🆕
yield from
20. 🆕 標準ライブラリ
- 20.1. 🆕
itertools(chain/product/groupby/isliceなど) - 20.2. 🆕
functools(lru_cache/cache/partial) - 20.3. 🆕 日付と時刻(
datetime/zoneinfo) - 20.4. 🆕 正規表現(
re) - 20.5. 🆕
math/random/statistics - 20.6. 🆕
argparse - 20.7. 🆕
os/sys/subprocess - 20.8. 🆕 HTTP通信(
urllibと、外部ライブラリのrequests/httpx)
21. 🆕 品質管理(コードスタイル・テスト・ログ・デバッグ)
- 21.1. 🆕 コードスタイルとフォーマッタ・リンタ(PEP 8 /
ruff/black) - 21.2. 🆕
unittest - 21.3. 🆕
pytest(assert/ fixture /parametrize) - 21.4. 🆕
doctest - 21.5. 🆕
logging - 21.6. 🆕 デバッグ(
breakpoint()/pdb/traceback) - 21.7. 🆕 カバレッジ測定
22. 🆕 非同期処理と並行処理
- 22.1. 🆕 並行(concurrent)と並列(parallel)の違い
- 22.2. 🆕 GIL(グローバルインタプリタロック)の仕組みと歴史
- 22.3. 🆕
threading - 22.4. 🆕
multiprocessing - 22.5. 🆕
concurrent.futures - 22.6. 🆕
asyncio(async/await/gather/TaskGroup) - 22.7. 🆕 使い分け(I/Oバウンド vs CPUバウンド)
- 22.8. 🆕 free-threaded ビルド(Python 3.13で実験的、3.14で正式サポート)
科学技術計算とデータ分析
23. NumPy (1): ベクトル
- 23.1. 作成
- 23.2. スライス
- 23.3. 算術演算
- 23.4. 様々な作成方法
- 23.5. 数学関数
- 23.6. ユニバーサル関数
- 23.7. 反復処理
24. NumPy (2): 行列・テンソル
- 24.1. 行列のオブジェクト
- 24.2. 行列の要素
- 24.3. 行列の算術演算
- 24.4. 行列の様々な作成方法
- 24.5. 数学関数
- 24.6. ユニバーサル関数
- 24.7. 行列の連結
- 24.8. ビュー
- 24.9. テンソル
25. 🆕 pandas: 表形式データの分析
- 25.1. 🆕
Series - 25.2. 🆕
DataFrame - 25.3. 🆕 読み込みと書き出し(CSV / Excel / JSON)
- 25.4. 🆕 データの確認(
head/info/describe) - 25.5. 🆕 列・行の選択(
[]/loc/iloc) - 25.6. 🆕 条件による絞り込み
- 25.7. 🆕 列の追加・変換(
assign/apply/map) - 25.8. 🆕 欠損値の扱い(
isna/fillna/dropna) - 25.9. 🆕 並び替えと集計(
sort_values/groupby/pivot_table) - 25.10. 🆕 結合(
merge/concat) - 25.11. 🆕 日付・時刻データ
- 25.12. 🆕 pandasからのグラフ描画
26. Matplotlib: グラフの描画
- 26.1. プロット
- 26.2. 軸やラベルの設定・変更
- 26.3. グラフの装飾
- 26.4. 棒グラフ
- 26.5. 散布図
- 26.6. 2次元メッシュ・等高線
- 26.7. アニメーション
- 26.8. 日本語の表示方法
付録
A. 🆕 Pythonの落とし穴
- A.1. 可変なデフォルト引数(
def f(x=[])) - A.2. ループ変数を捕まえるクロージャ(遅延束縛)
- A.3.
[[0] * 3] * 3で同じリストが共有される - A.4. 浅いコピーでネストした要素が共有される
- A.5.
==とis、小さい整数のキャッシュ - A.6. 浮動小数点数の比較(
math.isclose) - A.7. ループ中にリストを変更する
- A.8. 文字列結合をループ内で
+=する