レシピ集シリーズPythonコードレシピ集

書籍の概要

この本の概要

Pythonでやりたいことがスグに逆引きできる,究極のレシピ集。

基礎知識にはじまり,定番機能の解説,開発現場でニーズの高いテクニックまであますところなく集めました。基本文法/数値処理/テキスト処理/データベース/HTTPリクエスト/データ分析/画像処理…繰り返し参照しやすい形式で構文やコードをわかりやすく整理。脱初心者から駆け出しのエンジニア,ホビープログラマー,研究者まで。Pythonでプログラミングするすべての方にお届けします。Python 3対応。

こんな方におすすめ

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

目次

Chapter 1 Pythonの基本

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

Chapter 2 変数

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

Chapter 3 制御文

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

Chapter 4 関数

  • 069 関数を使いたい
  • 070 キーワード引数を使いたい
  • 071 可変長な位置引数を使いたい
  • 072 可変長なキーワード引数を使いたい
  • 073 関数呼び出しで位置引数をまとめて指定したい
  • 074 関数呼び出しでキーワード引数をまとめて指定したい
  • 075 デフォルト引数を使いたい
  • 076 複数の値を返したい
  • 077 関数の外側で定義した変数を使いたい
  • 078 関数を変数として扱いたい
  • 079 関数内部で関数を定義したい
  • 080 クロージャを使いたい
  • 081 デコレータを使いたい
  • 082 lambda式を使いたい
  • 083 ジェネレータを使いたい
  • 084 アノテーションを使いたい

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

  • 085 独自のオブジェクトを使いたい
  • 086 クラスを継承したい
  • 087 クラス変数を使いたい
  • 088 メソッドの種類が知りたい
  • 089 プライベートな変数やメソッドを定義したい
  • 090 オブジェクトの文字列表現を定義したい
  • 091 オブジェクトが持つ変数やメソッドを調べたい
  • 092 変数の型を調べたい

Chapter 6 例外

  • 093 例外を処理したい
  • 094 例外の種類が知りたい
  • 095 複数の例外を処理したい
  • 096 例外捕捉箇所の終了処理を制御したい
  • 097 捕捉した例外を変数として扱いたい
  • 098 例外を発生させたい
  • 099 例外を再送出したい
  • 100 例外の詳細情報を取得したい
  • 101 アサートを使いたい

Chapter 7 実行制御

  • 102 実行時に引数を指定したい
  • 103 終了ステータスを設定したい
  • 104 キーボードからの入力値を取得したい
  • 105 処理をスリープしたい
  • 106 環境変数を取得したい

Chapter 8 開発

  • 107 独自のモジュールを使いたい
  • 108 モジュールをパッケージ化したい
  • 109 スクリプトとして直接実行したときのみ処理を行いたい
  • 110 ログを出力したい
  • 111 ログのフォーマットを設定したい
  • 112 ログをファイル出力したい
  • 113 単体テストを実行したい
  • 114 単体テストで前処理を実行したい
  • 115 単体テストパッケージを使いたい
  • 116 ini形式の設定ファイルを使いたい
  • 117 コーディング規約が知りたい
  • 118 アンチパターンを改善したい

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

  • 119 ファイルを開きたい
  • 120 テキストファイルを読み込みたい
  • 121 テキストファイルに書き込みたい
  • 122 パスセパレータを取得したい
  • 123 パスを結合したい
  • 124 パスの末尾を取得したい
  • 125 カレントディレクトリを取得・変更したい
  • 126 絶対パス・相対パスを取得したい
  • 127 パスの存在を確認したい
  • 128 パス直下の内容一覧を取得したい
  • 129 ディレクトリかファイルかを判定したい
  • 130 拡張子を取得したい
  • 131 ファイルやディレクトリを移動したい
  • 132 ファイルやディレクトリをコピーしたい
  • 133 ファイルやディレクトリを削除したい
  • 134 新しいディレクトリを作成したい

