レシピ集 改訂新版 Pythonコードレシピ集

「改訂新版 Pythonコードレシピ集」のカバー画像
著者
黒住敬之くろずみたかゆき 著
定価
3,080円(本体2,800円+税10%)
発売日
2025.5.26
判型
A5
頁数
736ページ
ISBN
978-4-297-14951-2 978-4-297-14952-9

概要

Pythonでやりたいことがスグに逆引きできると評判のレシピ集,改訂版が登場! 基本文法/数値処理/テキスト処理/データベース/HTTPリクエスト/データ分析など,初心者~初級者向けの定番テクニックを "高品質なサンプルコード" で提供しています。改訂にあたっては,ブラウザ操作やメール送受信などの業務自動化に役立つテクニックのほか,マルチスレッド,非同期処理,マルチプロセスといった中級者も納得のテクニックを新たに大幅加筆しました。Pythonでできることが一覧しやすいので,業務・開発・研究用途を問わず,お役に立てていただけます。

こんな方にオススメ

  • Pythonの入門レベルを卒業しているひと
  • Pythonでできることを手っ取り早く調べたいひと
  • Pythonを使う駆け出しITエンジニア,研究者,ホビープログラマー

目次

Chapter 1 Pythonの基本

  • 001 Pythonスクリプトを実行したい
  • 002 Pythonを対話形式で実行したい
  • 003 Pythonコードの構造について知りたい
  • 004 print関数を使いたい
  • 005 print関数の出力をカスタマイズしたい
  • 006 print関数の出力に色を付けたい
  • 007 モジュールをimportしたい
  • 008 pipで外部ライブラリをインストールしたい
  • 009 venvを使ってPythonの仮想環境を使いたい

Chapter 2 変数

  • 010 変数を使いたい
  • 011 基本的な変数の種類が知りたい
  • 012 予約語が知りたい
  • 013 変数に値がないことを表したい
  • 014 整数を使いたい
  • 015 算術演算をしたい
  • 016 ブール値型変数を使いたい
  • 017 比較演算をしたい
  • 018 複数の変数を比較演算したい
  • 019 ブール演算を使いたい
  • 020 浮動小数点型を使いたい
  • 021 無限大や非数を表したい
  • 022 文字列型を扱いたい
  • 023 文字列をエスケープしたい
  • 024 文字列を連結したい
  • 025 raw文字列を使いたい
  • 026 文字列の文字数が知りたい
  • 027 リストを生成したい
  • 028 リストの要素を参照したい
  • 029 スライス構文を使いたい
  • 030 リストの要素を更新したい
  • 031 入れ子のリストを使いたい
  • 032 リストの要素数が知りたい
  • 033 リストに要素を追加・挿入したい
  • 034 リストの要素を削除したい
  • 035 リストの要素を検索したい
  • 036 タプルを使いたい
  • 037 タプルの要素や要素数を調べたい
  • 038 アンパックを使いたい
  • 039 変数の値を入れ替えたい
  • 040 range型を扱いたい
  • 041 setを扱いたい
  • 042 setに要素を追加したい
  • 043 setの要素を削除したい
  • 044 setの要素の存在判定をしたい
  • 045 集合の論理演算をしたい
  • 046 辞書を生成したい
  • 047 辞書の値を参照したい
  • 048 辞書に値を追加・更新したい
  • 049 辞書に含まれるすべてのキーと値を取得したい
  • 050 キーや値が辞書に存在するかどうか調べたい
  • 051 辞書の要素を削除したい
  • 052 bytes型変数を使いたい

Chapter 3 制御文

  • 053 if文で処理を条件分岐させたい
  • 054 条件式での変数の評価が知りたい
  • 055 複数の条件分岐を使いたい(else,elif)
  • 056 三項演算子を使いたい
  • 057 リストなどのイテラブルな変数に対してループ処理したい
  • 058 for文で指定回数分ループを実行したい
  • 059 辞書に対してループ処理したい
  • 060 for文でループカウンタを使いたい
  • 061 複数のリストを同時にループ処理したい(for文)
  • 062 リストをループで逆順に処理したい(for文)
  • 063 リスト内包表記を使いたい
  • 064 集合内包表記を使いたい
  • 065 辞書内包表記を使いたい
  • 066 条件を満たしている間ループ処理させたい(while文)
  • 067 特定の条件のときループを抜けたい
  • 068 特定の条件のときループ処理をスキップしたい
  • 069 breakしなかった場合のみ処理を実行したい
  • 070 パターンマッチングで制御したい
  • 071 代入式を使いたい

