本書は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 索引