Pythonコードレシピ集

書籍情報

発売日 : 2021年01月23日

著者/編集 : 黒住敬之

出版社 : 技術評論社

発行形態 : 単行本

書籍説明

内容紹介

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

目次

------------------------------------------------
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を使用したシステム開発並びにデータ分析業務に従事。また、個人でもシステム開発やデータ分析業務等を受託。アイティーアールディーラボ代表。