本書はPythonの機能を十分に活用するためのリファレンスです。チュートリアルとしての「Pythonを使ってみる」、型アノテーションや文字列といった「Python言語と組み込み機能」、ファイルやテキスト、時間の操作、数値処理などをまとめた「Pythonの標準ライブラリと拡張モジュール」、HTTPの処理や構造化テキストを学ぶ「ネットワークとWebプログラミング」、バージョン移行などに関する「拡張、配布、バージョンのアップグレードと移行」という5部構成となっています。Pythonを本格的に学びたい人から、さらなるスキルアップを目指したい人まで、Pythonを最大限に活用するための有益な情報がぎっちり詰まった1冊です。Python 3.11対応。
Pythonクイックリファレンス 第4版
Alex Martelli、Anna Martelli Ravenscroft、Steve Holden、Paul McGuire 著、鈴木 駿 監修、株式会社クイープ 訳
- TOPICS
- クイックリファレンス , Python
- 発行年月日
- 2024年06月
- PRINT LENGTH
- 864
- ISBN
- 978-4-8144-0081-2
- 原書
- Python in a Nutshell, 4th Edition
- FORMAT
- Print PDF EPUB
正誤表
書籍発行後に気づいた誤植や更新された情報を掲載しています。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷数をご確認の上、ご利用ください。
第1刷正誤表
2024年7月更新
■P.622 「17.2 デバッグ」12行目
【誤】logingモジュール
【正】loggingモジュール
■P.622 「17.2 デバッグ」12行目
【誤】logingモジュール
【正】loggingモジュール
目次
まえがき
1章 Pythonの紹介
1.1 Python言語
1.2 Pythonの標準ライブラリと拡張モジュール
1.3 Pythonの実装
1.3.1 CPython
1.3.2 PyPy
1.3.3 CPython、PyPy、その他の実装の選択
1.3.4 その他の開発、実装、ディストリビューション
1.3.5 ライセンスと価格の問題
1.4 Pythonの開発とバージョン
1.5 Pythonの参考資料
1.5.1 ドキュメント
1.5.2 コミュニティ
1.6 インストール
1.7 Pythonをバイナリからインストールする
1.8 Pythonをソースコードからインストールする
1.8.1 Windows
1.8.2 Unix系プラットフォーム
2章 Pythonインタープリタ
2.1 Pythonプログラム
2.1.1 環境変数
2.1.2 コマンドライン構文とオプション
2.1.3 Windowsのpyランチャー
2.1.4 PyPyインタープリタ
2.1.5 対話型セッション
2.2 Pythonの開発環境
2.2.1 IDLE
2.2.2 その他のPython IDE
2.2.3 Pythonをサポートする無料のテキストエディタ
2.2.4 Pythonプログラムをチェックするためのツール
2.3 Pythonプログラムを実行する
2.4 Pythonをブラウザで実行する
2.4.1 PyScript
2.4.2 Jupyter
3章 Python言語
3.1 語彙の構造
3.1.1 行とインデント
3.1.2 文字セット
3.1.3 トークン
3.1.4 文
3.2 データ型
3.2.1 数値
3.2.2 シーケンス
3.2.3 セット
3.2.4 ディクショナリ
3.2.5 None
3.2.6 Ellipsis(...)
3.2.7 呼び出し可能オブジェクト
3.2.8 ブール値
3.3 変数とその他の参照
3.3.1 変数
3.3.2 代入文
3.3.3 del文
3.4 式と演算子
3.4.1 比較の連結
3.4.2 短絡演算子
3.4.3 代入式
3.5 数値演算
3.5.1 数値変換
3.5.2 算術演算
3.5.3 整数のビット演算
3.6 シーケンスの演算
3.6.1 シーケンス全般
3.6.2 文字列
3.6.3 タプル
3.6.4 リスト
3.7 セットの演算
3.7.1 セットの所属検査
3.7.2 セットのメソッド
3.8 ディクショナリの演算
3.8.1 ディクショナリの所属検査
3.8.2 ディクショナリのインデクシング
3.8.3 ディクショナリのメソッド
3.9 制御フロー文
3.9.1 if文
3.9.2 match文
3.9.3 while文
3.9.4 for文
3.9.5 break文
3.9.6 continue文
3.9.7 ループ文のelse句
3.9.8 pass文
3.9.9 try文とraise文
3.9.10 with文
3.10 関数
3.10.1 関数の定義:def文
3.10.2 パラメータ
3.10.3 関数オブジェクトの属性
3.10.4 関数のアノテーション
3.10.5 return文
3.10.6 関数の呼び出し
3.10.7 名前空間
3.10.8 lambda式
3.10.9 ジェネレータ
3.10.10 再帰
4章 オブジェクト指向のPython
4.1 クラスとインスタンス
4.1.1 Pythonのクラス
4.1.2 class文
4.1.3 クラスの本体
4.1.4 ディスクリプタ
4.1.5 インスタンス
4.1.6 属性参照の基礎
4.1.7 バインドされたメソッドとバインドされていないメソッド
4.1.8 継承
4.1.9 組み込み型object
4.1.10 クラスレベルのメソッド
4.1.11 プロパティ
4.1.12 __slots__
4.1.13 __getattribute__
4.1.14 インスタンスごとのメソッド
4.1.15 組み込み型からの継承
4.2 特殊メソッド
4.2.1 汎用的な特殊メソッド
4.2.2 コンテナの特殊メソッド
4.2.3 抽象基底クラス
4.2.4 数値オブジェクトの特殊メソッド
4.3 デコレータ
4.4 メタクラス
4.4.1 クラスの単純なカスタマイズ:カスタムメタクラスに代わる方法
4.4.2 Pythonはクラスのメタクラスをどのように決定するか
4.4.3 メタクラスはクラスをどのように作成するか
4.4.4 データクラス
4.4.5 列挙型(enum)
5章 型アノテーション
5.1 歴史
5.2 型チェックユーティリティ
5.2.1 mypy
5.2.2 その他の型チェッカー
5.3 型アノテーションの構文
5.4 typingモジュール
5.4.1 型
5.4.2 型式パラメータ
5.4.3 抽象基底クラス
5.4.4 プロトコル
5.4.5 ユーティリティとデコレータ
5.4.6 カスタム型を定義する
5.5 実行時の型アノテーションの使用
5.6 コードに型アノテーションを追加する方法
5.6.1 新しいコードに型アノテーションを追加する
5.6.2 既存のコードに型アノテーションを追加する:漸進的型付け
5.6.3 .pyiスタブファイルを使う
5.7 本章のまとめ
6章 例外
6.1 try文
6.1.1 try/except
6.1.2 try/finally
6.1.3 try/except/finally
6.2 raise文
6.3 with文とコンテキストマネージャー
6.4 ジェネレータと例外
6.5 例外の伝播
6.6 例外オブジェクト
6.6.1 標準例外の階層
6.6.2 標準例外クラス
6.6.3 OSErrorのサブクラス
6.6.4 他の例外またはトレースバックを「ラップ」する例外
6.7 カスタム例外クラス
6.7.1 カスタム例外と多重継承
6.7.2 標準ライブラリで使われるその他の例外
6.8 ExceptionGroupとexcept*
6.9 エラーチェック戦略
6.9.1 LBYLとEAFP
6.9.2 大規模なプログラムでのエラー処理
6.9.3 エラーログを出力する
6.10 assert文
7章 モジュールとパッケージ
7.1 モジュールオブジェクト
7.1.1 import文
7.1.2 from文
7.2 モジュールのロード
7.2.1 組み込みモジュール
7.2.2 ファイルシステムでのモジュールの検索
7.2.3 メインプログラム
7.2.4 モジュールをリロードする
7.2.5 循環インポート
7.2.6 カスタムインポータ
7.3 パッケージ
7.3.1 パッケージオブジェクトの特別な属性
7.3.2 絶対インポートと相対インポート
7.4 ディストリビューションユーティリティ(distutils)とsetuptools
7.5 Python環境
7.5.1 仮想環境を起動する
7.5.2 仮想環境とは何か
7.5.3 仮想環境の作成と削除
7.5.4 仮想環境を操作する
7.5.5 依存関係の要件を管理する
7.5.6 その他の環境管理ソリューション
7.5.7 仮想環境のベストプラクティス
8章 基本的な組み込みモジュールと標準ライブラリモジュール
8.1 組み込み型
8.2 組み込み関数
8.3 sysモジュール
8.4 copyモジュール
8.5 collectionsモジュール
8.5.1 ChainMap
8.5.2 Counter
8.5.3 OrderedDict
8.5.4 defaultdict
8.5.5 deque
8.6 functoolsモジュール
8.7 heapqモジュール
8.7.1 Decorate-Sort-Undecorateイディオム
8.8 argparseモジュール
8.9 itertoolsモジュール
9章 文字列とその操作
9.1 文字列オブジェクトのメソッド
9.2 stringモジュール
9.3 文字列のフォーマット
9.3.1 フォーマット済み文字列リテラル(f-string)
9.3.2 format呼び出しを使ったフォーマット
9.3.3 値の変換
9.3.4 値のフォーマット:フォーマット指定子
9.3.5 入れ子のフォーマット仕様
9.3.6 ユーザー定義クラスのフォーマット
9.3.7 %を使うレガシー文字列フォーマット
9.3.8 フォーマット指定子の構文
9.4 テキストの折り返しとパディング
9.5 pprintモジュール
9.6 reprlibモジュール
9.7 Unicode
9.7.1 codecsモジュール
9.7.2 unicodedataモジュール
10章 正規表現
10.1 正規表現とreモジュール
10.1.1 正規表現:bytesとstr
10.1.2 パターン文字列の構文
10.1.3 正規表現の一般的なイディオム
10.1.4 文字の集合
10.1.5 選択肢
10.1.6 グループ
10.2 オプションフラグ
10.3 マッチングと検索
10.4 文字列の先頭と末尾のアンカー
10.5 正規表現オブジェクト
10.6 マッチオブジェクト
10.7 reモジュールの関数
10.8 正規表現と:=演算子
10.9 サードパーティモジュールregex
11章 ファイルとテキストの操作
11.1 ioモジュール
11.1.1 openを使ってファイルオブジェクトを作成する
11.1.2 ファイルオブジェクトの属性とメソッド
11.1.3 ファイルオブジェクトでの反復処理
11.1.4 ファイルのようなオブジェクトとポリモーフィズム
11.2 tempfileモジュール
11.3 ファイルI/Oの補助モジュール
11.3.1 fileinputモジュール
11.3.2 structモジュール
11.4 インメモリファイル:io.StringIOとio.BytesIO
11.5 アーカイブファイルと圧縮ファイル
11.5.1 tarfileモジュール
11.5.2 zipfileモジュール
11.6 osモジュール
11.6.1 ファイルシステムの操作
11.6.2 os.pathモジュール
11.6.3 OSError例外
11.7 errnoモジュール
11.8 pathlibモジュール
11.9 statモジュール
11.10 filecmpモジュール
11.11 fnmatchモジュール
11.12 globモジュール
11.13 shutilモジュール
11.14 テキストの入出力
11.14.1 標準出力と標準エラー
11.14.2 print関数
11.14.3 標準入力
11.14.4 getpassモジュール
11.15 より高度なテキストI/O
11.15.1 readlineモジュール
11.15.2 コンソールI/O
11.16 国際化
11.16.1 localeモジュール
11.16.2 gettextモジュール
11.16.3 その他の国際化リソース
12章 永続化とデータベース
12.1 シリアライズ
12.1.1 csvモジュール
12.1.2 jsonモジュール
12.1.3 pickleモジュール
12.1.4 shelveモジュール
12.2 DBMのモジュール
12.2.1 dbmパッケージ
12.2.2 DBM形式のファイルを使う例
12.3 Python Database API(DBAPI)
12.3.1 例外クラス
12.3.2 スレッドの安全性
12.3.3 パラメータのスタイル
12.3.4 ファクトリ関数
12.3.5 型記述属性
12.3.6 connect関数
12.3.7 接続オブジェクト
12.3.8 カーソルオブジェクト
12.3.9 DBAPI準拠モジュール
12.3.10 SQLite
13章 時間の操作
13.1 timeモジュール
13.2 datetimeモジュール
13.2.1 dateクラス
13.2.2 timeクラス
13.2.3 datetimeクラス
13.2.4 timedeltaクラス
13.2.5 tzinfo抽象クラス
13.2.6 timezoneクラス
13.3 zoneinfoモジュール
13.4 dateutilモジュール
13.5 schedモジュール
13.6 calendarモジュール
14章 実行のカスタマイズ
14.1 サイトごとのカスタマイズ
14.2 終了関数
14.3 動的実行とexec
14.3.1 execを使わない
14.3.2 式
14.3.3 compileとコードオブジェクト
14.3.4 信頼できないコードではexecまたはevalを使わない
14.4 内部型
14.4.1 型オブジェクト
14.4.2 コードオブジェクト型
14.4.3 フレーム型
14.5 ガベージコレクション
14.5.1 gcモジュール
14.5.2 weakrefモジュール
15章 並行性:スレッドとプロセス
15.1 Pythonのスレッド
15.2 threadingモジュール
15.2.1 Threadオブジェクト
15.2.2 スレッド同期オブジェクト
15.2.3 スレッドローカルストレージ
15.3 queueモジュール
15.4 multiprocessingモジュール
15.4.1 multiprocessingとthreadingの違い
15.4.2 状態の共有:Value、Array、Manager
15.4.3 プロセスプール
15.5 concurrent.futuresモジュール
15.6 スレッドプログラムのアーキテクチャ
15.7 プロセス環境
15.8 他のプログラムの実行
15.8.1 subprocessモジュールを使う
15.8.2 osモジュールを使って他のプログラムを実行する
15.9 mmapモジュール
15.9.1 mmapオブジェクトのメソッド
15.9.2 IPCにmmapオブジェクトを使う
16章 数値処理
16.1 浮動小数点数
16.2 mathモジュールとcmathモジュール
16.3 statisticsモジュール
16.4 operatorモジュール
16.5 乱数と擬似乱数
16.5.1 randomモジュール
16.5.2 暗号品質の乱数:secretsモジュール
16.6 fractionsモジュール
16.7 decimalモジュール
16.8 配列の処理
16.8.1 arrayモジュール
16.8.2 数値配列計算のための拡張機能
17章 テスト、デバッグ、最適化
17.1 テスト
17.1.1 単体テストとシステムテスト
17.1.2 doctestモジュール
17.1.3 unittestモジュール
17.1.4 pytestでのテスト
17.2 デバッグ
17.2.1 デバッグの前に
17.2.2 inspectモジュール
17.2.3 tracebackモジュール
17.2.4 pdbモジュール
17.2.5 その他のデバッグモジュール
17.3 warningsモジュール
17.3.1 クラス
17.3.2 オブジェクト
17.3.3 フィルタ
17.3.4 関数
17.4 最適化
17.4.1 十分に高速なPythonアプリケーションを開発する
17.4.2 ベンチマーク
17.4.3 大規模な最適化
17.4.4 プロファイリング
17.4.5 小規模な最適化
18章 ネットワークの基礎
18.1 Berkeley Socket Interface
18.1.1 ソケットのアドレス
18.1.2 クライアント/サーバーコンピューティング
18.1.3 socketモジュール
18.1.4 ソケットオブジェクト
18.1.5 コネクションレス型のソケットクライアント
18.1.6 コネクションレス型のソケットサーバー
18.1.7 コネクション型のソケットクライアント
18.1.8 コネクション型のソケットサーバー
18.2 TLS
18.3 SSLContext
19章 クライアント側のネットワークプロトコルモジュール
19.1 電子メールプロトコル
19.1.1 poplibモジュール
19.1.2 smtplibモジュール
19.2 HTTPクライアントとURLクライアント
19.2.1 URLアクセス
19.2.2 urllibパッケージ
19.2.3 サードパーティパッケージrequests
19.3 その他のネットワークプロトコル
20章 HTTPの処理
20.1 http.server
20.2 WSGI
20.2.1 WSGIサーバー
20.2.2 ASGI
20.3 PythonのWebフレームワーク
20.3.1 「フルスタック」フレームワークと「軽量」フレームワーク
20.3.2 よく知られているフルスタックフレームワーク
20.3.3 軽量フレームワークを使うときの注意点
20.3.4 よく知られている軽量フレームワーク
21章 電子メール、MIME、その他のネットワークエンコーディング
21.1 MIMEと電子メールフォーマットの処理
21.1.1 emailパッケージの関数
21.1.2 email.messageモジュール
21.1.3 email.generatorモジュール
21.1.4 メッセージを作成する
21.1.5 email.encodersモジュール
21.1.6 email.utilsモジュール
21.1.7 emailパッケージを使う例
21.2 バイナリデータをASCIIテキストとしてエンコードする
21.2.1 base64モジュール
21.2.2 quopriモジュール
21.2.3 uuモジュール
22章 構造化テキスト:HTML
22.1 html.entitiesモジュール
22.2 サードパーティパッケージBeautifulSoup
22.2.1 BeautifulSoupクラス
22.2.2 bs4のナビゲート可能なクラス
22.2.3 bs4のfind...メソッド(別名検索メソッド)
22.2.4 bs4のCSSセレクタ
22.2.5 BeautifulSoupを使ったHTML解析の例
22.3 HTMLを生成する
22.3.1 bs4を使ったHTMLの編集と作成
22.3.2 bs4を使ってHTMLを構築する
22.3.3 テンプレート化
22.3.4 jinja2パッケージ
23章 構造化テキスト:XML
23.1 ElementTree
23.1.1 Elementクラス
23.1.2 ElementTreeクラス
23.1.3 ElementTreeモジュールの関数
23.2 ElementTree.parseを使ってXMLを解析する
23.2.1 ElementTreeの要素を選択する
23.2.2 ElementTreeを編集する
23.3 ElementTreeを一から作成する
23.4 XMLを反復的に解析する
24章 プログラムと拡張のパッケージ化
24.1 本章で取り上げないもの
24.2 Pythonのパッケージ化の略史
24.3 オンライン資料
25章 Classic Pythonの拡張と埋め込み
25.1 オンライン資料
26章 v3.7からv3.nへの移行
26.1 Python 3.11までの重要な変更
26.2 Pythonバージョンのアップグレードを計画する
26.2.1 ターゲットバージョンを選択する
26.2.2 作業の範囲を設定する
26.2.3 コードの変更を適用する
26.2.4 pyupgradeを使ってアップグレードを自動化する
26.2.5 マルチバージョンのテスト
26.2.6 制御されたデプロイプロセスを使う
26.2.7 アップグレードはどれくらいの頻度で実行すべきか
26.3 まとめ
付録A Python 3.7から3.11までの新機能と変更点
A.1 Python 3.7
A.2 Python 3.8
A.3 Python 3.9
A.4 Python 3.10
A.5 Python 3.11
索引