Chapter 4 関数

  • 072 関数を使いたい
  • 073 未実装であることを明示したい
  • 074 キーワード引数を使いたい
  • 075 可変長な位置引数を使いたい
  • 076 可変長なキーワード引数を使いたい
  • 077 位置専用パラメータを使いたい
  • 078 関数呼び出しで位置引数をまとめて指定したい
  • 079 関数呼び出しでキーワード引数をまとめて指定したい
  • 080 デフォルト引数を使いたい
  • 081 複数の値を返したい
  • 082 関数の外側で定義した変数を使いたい
  • 083 関数を変数として扱いたい
  • 084 関数内部で関数を定義したい
  • 085 クロージャを使いたい
  • 086 デコレータを使いたい
  • 087 lambda式を使いたい
  • 088 ジェネレータを使いたい

Chapter 5 クラスとオブジェクト

  • 089 独自のオブジェクトを使いたい
  • 090 クラスを継承したい
  • 091 クラス変数を使いたい
  • 092 メソッドの種類が知りたい
  • 093 プライベートな変数やメソッドを定義したい
  • 094 オブジェクトの文字列表現を定義したい
  • 095 オブジェクトが持つ変数やメソッドを調べたい
  • 096 変数の型を調べたい
  • 097 特殊メソッドについて知りたい
  • 098 算術演算を定義したい
  • 099 比較演算を定義したい
  • 100 添字による操作を実装したい
  • 101 イテレータを実装したい

Chapter 6 例外

  • 102 例外を処理したい
  • 103 例外の種類が知りたい
  • 104 複数の例外を処理したい
  • 105 例外捕捉箇所の終了処理を制御したい
  • 106 捕捉した例外を変数として扱いたい
  • 107 例外を発生させたい
  • 108 例外を再送出したい
  • 109 例外の詳細情報を取得したい
  • 110 アサートを使いたい

Chapter 7 実行制御

  • 111 実行時に引数を指定したい
  • 112 終了ステータスを設定したい
  • 113 キーボードからの入力値を取得したい
  • 114 処理をスリープしたい
  • 115 環境変数を取得したい
  • 116 文字列を実行したい

Chapter 8 開発

  • 117 独自のモジュールを使いたい
  • 118 モジュールをパッケージ化したい
  • 119 スクリプトとして直接実行したときのみ処理を行いたい
  • 120 ログを出力したい
  • 121 ログのフォーマットを設定したい
  • 122 ログをファイル出力したい
  • 123 単体テストを実行したい
  • 124 単体テストで前処理を実行したい
  • 125 単体テストパッケージを使いたい
  • 126 ini形式の設定ファイルを使いたい
  • 127 コーディング規約が知りたい
  • 128 アンチパターンを改善したい
  • 129 複雑なコマンドライン引数を扱いたい
  • 130 タイプヒントを使いたい
  • 131 リストや辞書でタイプヒントを使いたい
  • 132 複数の型や任意の型のタイプヒントを使いたい
  • 133 実行時間を計測したい
  • 134 メモリ使用量を計測したい

Chapter 9 ファイルとディレクトリ

  • 135 ファイルを開きたい
  • 136 テキストファイルを読み込みたい
  • 137 テキストファイルに書き込みたい
  • 138 パスセパレータを取得したい
  • 139 パスを結合したい
  • 140 パスの末尾を取得したい
  • 141 カレントディレクトリを取得・変更したい
  • 142 絶対パス・相対パスを取得したい
  • 143 パスの存在を確認したい
  • 144 パス直下の内容一覧を取得したい
  • 145 ディレクトリかファイルかを判定したい
  • 146 拡張子を取得したい
  • 147 ファイルやディレクトリを移動したい
  • 148 ファイルやディレクトリをコピーしたい
  • 149 ファイルやディレクトリを削除したい
  • 150 新しいディレクトリを作成したい

