TECH PLAY

Pythonエンジニア育成推進協会監修 Python実践レシピ

2,970円 (税込)

楽天

Pythonエンジニア育成推進協会監修 Python実践レシピ

書籍情報

発売日:

著者/編集:鈴木 たかのり/筒井 隆次/寺田 学/杉田 雅子/門脇 諭/福田 隼也

出版社:技術評論社

発行形態:単行本

書籍説明

内容紹介

本書は、Pythonを利用するうえで役立つ、Pythonの言語とさまざまなライブラリの使い方をわかりやすく解説した書籍です。Pythonの基本であり、入門書では取り上げられることが少ない重要トピックとPythonでよく使われる標準ライブラリ、サードバーティライブラリを厳選して解説しています。普段から手元に置いて、困ったことがあればまず手にとる本として活用してください。

目次

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:よくあるエラーと対処法

著者情報

Pythonエンジニア育成推進協会

寺田 学

Python Web関係の業務を中心にコンサルティングや構築を株式会社CMSコミュニケーションズ代表取締役として手がけている。PyCon JPの開催に尽力し、2013年3月からは一般社団法人PyCon JP Association代表理事を務める。その他のOSS関係コミュニティを主宰またはスタッフとして活動中。一般社団法人Pythonエンジニア育成推進協会顧問理事として、Pythonの教育に積極的に関連している。所属先:一般社団法人PyCon JP Association/ 一般社団法人Python エンジニア育成推進協会/ 株式会社CMSコミュニケーションズコミュニティ:Python Software Foundation Fellow member 2019Q3/Plone Foundation Ambassador

寺田, 学

杉田 雅子

株式会社SQUEEZEにて、Djangoを使ったWebシステムの開発業務に携わる。コミュニティ活動として、Raspberry Piもくもく会を主催、PyLadies Tokyoのスタッフとして活動中。所属先:株式会社SQUEEZE

杉田, 雅子

福田 隼也

株式会社日本システム技研所属。Pythonを中心としたWebシステム開発にフルスタックエンジニアとして従事。PyCon JP、DjangoCongress JP などにて登壇。コミュニティ活動として、ギークラボ長野の運営に参加。ビールとキャンプが好き。所属先:株式会社日本システム技研(JSL)

福田, 隼也

筒井 隆次

Pythonを使い始めたのは2011年ごろから。もともとはJavaプログラマだったが、何か別の言語を覚えたいと思い、複数の言語を試しているうちに、Pythonの書きやすさを気に入るようになった。2013年からDjangoを使ったWebサービス開発に従事している。趣味は映画鑑賞、格闘技観戦。コミュニティ:Python Boot Camp/Shonan.py

筒井, 隆次

鈴木 たかのり

一般社団法人PyCon JP Association 副代表理事、株式会社ビープラウド役員。部内のサイトを作るためにZope/Plone と出会い、その後必要にかられてPythonを使い始める。PyCon JP では2011年1月のPyCon mini JP からスタッフとして活動し、2014年-2016年のPyCon JP 座長。ほかの主な活動は、Pythonボルダリング部(#kabepy)部長、Python mini Hack-a-thon(#pyhack)主催など。所属先:一般社団法人PyCon JP Association/株式会社ビープラウド

鈴木, たかのり

門脇 諭

バクフー株式会社CTO。Pythonを使用したバックエンドサービスやWeb関係の業務に携わっている。山形県を生活の拠点として開発業務を行いながら、Python Boot CampやPyCon JP への参加(過去2回登壇)するなどの活動を行っている。所属先:バクフー株式会社(BakFoo)

門脇, 諭