目次
Chapter1 Pythonの環境
- 1.1 Pythonパッケージを管理する―pip
- 1.1.1 導入方法
- 1.1.2 基本的な使い方
- 1.1.3 requirements.txtを作って,複数の環境でバージョンを統一する
- 1.1.4 -cオプションで特定パッケージのインストール可能バージョンに制限をかける
- 1.1.5 pip:よくある使い方
- 1.1.6 pip:ちょっと役立つ周辺知識
- 1.2 仮想環境を作成する―venv
- 1.2.1 仮想環境とは何か
- 1.2.2 基本的な使い方
- 1.2.3 venv:よくある使い方
- 1.2.4 venv:ちょっと役立つ周辺知識
- 1.2.5 venv:よくあるエラーと対処法
Chapter2 コーディング規約
- 2.1 Python標準のスタイルガイド―PEP 8
- 2.1.1 PEP 8で定義されているルール
- 2.1.2 コードのレイアウト
- 2.1.3 コメント
- 2.1.4 命名規約
- 2.1.4 PEP 8:よくある使い方
- 2.2 静的コード解析ツール―Flake8
- 2.2.1 Flake8 のインストール
- 2.2.2 静的コードチェック
- 2.2.3 Flake8のオプションの利用
- 2.2.4 プラグインを利用したより便利なFlake8の利用
- 2.2.5 Flake8:よくある使い方
- 2.2.6 Flake8:ちょっと役立つ周辺知識
- 2.2.7 Flake8:よくあるエラーと対処法
- 2.3 ソースコードの自動整形―Black
- 2.3.1 Blackのインストール
- 2.3.2 Blackの特徴
- 2.3.3 Blackによるフォーマット
- 2.3.4 Blackのオプション
- 2.3.5 Black:よくある使い方
- 2.3.6 Black:ちょっと役立つ周辺知識
- 2.3.7 Black:よくあるエラーと対処法
Chapter3 Pythonの言語仕様
- 3.1 例外処理
- 3.1.1 例外を処理する
- 3.1.2 基底クラスで例外を捕捉する
- 3.1.3 独自の例外を定義して,例外を送出する
- 3.1.4 例外処理:よくある使い方
- 3.1.5 例外処理:ちょっと役立つ周辺知識
- 3.1.6 例外処理:よくあるエラーと対処法
- 3.2 with文
- 3.2.1 with文
- 3.2.2 コンテキストマネージャー(context manager)
- 3.2.3 標準ライブラリのデコレーター―@contextlib.contextmaneger
- 3.2.4 with文:よくある使い方
- 3.2.5 with文:ちょっと役立つ周辺知識
- 3.3 関数の引数
- 3.3.1 位置引数
- 3.3.2 キーワード引数
- 3.3.3 位置引数とキーワード引数の混在
- 3.3.4 デフォルト値付き引数
- 3.3.5 可変長位置引数
- 3.3.6 可変長キーワード引数
- 3.3.7 キーワード専用引数
- 3.3.8 位置専用引数
- 3.3.9 関数の引数:よくある使い方
- 3.3.10 関数の引数:よくあるエラーと対処法
- 3.4 アンパック
- 3.4.1 アンパック
- 3.4.2 ネストしたタプル,リストのアンパック
- 3.4.3 アスタリスクを使ったアンパック
- 3.4.4 関数の引数のアンパック
- 3.4.5 アンパック:よくある使い方
- 3.5 内包表記,ジェネレーター式
- 3.5.1 リスト内包表記
- 3.5.2 その他の内包表記
- 3.5.3 内包表記,ジェネレーター式:よくある使い方
- 3.6 ジェネレーター―generator
- 3.6.1 ジェネレーター
- 3.6.2 list()関数を使用してリストに変換する
- 3.6.3 大きいファイルの処理にジェネレーターを使用する
- 3.6.4 ジェネレーター:よくある使い方
- 3.6.5 ジェネレーター:ちょっと役立つ周辺知識
- 3.6.6 ジェネレーター:よくあるエラーと対処法
- 3.7 デコレーター
- 3.7.1 デコレーターを使用する
- 3.7.2 関数デコレーターを自作する
- 3.7.3 functools.wrapsを使用する
- 3.7.4 デコレーター:よくある使い方
Chapter4 Pythonのクラス
- 4.1 class構文
- 4.1.1 クラス定義
- 4.1.2 インスタンス化
- 4.1.3 selfとは
- 4.2 属性とメソッド
- 4.2.1 コンストラクター
- 4.2.2 データ属性
- 4.2.3 メソッド
- 4.2.4 特殊メソッド
- 4.2.5 プロパティ化
- 4.2.6 クラスメソッドの具体的な使い方
- 4.3 継承
- 4.3.1 標準ライブラリの継承の例
- 4.3.2 子クラスの定義
- 4.3.3 多重継承
- 4.3.4 継承:よくある使い方
- 4.3.5 エラーと対処方法
- 4.4 dataclass
- 4.4.1 基本文法
- 4.4.2 コンストラクターの任意引数
- 4.4.3 データ変換
- 4.4.4 dataclass:よくある使い方
- 4.4.5 エラーと対処方法
- 4.5 オブジェクト関連関数
- 4.5.1 関数の種類
- 4.5.2 オブジェクト関連関数の使い方
- 4.5.3 周辺知識
- 4.5.4 エラーと対処方法
Chapter5 型ヒント
- 5.1 型ヒント
- 5.1.1 型ヒントとは
- 5.1.2 基本的な型ヒントの一覧と書き方
- 5.1.3 typingモジュールを利用した型ヒント
- 5.1.4 型ヒント:よくある使い方
- 5.2 静的型チェックを行う―mypy
- 5.2.1 静的型チェックツールで型ヒントをチェックする
- 5.2.2 mypyのインストール
- 5.2.3 mypyによる静的型チェック
- 5.2.4 mypyのオプション
- 5.2.5 mypy:よくある使い方
- 5.2.6 mypy:ちょっと役立つ周辺知識
- 5.2.7 mypy:よくあるエラーと対処法
Chapter6 テキストの処理
- 6.1 一般的な文字列操作を行う―str,string
- 6.1.1 文字列リテラルの書き方
- 6.1.2 文字列以外のオブジェクトを文字列に変換する
- 6.1.3 文字列のチェックメソッド
- 6.1.4 文字列の変換を行う
- 6.1.5 その他の文字列メソッド
- 6.1.6 文字列定数を利用する
- 6.1.7 str,string:ちょっと役立つ周辺知識
- 6.1.8 str,string:よくあるエラーと対処法
- 6.2 フォーマットと文字列リテラル―f-string
- 6.2.1 f-stringの書き方
- 6.2.2 =を付けた出力
- 6.2.3 フォーマットの指定方法
- 6.2.4 f-string導入前の文字列フォーマット方法
- 6.3 正規表現を扱う―re
- 6.3.1 基本的な関数―search,match
- 6.3.2 reモジュールの定数(フラグ)
- 6.3.3 正規表現オブジェクト
- 6.3.4 マッチオブジェクト
- 6.3.5 re:よくある使い方
- 6.3.6 re:ちょっと役立つ周辺知識
- 6.3.7 re:よくあるエラーと対処法
- 6.4 Unicodeデータベースへアクセスする―unicodedata
- 6.4.1 Unicode文字と文字の名前を変換する
- 6.4.2 Unicode文字列の正規化
- 6.4.3 unicodedata:よくある使い方
- 6.4.4 unicodedata:ちょっと役立つ周辺知識
Chapter7 数値の処理
- 7.1 基本的な数値計算を行う―組み込み関数,math
- 7.1.1 数値の計算を行う(組み込み関数)
- 7.1.2 数値の計算を行う―math モジュール
- 7.1.3 数値を丸める,絶対値を求める
- 7.1.4 数値計算に利用する定数を取得する
- 7.1.5 組み込み関数,math:ちょっと役立つ周辺知識
- 7.1.6 浮動小数の非数nanの値を確認する
- 7.2 十進数で計算を行う―decimal
- 7.2.1 精度を指定した計算を行う
- 7.2.2 数値の丸めを行う
- 7.2.3 decimal:よくある使い方
- 7.2.4 decimal:よくあるエラーと対処法
- 7.3 擬似乱数を扱う―random
- 7.3.1 乱数を生成する
- 7.3.2 特定の分布に従う乱数を生成する
- 7.3.3 ランダムに選択する
- 7.4 統計計算を行う―statistics
- 7.4.1 平均値や中央値を求める
- 7.4.2 標準偏差や分散を求める
Chapter8 日付と時刻の処理
- 8.1 日付や時刻を扱う―datetime
- 8.1.1 日付を扱う―date オブジェクト
- 8.1.2 時刻を扱う―time オブジェクト
- 8.1.3 日時を扱う―datetimeオブジェクト
- 8.1.4 日時の差を扱う―timedelta オブジェクト
- 8.1.5 strftime()で使える主な指定子
- 8.1.6 datetime:よくある使い方
- 8.1.7 datetime:ちょっと役立つ周辺知識
- 8.1.8 datetime:よくあるエラーと対処法
- 8.2 時刻を扱う―time
- 8.2.1 時刻を取得する
- 8.2.2 時刻オブジェクト―struct_time
- 8.2.3 スレッドの一時停止―sleep()
- 8.2.4 time:よくある使い方
- 8.2.5 time:ちょっと役立つ周辺知識
- 8.3 IANAタイムゾーンデータベースを扱う―zoneinfo
- 8.3.1 IANAタイムゾーンを表すオブジェクト―ZoneInfo
- 8.3.2 zoneinfo:よくある使い方
- 8.3.3 zoneinfo:ちょっと役立つ周辺知識
- 8.3.4 zoneinfo:よくあるエラーと対処法
- 8.4 datetimeの強力な拡張モジュール―dateutil
- 8.4.1 dateutilのインストール
- 8.4.2 日付文字列の構文解析―parser
- 8.4.3 日付の差の計算―relativedelta
- 8.4.4 繰り返しルール―rrule
- 8.4.5 dateutil:よくある使い方
- 8.4.6 dateutil:ちょっと役立つ周辺知識
- 8.4.7 dateutil:よくあるエラーと対処法
Chapter9 データ型とアルゴリズム
- 9.1 ソート―sorted,sort,operator
- 9.1.1 sorted()関数
- 9.1.2 reversed()関数
- 9.1.3 リストのsort(),reverse()メソッド
- 9.1.4 key引数
- 9.1.5 operatorモジュール
- 9.1.6 ソート:ちょっと役立つ周辺知識
- 9.1.7 sorted,sort,operator:よくあるエラーと対処法
- 9.2 さまざまなコンテナー型を扱う―collections
- 9.2.1 データの件数をカウントする―Counter
- 9.2.2 デフォルト値を持った辞書―defaultdict
- 9.2.3 データの挿入順を維持する辞書―OrderedDict
- 9.2.4 名前付きフィールドを持つタプル―namedtuple
- 9.2.5 collections:よくある使い方
- 9.3 二分法アルゴリズムを利用する―bisect
- 9.3.1 二分法アルゴリズムで挿入する位置を返す.
- 9.3.2 ソート済みのリストに要素を挿入する
- 9.3.3 bisect:よくあるエラーと対処法
- 9.4 列挙型による定数の定義を行う―enum
- 9.4.1 定数値を定義する
- 9.4.2 定数を呼び出す
- 9.4.3 定数同士を比較する
- 9.4.4 enum:よくある使い方
- 9.4.5 enum:ちょっと役立つ周辺知識
- 9.4.6 enum:よくあるエラーと対処法
- 9.5 データを読みやすい形式で出力する―pprint
- 9.5.1 オブジェクトを整形して出力する―pprint()
- 9.5.2 オブジェクトを整形した文字列を取得する―pformat
- 9.5.3 pprint:よくある使い方
- 9.5.4 pprint:ちょっと役立つ周辺知識
- 9.6 イテレーターの組み合わせで処理を組み立てる―itertools
- 9.6.1 イテラブルオブジェクトを連結する―chain()
- 9.6.2 連続する値をまとめる―groupby()
- 9.6.3 イテレーターから範囲を指定して値を取得する―islice()
- 9.6.4 複数のイテラブルオブジェクトの要素からタプルを作成する―zip(),zip_longest()
- 9.6.5 データを組み合わせたイテレーターを取得する
- 9.6.6 itertools:よくある使い方
- 9.6.7 itertools:ちょっと役立つ周辺知識
- 9.7 ミュータブルなオブジェクトをコピーする―copy
- 9.7.1 浅いコピーを行う―copy()関数
- 9.7.2 深いコピーを行う―deepcopy()関数
- 9.7.3 copy:よくある使い方
- 9.7.4 copy:ちょっと役立つ周辺知識
Chapter10 汎用OS・ランタイムサービス
- 10.1 OSの機能を利用する―os
- 10.1.1 実行中のプロセス属性の操作
- 10.1.2 ファイルとディレクトリの操作
- 10.1.3 さまざまなシステム情報へのアクセス
- 10.1.4 ランダムな文字列の生成
- 10.1.5 os:よくある使い方
- 10.1.6 os:ちょっと役立つ周辺知識
- 10.1.7 os:よくあるエラーと対処法
- 10.2 ストリームを扱う―io
- 10.2.1 インメモリなテキストストリームを扱う―StringIO
- 10.2.2 インメモリなバイナリストリームを扱う―BytesIO
- 10.2.3 ioモジュールをユニットテストで活用する
- 10.2.4 io:よくある使い方
- 10.2.5 io:ちょっと役立つ周辺知識
- 10.2.6 io:よくあるエラーと対処法
- 10.3 インタープリターに関わる情報を取得,操作する―sys
- 10.3.1 コマンドライン引数を取得する―argv
- 10.3.2 ライブラリのインポートパスを操作する―path
- 10.3.3 プログラムを終了する―exit()
- 10.3.4 コンソールの入出力を扱う―stdin,stdout,stderr
- 10.3.5 breakpoint()実行時のフック関数―breakpointhook()
- 10.3.6 Pythonのバージョン番号を調べる―version_info
- 10.3.7 sys:よくある使い方
- 10.3.8 sys:ちょっと役立つ周辺知識
- 10.3.9 sys:よくあるエラーと対処法
- 10.4 コマンドラインオプション,引数を扱う―argparse
- 10.4.1 コマンドラインオプションを扱う
- 10.4.2 argparse:よくある使い方
- 10.4.3 argparse:ちょっと役立つ周辺知識
- 10.4.4 argparse:よくあるエラーと対処法
Chapter11 ファイルとディレクトリへのアクセス
- 11.1 ファイルパス操作を直観的に行う―pathlib
- 11.1.1 クラス構成
- 11.1.2 純粋パスを扱う―PurePath
- 11.1.3 具象パスを扱う―Path
- 11.1.4 pathlib:よくある使い方
- 11.1.5 pathlib:ちょっと役立つ周辺知識
- 11.1.6 pathlib:よくあるエラーと対処法
- 11.2 一時的なファイルやディレクトリを生成する―tempfile
- 11.2.1 一時ファイルを作成する
- 11.2.2 一時ディレクトリを作成する
- 11.2.3 tempfile:よくある使い方
- 11.3 高レベルなファイル操作を行う―shutil
- 11.3.1 ファイルをコピーする
- 11.3.2 再帰的にディレクトリやファイルを操作する
- 11.3.3 shutil:よくある使い方
- 11.3.4 shutil:ちょっと役立つ周辺知識
- 11.3.5 shutil:よくあるエラーと対処法
Chapter12 データ圧縮,アーカイブと永続化
- 12.1 gzip圧縮ファイルを扱う―gzip
- 12.1.1 gzipファイルを圧縮,展開する
- 12.1.2 gzip:よくある使い方
- 12.1.3 gzip:ちょっと役立つ周辺知識
- 12.1.4 gzip:よくあるエラーと対処法
- 12.2 ZIPファイルを扱う―zipfile
- 12.2.1 ZIPファイルを操作する
- 12.2.2 日本語のファイル名を扱う
- 12.2.3 zipfile:よくある使い方
- 12.2.4 zipfile:ちょっと役立つ周辺知識
- 12.2.5 zipfile:よくあるエラーと対処法
- 12.3 tarファイルを扱う―tarfile
- 12.3.1 tarファイルを操作する
- 12.3.2 tarfile:よくある使い方
- 12.3.3 tarfile:ちょっと役立つ周辺知識
- 12.3.4 tarfile:よくあるエラーと対処法
- 12.4 Pythonオブジェクトをシリアライズする―pickle
- 12.4.1 Pythonオブジェクトのシリアライズとデシリアライズ
- 12.4.2 pickleのプロトコルバージョン
- 12.4.3 pickle:よくある使い方
- 12.4.4 pickle:よくあるエラーと対処法
Chapter13 特定のデータフォーマットを扱う
- 13.1 CSVファイルを扱う―csv
- 13.1.1 CSVファイルの読み込みと書き込み
- 13.1.2 辞書データを用いたCSVファイルの読み込みと書き込み
- 13.1.3 csv:よくある使い方
- 13.1.4 csv:ちょっと役立つ周辺知識
- 13.1.5 csv:よくあるエラーと対処法
- 13.2 JSONを扱う―json
- 13.2.1 JSONのエンコードとデコード
- 13.2.2 JSONのエンコードとデコード(ファイルオブジェクト)
- 13.2.3 json:よくある使い方
- 13.2.4 json:ちょっと役立つ周辺知識
- 13.2.5 json:よくあるエラーと対処法
- 13.3 INIファイルを扱う―configparser
- 13.3.1 INIファイルを読み込む
- 13.3.2 INIファイルの高度な利用
- 13.3.3 configparser:よくあるエラーと対処法
- 13.4 YAMLを扱う―PyYAML
- 13.4.1 PyYAMLのインストール
- 13.4.2 YAMLファイルの読み込み
- 13.4.3 YAMLファイルの書き込み
- 13.4.4 PyYAML:ちょっと役立つ周辺知識
- 13.5 Excelを扱う―openpyxl
- 13.5.1 openpyxlのインストール
- 13.5.2 Excelの読み込み
- 13.5.3 Excelの書き込み
- 13.5.4 スタイルの適用
- 13.5.5 チャートの挿入
- 13.5.6 openpyxl:よくある使い方
- 13.5.7 openpyxl:ちょっと役立つ周辺知識
- 13.5.8 openpyxl:よくあるエラーと対処法
- 13.6 画像を扱う―Pillow
- 13.6.1 Pillowのインストール
- 13.6.2 画像のサイズを変更する・回転する
- 13.6.3 テキストの埋め込み
- 13.6.4 Pillow:よくある使い方
- 13.6.5 Pillow:よくあるエラーと対処法
Chapter14 インターネット上のデータを扱う
- 14.1 URLをパースする―urllib.parse
- 14.1.1 URLをパースする―urlparse()
- 14.1.2 クエリ文字列をパースする―parse_qs()
- 14.1.3 クエリ文字列を組み立てる―urlencode()
- 14.1.4 URLとして使用できる文字列に変換する―quote(),quote_plus()
- 14.1.5 URLを結合する―urljoin()
- 14.1.6 urllib.parse:よくある使い方
- 14.1.7 urllib.parse:よくあるエラーと対処法
- 14.2 URLを開く―urllib.request
- 14.2.1 指定のURLを開く―urlopen()
- 14.2.2 GET,POST以外のHTTPメソッドを扱う
- 14.2.3 レスポンスモジュール
- 14.2.4 urllib.request:よくある使い方
- 14.2.5 urllib.request:ちょっと役立つ周辺知識
- 14.2.6 urllib.request:よくあるエラーと対処法
- 14.3 ヒューマンフレンドリーなHTTPクライアント―Requests
- 14.3.1 指定のURLを開く
- 14.3.2 Requests:よくある使い方
- 14.3.3 Requests:ちょっと役立つ周辺知識
- 14.3.4 Requests:よくあるエラーと対処法
- 14.4 Base16,Base64などへエンコードする―base64
- 14.4.1 Base64にエンコードする
- 14.4.2 Base64からデコードする
- 14.4.3 base64:よくある使い方
- 14.4.4 base64:ちょっと役立つ周辺知識
- 14.5 電子メールのデータを処理する―email
- 14.5.1 メッセージのデータを管理する―email.message
- 14.5.2 メールを解析する―email.parser
- 14.5.3 email:ちょっと役立つ周辺知識
Chapter15 HTML/XMLを扱う
- 15.1 XMLをパースする―ElementTree
- 15.1.1 XMLのパース
- 15.1.2 要素の取得や検索
- 15.1.3 ElementTree:よくある使い方
- 15.1.4 ElementTree:ちょっと役立つ周辺知識
- 15.2 XML/HTMLを高速かつ柔軟にパースする―lxml
- 15.2.1 lxmlのインストール
- 15.2.2 HTMLをパースする
- 15.2.3 HTMLを書き換える
- 15.2.4 整形式ではない(non well-formed)XMLをパースする
- 15.2.5 lxml:よくある使い方
- 15.2.6 lxml:ちょっと役立つ周辺知識
- 15.3 使いやすいHTMLパーサーを利用する―Beautiful Soup 4
- 15.3.1 Beautiful Soup 4のインストール
- 15.3.2 html5libのインストール
- 15.3.3 BeautifulSoupオブジェクトの作成
- 15.3.4 HTML内の要素の情報を取得する
- 15.3.5 HTML内の要素を検索する
- 15.3.6 テキストの取得
- 15.3.7 特定要素から親,兄弟,前後の要素の取得.
- 15.3.8 Beautiful Soup 4:よくある使い方
- 15.3.9 Beautiful Soup 4:ちょっと役立つ周辺知識
- 15.3.10 Beautiful Soup 4:よくあるエラーと対処法
Chapter16 テスト
- 16.1 対話的な実行例をテストする―doctest
- 16.1.1 doctestを作成する
- 16.1.2 テキストファイル中の実行例をテストする.
- 16.1.3 doctest:よくある使い方
- 16.1.4 doctest:ちょっと役立つ周辺知識
- 16.1.5 doctest:よくあるエラーと対処法
- 16.2 ユニットテストフレームワークを利用する―unittest
- 16.2.1 テストを作成して実行する
- 16.2.2 さまざまな条件や失敗を記述する
- 16.2.3 1つのテストメソッドの中で複数のアサーションメソッドを呼ぶ―subTest()
- 16.2.4 テストの事前準備を行う―setUp(),setUpClass()
- 16.2.5 テストの事後処理を行う―tearDown(),tearDownClass()
- 16.2.6 コマンドラインインターフェースを利用する
- 16.2.7 unittest:よくある使い方
- 16.2.8 unittest:ちょっと役立つ周辺知識
- 16.2.9 unittest:よくあるエラーと対処法
- 16.3 モックを利用してユニットテストを行う―unittest.mock
- 16.3.1 モックオブジェクトを作成して戻り値や例外を設定する―Mock,MagicMock
- 16.3.2 クラスやメソッドをモックで置き換える―patch()
- 16.3.3 モックオブジェクトが呼び出されたかどうかを確認する
- 16.3.4 unittest.mock:よくある使い方
- 16.3.5 unittest.mock:ちょっと役立つ周辺知識
- 16.3.6 unittest.mock:よくあるエラーと対処法
- 16.4 高度なユニットテスト機能を利用する―pytest
- 16.4.1 pytest のインストール
- 16.4.2 テストを作成して実行する
- 16.4.3 自動的にテストを探して実行する
- 16.4.4 複数の入出力パターンについてテストする(パラメタライズドテスト)
- 16.4.5 テスト実行の前後に処理を挿入するfixtureを書く
- 16.4.6 pytest:よくある使い方
- 16.4.7 pytest:ちょっと役立つ周辺知識
- 16.4.8 pytest:よくあるエラーと対処法
- 16.5 ドキュメント生成とオンラインヘルプシステム―pydoc
- 16.5.1 モジュールのドキュメントを確認する
- 16.5.2 モジュールのドキュメントを書く
- 16.5.3 モジュールのドキュメントをHTML形式で生成する
- 16.5.4 HTTPサーバーを起動してブラウザーからドキュメントを確認する
- 16.5.5 pydoc:よくある使い方
- 16.5.6 pydoc:ちょっと役立つ周辺知識
- 16.5.7 pydoc:よくあるエラーと対処法
Chapter17 デバッグ
- 17.1 対話的なデバッグを行う―pdb,breakpoint
- 17.1.1 代表的なデバッガーコマンド
- 17.1.2 pdbでブレークポイントを挿入する
- 17.1.3 breakpoint()関数でブレークポイントを挿入する
- 17.1.4 Pythonの対話モードからデバッグを行う
- 17.1.5 異常終了するスクリプトをデバッグする―pdb.pm()
- 17.1.6 pdb,breakpoint:よくある使い方
- 17.1.7 pdb,breakpoint:ちょっと役立つ周辺知識
- 17.1.8 pdb,breakpoint:よくあるエラーと対処法
- 17.2 コードの実行時間を計測する―timeit
- 17.2.1 コマンドラインインターフェースで計測する
- 17.2.2 Pythonインターフェースで計測する
- 17.2.3 timeit:よくある使い方
- 17.2.4 timeit:ちょっと役立つ周辺知識
- 17.2.5 timeit:よくあるエラーと対処法
- 17.3 スタックトレースを扱う―traceback
- 17.3.1 スタックトレースを出力する
- 17.3.2 スタックトレースを文字列として扱う
- 17.3.3 traceback:よくある使い方
- 17.3.4 traceback:ちょっと役立つ周辺知識
- 17.3.5 traceback:よくあるエラーと対処法
- 17.4 ログを出力する―logging
- 17.4.1 3つのロギング設定方法
- 17.4.2 標準で定義されているログレベル
- 17.4.3 loggingモジュールからログを扱う
- 17.4.4 モジュール方式でロギングを設定する
- 17.4.5 辞書やファイルからロギングを設定する
- 17.4.6 logging:よくある使い方
- 17.4.7 logging:ちょっと役立つ周辺知識
- 17.4.8 logging:よくあるエラーと対処法
Chapter18 暗号関連
- 18.1 安全な乱数を生成する―secrets
- 18.1.1 パスワード(乱数)の生成
- 18.1.2 トークンの生成
- 18.1.3 secrets:よくある使い方
- 18.1.4 secrets:ちょっと役立つ周辺知識
- 18.2 ハッシュ値を生成する―hashlib
- 18.2.1 さまざまなアルゴリズムを使用したハッシュ値算出
- 18.2.2 hashlibによる鍵導出関数
- 18.2.3 hashlib:よくある使い方.
- 18.2.4 hashlib:ちょっと役立つ周辺知識
- 18.2.5 hashlib:よくあるエラーと対処法
- 18.3 暗号化ライブラリ―cryptography
- 18.3.1 cryptographyのインストール
- 18.3.2 共通鍵暗号による暗号化と復号
- 18.3.3 公開鍵暗号による暗号化と復号
- 18.3.4 cryptography:よくある使い方
- 18.3.5 cryptography:ちょっと役立つ周辺知識
Chapter19 並行処理,並列処理
- 19.1 イベントループでの非同期処理―asyncio
- 19.1.1 非同期I/Oで並行処理を実現するasyncio
- 19.1.2 並行処理と非同期I/O
- 19.1.3 コルーチンの定義と実行
- 19.1.4 タスクを利用した並行処理とイベントループの役割
- 19.1.5 asyncioの基本的な機能
- 19.1.6 実践的な使い方の例
- 19.1.7 asyncio:よくある使い方
- 19.1.8 asyncio:ちょっと役立つ周辺知識
- 19.1.9 asyncio:よくあるエラーと対処法
- 19.2 マルチプロセス,マルチスレッドをシンプルに行う―concurrent.futures
- 19.2.1 機能の概要
- 19.2.2 まとめて処理を実行し,まとめて結果を受け取るmap()メソッド
- 19.2.3 concurrent.futures:よくある使い方
- 19.2.4 concurrent.futures:ちょっと役立つ周辺知識
- 19.2.5 concurrent.futures:よくあるエラーと対処法
- 19.3 サブプロセスを管理する―subprocess
- 19.3.1 子プロセスを実行する
- 19.3.2 run()関数で設定可能な主な引数
- 19.3.3 より高度にサブプロセスを実行する
- 19.3.4 subprocess:よくある使い方
- 19.3.5 subprocess:よくあるエラーと対処法