Chapter 10 数値処理

  • 151 N進数表記を使いたい
  • 152 N進数表記に変換したい
  • 153 整数と浮動小数点を変換したい
  • 154 浮動小数点の表示桁数を増やしたい
  • 155 浮動小数点型の値が十分近いかどうかを判定したい
  • 156 絶対値,合計,最大,最小値を求めたい
  • 157 丸め処理を行いたい
  • 158 数値のN乗を求めたい
  • 159 商と剰余を求めたい
  • 160 数学定数や数学関数を使いたい
  • 161 指数関数を使いたい
  • 162 対数関数を使いたい
  • 163 三角関数を使いたい
  • 164 乱数を生成したい
  • 165 Decimal型を使いたい
  • 166 Decimal型の丸め処理を行いたい
  • 167 分数を使いたい

Chapter 11 テキスト処理

  • 168 文字列リストを連結したい
  • 169 文字列に値を埋め込みたい
  • 170 フォーマット済み文字列リテラルを使いたい
  • 171 文字列を置換したい
  • 172 文字列が含まれるか判定したい
  • 173 文字列の一部を取り出したい
  • 174 文字列の不要な空白を除去したい
  • 175 文字列の大文字,小文字を変換したい
  • 176 文字列の種類を判別したい
  • 177 文字列を区切り文字で分割したい
  • 178 文字列をゼロ埋めしたい
  • 179 文字列を左右,中央に寄せたい
  • 180 文字列を数値に変換したい
  • 181 特定の文字列を含む行だけ抽出したい
  • 182 テキストの空白行を削除したい
  • 183 プレフィックス,サフィックスを除去したい
  • 184 半角,全角を変換したい
  • 185 bytes型と文字列を変換したい
  • 186 文字コードを判定したい
  • 187 ランダムな文字列を生成したい
  • 188 正規表現を使いたい
  • 189 正規表現を用いて検索したい
  • 190 正規表現を用いて置換したい
  • 191 正規表現でテキストを分割したい
  • 192 正規表現グループを使用したい
  • 193 正規表現の一致箇所を調べたい
  • 194 GreedyとLazyを使い分けたい
  • 195 正規表現で複数行にまたがる処理をしたい

Chapter 12 リスト・辞書の操作

  • 196 N個の同じ要素からなるリストを生成したい
  • 197 リストを結合したい
  • 198 リストの要素をソートしたい
  • 199 リストのすべての要素に対して特定の処理を行いたい
  • 200 リストをCSV文字列に変換したい
  • 201 リストをN個ずつの要素に分割したい
  • 202 リストをN分割したい
  • 203 リストの要素を条件指定で抽出したい
  • 204 リストを逆順にしたい
  • 205 リストをランダムにシャッフルしたい
  • 206 リストから重複要素を除去したリストを作りたい
  • 207 キーと値のリストから辞書を生成したい
  • 208 辞書のキーと値を入れ替えたい
  • 209 2つの辞書をマージしたい

Chapter 13 日付と時間

  • 210 日付や時間を扱いたい
  • 211 日時(datetime)を扱いたい
  • 212 文字列と日時(datetime)を変換したい
  • 213 現在の日時(datetime)を取得したい
  • 214 datetimeをISO 8601形式の文字列に変換したい
  • 215 ISO 8601形式の文字列をdatetimeに変換したい
  • 216 タイムゾーンを扱いたい
  • 217 日付(date)を扱いたい
  • 218 文字列と日付(date)を変換したい
  • 219 現在の日付(date)を取得したい
  • 220 日時の計算をしたい
  • 221 時間(time)を扱いたい
  • 222 文字列と時間(time)を変換したい
  • 223 月末の判定をしたい
  • 224 うるう年を判定したい
  • 225 日付や時間の比較をしたい