Chapter 10 数値処理

  • 135 N進数表記を使いたい
  • 136 N進数表記に変換したい
  • 137 整数と浮動小数点を変換したい
  • 138 浮動小数点の表示桁数を増やしたい
  • 139 浮動小数点型の値が十分近いかどうかを判定したい
  • 140 絶対値,合計,最大,最小値を求めたい
  • 141 丸め処理を行いたい
  • 142 数値のN乗を求めたい
  • 143 商と剰余を求めたい
  • 144 数学定数や数学関数を使いたい
  • 145 指数関数を使いたい
  • 146 対数関数を使いたい
  • 147 三角関数を使いたい
  • 148 乱数を生成したい
  • 149 Decimal型を使いたい
  • 150 Decimal型の丸め処理を行いたい

Chapter 11 テキスト処理

  • 151 文字列リストを連結したい
  • 152 文字列に値を埋め込みたい
  • 153 フォーマット済み文字列リテラルを使いたい
  • 154 文字列を置換したい
  • 155 文字列が含まれるか判定したい
  • 156 文字列の一部を取り出したい
  • 157 文字列の不要な空白を除去したい
  • 158 文字列の大文字,小文字を変換したい
  • 159 文字列の種類を判別したい
  • 160 文字列を区切り文字で分割したい
  • 161 文字列をゼロ埋めしたい
  • 162 文字列を左右,中央に寄せたい
  • 163 文字列を数値に変換したい
  • 164 特定の文字列を含む行だけ抽出したい
  • 165 テキストの空白行を削除したい
  • 166 半角,全角を変換したい
  • 167 bytes型と文字列を変換したい
  • 168 文字コードを判定したい
  • 169 ランダムな文字列を生成したい
  • 170 正規表現を使いたい
  • 171 正規表現を用いて検索したい
  • 172 正規表現を用いて置換したい
  • 173 正規表現でテキストを分割したい
  • 174 正規表現グループを使用したい
  • 175 正規表現の一致箇所を調べたい
  • 176 GreedyとLazyを使い分けたい
  • 177 正規表現で複数行にまたがる処理をしたい

Chapter 12 リスト・辞書の操作

  • 178 N個の同じ要素からなるリストを生成したい
  • 179 リストを結合したい
  • 180 リストの要素をソートしたい
  • 181 リストのすべての要素に対して特定の処理を行いたい
  • 182 リストをCSV文字列に変換したい
  • 183 リストをN個ずつの要素に分割したい
  • 184 リストをN分割したい
  • 185 リストの要素を条件指定で抽出したい
  • 186 リストを逆順にしたい
  • 187 リストをランダムにシャッフルしたい
  • 188 リストから重複要素を除去したリストを作りたい
  • 189 キーと値のリストから辞書を生成したい
  • 190 辞書のキーと値を入れ替えたい
  • 191 2つの辞書をマージしたい

Chapter 13 日付と時間

  • 192 日付や時間を扱いたい
  • 193 日時(datetime)を扱いたい
  • 194 文字列と日時(datetime)を変換したい
  • 195 現在の日時(datetime)を取得したい
  • 196 日付(date)を扱いたい
  • 197 文字列と日付(date)を変換したい
  • 198 現在の日付(date)を取得したい
  • 199 日時の計算をしたい
  • 200 時間(time)を扱いたい
  • 201 文字列と時間(time)を変換したい
  • 202 月末の判定をしたい
  • 203 うるう年を判定したい

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

  • 204 CSVファイルを読み込みたい
  • 205 CSVファイルに書き込みたい
  • 206 JSON文字列をパースしたい
  • 207 辞書をJSON文字列に変換したい
  • 208 Base64にエンコードしたい
  • 209 Base64をデコードしたい
  • 210 UUIDを生成したい
  • 211 URLエンコードしたい
  • 212 URLエンコードをデコードしたい
  • 213 URLをパースしたい
  • 214 URLのクエリパラメータをパースしたい
  • 215 ユニコードエスケープにエンコードしたい
  • 216 ユニコードエスケープをデコードしたい
  • 217 ハッシュ値を生成したい
  • 218 ZIPファイルを展開したい
  • 219 ZIP形式でファイルを圧縮したい
  • 220 tarファイルを展開したい
  • 221 tar形式でアーカイブしたい
  • 222 ZIP形式やtar形式でディレクトリごと圧縮したい

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

  • 223 SQLite 3に接続したい
  • 224 SQLite 3でSQL文を実行したい
  • 225 SQLite 3でSELECT結果を取得したい
  • 226 SQLite 3でSELECT結果をカラムを指定して取得したい
  • 227 さまざまなデータベースを操作したい
  • 228 MySQLを操作したい
  • 229 PostgreSQLを操作したい

