lvncerpedia

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. 文字列結合をループ内で += する