Chapter 14 さまざまなデータ形式

  • 226 CSVファイルを読み込みたい
  • 227 CSVファイルに書き込みたい
  • 228 JSON文字列をパースしたい
  • 229 辞書をJSON文字列に変換したい
  • 230 Base64にエンコードしたい
  • 231 Base64をデコードしたい
  • 232 UUIDを生成したい
  • 233 URLエンコードしたい
  • 234 URLエンコードをデコードしたい
  • 235 URLをパースしたい
  • 236 URLのクエリパラメータをパースしたい
  • 237 ユニコードエスケープにエンコードしたい
  • 238 ユニコードエスケープをデコードしたい
  • 239 ハッシュ値を生成したい
  • 240 ZIPファイルを展開したい
  • 241 ZIP形式でファイルを圧縮したい
  • 242 tarファイルを展開したい
  • 243 tar形式でアーカイブしたい
  • 244 ZIP形式やtar形式でディレクトリごと圧縮したい
  • 245 実行中のデータを保存したい

Chapter 15 リレーショナルデータベース

  • 246 SQLite 3に接続したい
  • 247 SQLite 3でSQL文を実行したい
  • 248 SQLite 3でSELECT結果を取得したい
  • 249 SQLite 3でSELECT結果をカラムを指定して取得したい
  • 250 さまざまなデータベースを操作したい
  • 251 MySQLを操作したい
  • 252 PostgreSQLを操作したい

Chapter 16 HTTPリクエスト

  • 253 WebサイトやREST APIにアクセスしたい
  • 254 GETリクエストしたい
  • 255 レスポンスのさまざまな情報を取得したい
  • 256 レスポンスのエンコーディングを設定したい
  • 257 POSTリクエストしたい
  • 258 リクエストヘッダを追加したい
  • 259 プロキシサーバを経由してアクセスしたい
  • 260 タイムアウトを設定したい

Chapter 17 HTMLパース

  • 261 HTMLをパースしたい
  • 262 条件を指定してタグを取得したい
  • 263 取得したタグから情報を取得したい
  • 264 条件に一致するタグをすべて取得したい
  • 265 スクレイピングしたい

Chapter 18 画像処理

  • 266 画像編集ライブラリを使いたい
  • 267 画像の情報を取得したい
  • 268 Pillowで開いた画像を参照・保存したい
  • 269 画像を拡大・縮小したい
  • 270 画像をクロッピングしたい
  • 271 画像を回転させたい
  • 272 画像を反転させたい
  • 273 画像をグレースケールに変換したい
  • 274 画像の中に文字を埋め込みたい
  • 275 画像の中に画像を埋め込みたい
  • 276 画像のExif情報を読み込みたい

Chapter 19 データ分析の準備

  • 277 データ分析をしたい
  • 278 Anacondaを使いたい

Chapter 20 Ipython

  • 279 IPythonを使いたい
  • 280 マジック関数を使いたい

Chapter 21 NumPy

  • 281 NumPyを使いたい
  • 282 ndarrayを使いたい
  • 283 ndarrayの各要素に対して関数の計算をしたい
  • 284 ベクトルの演算をしたい
  • 285 行列を扱いたい
  • 286 代表的な行列を使いたい
  • 287 行列の演算をしたい
  • 288 行列の基本計算をしたい
  • 289 行列をQR分解したい
  • 290 行列の固有値を求めたい
  • 291 連立一次方程式の解を求めたい
  • 292 乱数を生成したい

Chapter 22 pandas

  • 293 pandasを使いたい
  • 294 Seriesを生成したい
  • 295 Seriesのデータにアクセスしたい
  • 296 DataFrameを生成したい
  • 297 pandasでCSVファイルに対して入出力したい
  • 298 pandasでデータベースに対して読み書きしたい
  • 299 pandasでクリップボードのデータを読み込みたい
  • 300 pandasでExcelファイルを読み込みたい
  • 301 pandasでExcelファイルに出力したい
  • 302 pandasでHTMLのテーブルを読み込みたい
  • 303 pandasでHTMLのテーブルに書き込みたい
  • 304 DataFrameから基本統計量を求めたい
  • 305 DataFrameの列データを取得したい
  • 306 DataFrameの行データを取得したい
  • 307 DataFrameの行・列を指定してデータを取得したい
  • 308 DataFrameの演算をしたい
  • 309 DataFrameで欠損値を扱いたい
  • 310 DataFrameで欠損値を補完したい
  • 311 DataFrameの値を置換したい
  • 312 DataFrameをフィルタリングしたい
  • 313 DataFrameをGroupByで集計したい
  • 314 DataFrameをソートしたい
  • 315 マルチインデックスのDataFrameを操作したい
  • 316 DataFrameからピボットテーブルを作成したい