Chapter 16 HTTPリクエスト

  • 230 WebサイトやREST APIにアクセスしたい
  • 231 GETリクエストしたい
  • 232 レスポンスのさまざまな情報を取得したい
  • 233 レスポンスのエンコーディングを設定したい
  • 234 POSTリクエストしたい
  • 235 リクエストヘッダを追加したい
  • 236 プロキシサーバを経由してアクセスしたい
  • 237 タイムアウトを設定したい

Chapter 17 HTMLパース

  • 238 HTMLをパースしたい
  • 239 条件を指定してタグを取得したい
  • 240 取得したタグから情報を取得したい
  • 241 条件に一致するタグをすべて取得したい
  • 242 スクレイピングしたい

Chapter 18 画像処理

  • 243 画像編集ライブラリを使いたい
  • 244 画像の情報を取得したい
  • 245 Pillowで開いた画像を参照・保存したい
  • 246 画像を拡大・縮小したい
  • 247 画像をクロッピングしたい
  • 248 画像を回転させたい
  • 249 画像を反転させたい
  • 250 画像をグレースケールに変換したい
  • 251 画像の中に文字を埋め込みたい
  • 252 画像の中に画像を埋め込みたい
  • 253 画像のExif情報を読み込みたい

Chapter 19 データ分析の準備

  • 254 データ分析をしたい
  • 255 Anacondaを使いたい

Chapter 20 IPython

  • 256 IPythonを使いたい
  • 257 マジック関数を使いたい

Chapter 21 NumPy

  • 258 NumPyを使いたい
  • 259 ndarrayを使いたい
  • 260 ndarrayの各要素に対して関数の計算をしたい
  • 261 ベクトルの演算をしたい
  • 262 行列を扱いたい
  • 263 代表的な行列を使いたい
  • 264 行列の演算をしたい
  • 265 行列の基本計算をしたい
  • 266 行列をQR分解したい
  • 267 行列の固有値を求めたい
  • 268 連立一次方程式の解を求めたい
  • 269 乱数を生成したい

Chapter 22 pandas

  • 270 pandasを使いたい
  • 271 Seriesを生成したい
  • 272 Seriesのデータにアクセスしたい
  • 273 DataFrameを生成したい
  • 274 pandasでCSVファイルに対して入出力したい
  • 275 pandasでデータベースに対して読み書きしたい
  • 276 pandasでクリップボードのデータを読み込みたい
  • 277 DataFrameから基本統計量を求めたい
  • 278 DataFrameの列データを取得したい
  • 279 DataFrameの行データを取得したい
  • 280 DataFrameの行・列を指定してデータを取得したい
  • 281 DataFrameの演算をしたい
  • 282 DataFrameで欠損値を扱いたい
  • 283 DataFrameの値を置換したい
  • 284 DataFrameをフィルタリングしたい
  • 285 DataFrameをGroupByで集計したい
  • 286 DataFrameをソートしたい
  • 287 DataFrameからピボットテーブルを作成したい

Chapter 23 Matplotlib

  • 288 Matplotlibを使いたい
  • 289 Matplotlibの基本的な使い方が知りたい
  • 290 グラフの汎用要素を設定したい
  • 291 散布図を作成したい
  • 292 棒グラフを作成したい
  • 293 折れ線グラフを作成したい
  • 294 関数のグラフを作成したい
  • 295 円グラフを作成したい
  • 296 ヒストグラムを作成したい

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

  • 297 デスクトップ操作を自動化したい
  • 298 画面の情報を取得したい
  • 299 マウスポインタを移動させたい
  • 300 マウスをクリックさせたい
  • 301 キーボード入力させたい
  • 302 スクリーンショットを取得したい
  • 巻末資料
  • Index

著者プロフィール

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

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