Chapter 23 Matplotlib

  • 317 Matplotlibを使いたい
  • 318 Matplotlibの基本的な使い方が知りたい
  • 319 グラフの汎用要素を設定したい
  • 320 散布図を作成したい
  • 321 棒グラフを作成したい
  • 322 折れ線グラフを作成したい
  • 323 関数のグラフを作成したい
  • 324 円グラフを作成したい
  • 325 ヒストグラムを作成したい

Chapter 24 デスクトップ操作の自動化

  • 326 デスクトップ操作を自動化したい
  • 327 画面の情報を取得したい
  • 328 マウスポインタを移動させたい
  • 329 マウスをクリックさせたい
  • 330 キーボード入力させたい
  • 331 スクリーンショットを取得したい
  • 332 画面をスクロールしたい

Chapter 25 ブラウザの自動操作

  • 333 ブラウザを自動操作したい
  • 334 ブラウザを起動したい
  • 335 指定したURLに遷移したい
  • 336 画面の情報を取得したい
  • 337 HTML要素を取得したい
  • 338 HTML要素のテキストや属性を取得したい
  • 339 画面の要素を操作したい
  • 340 スクリーンショットを取得したい
  • 341 レンダリング完了を待ちたい

Chapter 26 メールの送受信

  • 342 メールを送信したい
  • 343 ファイルを添付したメールを送信したい
  • 344 IMAP4で受信したメールを取得したい
  • 345 EmailMessage型オブジェクトから件名,宛先,本文を取り出したい
  • 346 EmailMessage型オブジェクトから添付ファイルを取り出したい

Chapter 27 マルチスレッド

  • 347 Pythonの並行処理について知りたい
  • 348 マルチスレッドを使いたい
  • 349 スレッドの状態を確認したい
  • 350 スレッドをサブクラス化したい
  • 351 スレッドの排他制御をしたい
  • 352 スレッドセーフなキューを使いたい
  • 353 スレッドセーフなキューでタイムアウトを使用したい

Chapter 28 async/await

  • 354 async/awaitを使いたい
  • 355 非同期関数を定義したい
  • 356 イベントループでコルーチンを実行したい
  • 357 コルーチン内で処理をスリープしたい
  • 358 コルーチンを逐次的に実行したい
  • 359 コルーチンをタスクで実行したい
  • 360 コルーチンのタスクをまとめて実行したい
  • 361 タスクの実行をキャンセルしたい
  • 362 async/awaitで排他制御をしたい
  • 363 コルーチンセーフなキューを使いたい
  • 364 コルーチンセーフなキューでタイムアウトを使用したい

Chapter 29 マルチプロセス

  • 365 マルチプロセスを使いたい
  • 366 プロセスの状態を確認したい
  • 367 プロセスをサブクラス化したい
  • 368 プロセス間でデータを共有したい
  • 369 プロセス間で複数データを共有したい
  • 370 プロセスの排他制御をしたい
  • 371 プロセスセーフなキューを使いたい
  • 372 プロセスセーフなキューでタイムアウトを使用したい

プロフィール

黒住敬之くろずみたかゆき

信州大学大学院工学系研究科修士課程修了(位相幾何学専攻)。大学院卒業後,都内のSIerに勤務,業務システムの開発を行う。現在はEC企業のシステム開発部門に所属,Pythonを使用したシステム開発並びにデータ分析業務に従事。また,個人でもシステム開発やデータ分析業務等を受託。アイティーアールディーラボ代表。