0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【期間限定:無料公開】イラストで速攻理解IT入門Python - Part2

0
Posted at

第17章 読みやすいPythonコードを書く技術

この章で学ぶこと

本章では、読みやすいコードを書く技術を学びます。実務では、動くだけでなく、他人が読めることが重要です。

主な学習項目は次のとおりです。

  • 17-1. 読みやすさが重要な理由
  • 17-2. 命名
  • 17-3. PEP 8の基本
  • 17-4. コード整形
  • 17-5. 関数分割と責務分割
  • 17-6. アンチパターン

なぜ必要なのか

この範囲は、単なる文法から実用コードへ移るための橋渡しです。処理を分け、エラーに備え、読みやすく保守しやすい形を意識します。

17-1. 読みやすさが重要な理由

図089 読みやすさが品質になる理由

17-1. 読みやすさが重要な理由では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • コードは書く時間より読む時間が長いこと:コードは書く時間より読む時間が長いことは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 将来の自分やチームのために書くこと:将来の自分やチームのために書くことは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 不具合を減らす効果:不具合を減らす効果は、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

17-2. 命名

図090 命名の基本

17-2. 命名では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 変数名:値に付ける名前です。実務では意味が伝わる名前を付けることが重要です。
  • 関数名:処理に名前を付けて再利用できるようにする部品です。
  • クラス名:オブジェクトの設計図です。関連するデータと処理をまとめます。
  • 定数名:定数名は、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 意味が伝わる名前を付ける:意味が伝わる名前を付けるは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 省略しすぎない:省略しすぎないは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

17-3. PEP 8の基本

図091 PEP 8の基本

17-3. PEP 8の基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • PEP 8とは何か:Pythonコードのスタイルガイドです。読みやすいコードの基準になります。
  • インデント:行頭の空白です。Pythonでは処理ブロックを表す文法そのものです。
  • 行の長さ:行の長さは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 空行:空行は、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • インポート順:インポート順は、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 命名規則:命名規則は、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

17-4. コード整形

図092 コード整形ツール

17-4. コード整形では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • フォーマッタとは何か:コードの見た目を自動で整えるツールです。チーム開発で有効です。
  • blackの概要:Pythonコードを一定のスタイルに整形するツールです。
  • ruffの概要:Pythonコードの問題検出や整形に使える高速なツールです。
  • チームでスタイルを統一するメリット:チームでスタイルを統一するメリットは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

17-5. 関数分割と責務分割

図093 責務分割とアンチパターン

17-5. 関数分割と責務分割では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 長い処理を分ける:長い処理を分けるは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 入力、処理、出力を分ける:入力、処理、出力を分けるは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ビジネスロジックと入出力を分ける:ビジネスロジックと入出力を分けるは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • テストしやすい構造にする:テストしやすい構造にするは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

17-6. アンチパターン

17-6. アンチパターンでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 何でもグローバル変数にする:値に名前を付けて再利用できるようにする仕組みです。
  • 例外をすべて無視する:実行中に発生する通常ではない状況です。適切に捕捉して処理します。
  • 1つの関数に詰め込みすぎる:処理に名前を付けて再利用できるようにする部品です。
  • 名前が曖昧すぎる:名前が曖昧すぎるは、第17章 読みやすいPythonコードを書く技術を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ネストが深すぎる:データ構造の中に別のデータ構造を入れることです。深くしすぎると読みにくくなります。

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 読みにくいコードを改善する
  • 長い関数を分割する
  • 変数名を改善する
  • フォーマッタで整形する

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第18章 テストで品質を守る

この章で学ぶこと

本章では、テストで品質を守る方法を学びます。変更に強いコードを作るには、自動テストの考え方が欠かせません。

主な学習項目は次のとおりです。

  • 18-1. テストとは何か
  • 18-2. 単体テストの基本
  • 18-3. pytestの基本
  • 18-4. テストしやすい設計
  • 18-5. モックの概要
  • 18-6. カバレッジ

なぜ必要なのか

実務開発では、テスト、ログ、設定、CLI、API、DB、ファイル処理を組み合わせます。単独の知識ではなく、連携して使うことを意識します。

18-1. テストとは何か

図094 テストの目的

18-1. テストとは何かでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • プログラムが期待通り動くか確認すること:実行中の情報を記録するものです。障害調査に欠かせません。
  • 手動テストと自動テスト:手動テストと自動テストは、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 不具合を早く見つける重要性:不具合を早く見つける重要性は、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

18-2. 単体テストの基本

図095 単体テストの基本

18-2. 単体テストの基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 単体テストとは何か:関数やクラスなど小さな単位の動作を確認するテストです。
  • テスト対象を小さくする:テスト対象を小さくするは、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 入力と期待結果を決める:入力と期待結果を決めるは、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 正常系と異常系:正常系と異常系は、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

18-3. pytestの基本

図096 pytestの基本

18-3. pytestの基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • pytestとは何か:Pythonでよく使われるテストフレームワークです。
  • テストファイルの命名:テストファイルの命名は、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • テスト関数の書き方:処理に名前を付けて再利用できるようにする部品です。
  • assert:条件が真であることを確認する文です。テストで多用します。
  • テストの実行方法:テストの実行方法は、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

18-4. テストしやすい設計

図097 テストしやすい設計

18-4. テストしやすい設計では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 入出力と処理を分ける:入出力と処理を分けるは、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 外部依存を減らす:外部依存を減らすは、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 関数の戻り値を明確にする:処理に名前を付けて再利用できるようにする部品です。
  • 副作用を減らす:関数が戻り値以外に外部の状態を変えることです。テストしやすさに影響します。

18-5. モックの概要

図098 モックの概要

18-5. モックの概要では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • モックとは何か:外部APIやDBなどをテスト用の偽物に置き換える仕組みです。
  • 外部APIやDBを置き換える考え方:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • unittest.mockの入口:unittest.mock`の入口は、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 使いすぎない注意点:実務で不具合や手戻りにつながりやすい観点です。仕組みだけでなく、失敗例も意識して理解します。

18-6. カバレッジ

図099 カバレッジ

18-6. カバレッジでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • カバレッジとは何か:テストで実行されたコード割合です。数値だけを目的にしないことが重要です。
  • 数値だけを目的にしない:数値だけを目的にしないは、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 重要な分岐をテストする:重要な分岐をテストするは、第18章 テストで品質を守るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

def add(a, b):
    return a + b

def test_add():
    assert add(1, 2) == 3

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 計算関数をテストする
  • 入力検証関数をテストする
  • 例外が発生することをテストする
  • ファイル処理をテストしやすく分離する

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第19章 ログと設定管理

この章で学ぶこと

本章では、ログと設定管理を学びます。運用時に調査しやすく、環境差分に強いプログラムを作ります。

主な学習項目は次のとおりです。

  • 19-1. ログとは何か
  • 19-2. loggingの基本
  • 19-3. ログレベルの使い分け
  • 19-4. 設定管理
  • 19-5. 秘密情報の扱い

なぜ必要なのか

実務開発では、テスト、ログ、設定、CLI、API、DB、ファイル処理を組み合わせます。単独の知識ではなく、連携して使うことを意識します。

19-1. ログとは何か

図100 ログの役割

19-1. ログとは何かでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 実行中の情報を記録すること:実行中の情報を記録することは、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • print()との違い:値を画面に表示する関数です。学習初期の確認や簡単な出力に使います。
  • 障害調査で重要な理由:障害調査で重要な理由は、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 運用で必要になる情報:運用で必要になる情報は、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

19-2. loggingの基本

図101 loggingの基本

19-2. loggingの基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • ロガー:ロガーは、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ログレベル:実行中の情報を記録するものです。障害調査に欠かせません。
  • フォーマット:フォーマットは、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • コンソール出力:コンソール出力は、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ファイル出力:ファイル出力は、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

19-3. ログレベルの使い分け

図102 ログレベルの使い分け

19-3. ログレベルの使い分けでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • DEBUG:DEBUGは、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • INFO:INFOは、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • WARNING:WARNINGは、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ERROR:ERRORは、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • CRITICAL:CRITICALは、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 実務での使い分け例:実務での使い分け例は、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

19-4. 設定管理

図103 設定管理

19-4. 設定管理では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 設定値とは何か:設定値とは何かは、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • コードに直接書かない理由:コードに直接書かない理由は、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • JSON設定:辞書やリストに近い形でデータを表す形式です。APIや設定ファイルで頻繁に使います。
  • TOML設定:TOML設定は、第19章 ログと設定管理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 環境変数:値に名前を付けて再利用できるようにする仕組みです。
  • .envの概要:環境変数をファイルで管理する方法です。秘密情報をGitに含めないことが重要です。

19-5. 秘密情報の扱い

図104 秘密情報の扱い

19-5. 秘密情報の扱いでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • パスワードやAPIキーをコードに書かない:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • Gitに含めない:変更履歴を管理するツールです。
  • 環境変数で渡す:値に名前を付けて再利用できるようにする仕組みです。
  • ログに秘密情報を出さない:実行中の情報を記録するものです。障害調査に欠かせません。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

import logging
logging.basicConfig(level=logging.INFO)
logging.info("処理を開始しました")

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • ログをファイルに出力する
  • ログレベルを切り替える
  • JSON設定を読み込む
  • 環境変数から値を取得する

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第20章 コマンドラインツールを作る

この章で学ぶこと

本章では、コマンドラインツールの作り方を学びます。業務自動化では、引数を受け取れるツールが実用的です。

主な学習項目は次のとおりです。

  • 20-1. CLIとは何か
  • 20-2. sys.argvの基本
  • 20-3. argparseの基本
  • 20-4. 終了コード
  • 20-5. 実務向けCLI設計

なぜ必要なのか

実務開発では、テスト、ログ、設定、CLI、API、DB、ファイル処理を組み合わせます。単独の知識ではなく、連携して使うことを意識します。

20-1. CLIとは何か

図105 CLIとは何か

20-1. CLIとは何かでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • コマンドラインインターフェースの意味:コマンドラインインターフェースの意味は、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 業務ツールとしてPythonを使う考え方:業務ツールとしてPythonを使う考え方は、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 引数を受け取る必要性:関数に渡す値です。入力として扱います。

20-2. sys.argvの基本

図106 sys.argvの基本

20-2. sys.argvの基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • コマンドライン引数とは何か:関数に渡す値です。入力として扱います。
  • 引数の取得:関数に渡す値です。入力として扱います。
  • 引数数の確認:関数に渡す値です。入力として扱います。
  • 簡単な引数処理:関数に渡す値です。入力として扱います。

20-3. argparseの基本

図107 argparseの基本

20-3. argparseの基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • argparseとは何か:コマンドライン引数を定義・解析する標準ライブラリです。
  • 位置引数:関数に渡す値です。入力として扱います。
  • オプション引数:関数に渡す値です。入力として扱います。
  • ヘルプ表示:ヘルプ表示は、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 型指定:型指定は、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • デフォルト値:デフォルト値は、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

20-4. 終了コード

図108 終了コード

20-4. 終了コードでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 正常終了と異常終了:正常終了と異常終了は、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 終了コードの意味:プログラムの成功や失敗を呼び出し元に伝える数値です。
  • シェルスクリプトやCIとの連携:シェルスクリプトやCIとの連携は、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

20-5. 実務向けCLI設計

図109 実務向けCLI設計

20-5. 実務向けCLI設計では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 入力ファイル指定:入力ファイル指定は、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 出力ファイル指定:出力ファイル指定は、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ドライラン:実際には変更せず、実行予定の内容だけ確認するモードです。
  • 詳細ログオプション:実行中の情報を記録するものです。障害調査に欠かせません。
  • エラー時のメッセージ:エラー時のメッセージは、第20章 コマンドラインツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("input_file")
args = parser.parse_args()
print(args.input_file)

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • CSV変換CLIを作る
  • フォルダ内ファイル一覧CLIを作る
  • ログ抽出CLIを作る
  • 引数不足時にヘルプを表示する

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第21章 Web APIを利用する

この章で学ぶこと

本章では、Web APIを利用する方法を学びます。外部システムとの連携ではHTTPとJSONの理解が重要です。

主な学習項目は次のとおりです。

  • 21-1. Web APIとは何か
  • 21-2. HTTPの基礎
  • 21-3. requestsでAPIを呼び出す
  • 21-4. API呼び出しの例外処理
  • 21-5. 認証の基本
  • 21-6. 実務でのAPI連携設計

なぜ必要なのか

実務開発では、テスト、ログ、設定、CLI、API、DB、ファイル処理を組み合わせます。単独の知識ではなく、連携して使うことを意識します。

21-1. Web APIとは何か

図110 Web APIとは何か

21-1. Web APIとは何かでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • アプリケーション同士が通信する仕組み:アプリケーション同士が通信する仕組みは、第21章 Web APIを利用するを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • HTTPの基本:Web上でリクエストとレスポンスをやり取りする通信の仕組みです。
  • リクエストとレスポンス:クライアントからサーバーへ送る要求です。
  • JSONがよく使われる理由:辞書やリストに近い形でデータを表す形式です。APIや設定ファイルで頻繁に使います。

21-2. HTTPの基礎

図111 HTTPの基礎

21-2. HTTPの基礎では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • URL:アクセス先を表す文字列です。
  • メソッド:オブジェクトにひもづいた関数のような処理です。文字列やリストに多く用意されています。
  • ステータスコード:HTTPの結果を表す数値です。200は成功、400番台はクライアント側エラーの代表です。
  • ヘッダー:HTTP通信に付ける追加情報です。認証やデータ形式を表します。
  • クエリパラメータ:クエリパラメータは、第21章 Web APIを利用するを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ボディ:ボディは、第21章 Web APIを利用するを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

21-3. requestsでAPIを呼び出す

図112 requestsでAPIを呼び出す

21-3. requestsでAPIを呼び出すでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • GETリクエスト:クライアントからサーバーへ送る要求です。
  • POSTリクエスト:クライアントからサーバーへ送る要求です。
  • ヘッダー指定:HTTP通信に付ける追加情報です。認証やデータ形式を表します。
  • パラメータ指定:パラメータ指定は、第21章 Web APIを利用するを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • JSONレスポンスの扱い:辞書やリストに近い形でデータを表す形式です。APIや設定ファイルで頻繁に使います。

21-4. API呼び出しの例外処理

図113 API呼び出しの例外処理

21-4. API呼び出しの例外処理では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • タイムアウト:一定時間応答がなければ失敗扱いにする設定です。
  • 通信エラー:通信エラーは、第21章 Web APIを利用するを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ステータスコードエラー:HTTPの結果を表す数値です。200は成功、400番台はクライアント側エラーの代表です。
  • リトライの考え方:一時的な失敗に対して処理を再試行することです。
  • エラーレスポンスの読み方:サーバーからクライアントへ返る応答です。

21-5. 認証の基本

図114 API認証の基本

21-5. 認証の基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • APIキー:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • Bearerトークン:Python標準の正規表現モジュールです。検索や抽出に使います。
  • Basic認証の概要:詳細に入りすぎず、何のために存在するかを把握します。必要になったときに深掘りできる状態を目指します。
  • 認証情報を安全に扱う:認証情報を安全に扱うは、第21章 Web APIを利用するを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

21-6. 実務でのAPI連携設計

図115 API連携設計

21-6. 実務でのAPI連携設計では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • APIクライアントを関数・クラスに分ける:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • レスポンス形式を揃える:評価すると値になるものです。計算式や比較式は式です。
  • ログを残す:実行中の情報を記録するものです。障害調査に欠かせません。
  • テストしやすくする:テストしやすくするは、第21章 Web APIを利用するを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

import requests
response = requests.get("https://example.com", timeout=10)
response.raise_for_status()
print(response.status_code)

初心者が間違えやすいポイント

API呼び出しではタイムアウトとステータスコード確認を忘れないようにします。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 公開APIからJSONを取得する
  • 取得したJSONをCSVに保存する
  • エラー時にログを出す
  • APIクライアントクラスを作る

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第22章 データベースを扱う

この章で学ぶこと

本章では、データベースを扱う方法を学びます。データを安全に保存し、検索・更新するための基礎です。

主な学習項目は次のとおりです。

  • 22-1. データベースとは何か
  • 22-2. SQLiteの基本
  • 22-3. PythonからSQLiteを使う
  • 22-4. CRUD操作
  • 22-5. SQLインジェクション対策
  • 22-6. トランザクション
  • 22-7. ORMの概要

なぜ必要なのか

実務開発では、テスト、ログ、設定、CLI、API、DB、ファイル処理を組み合わせます。単独の知識ではなく、連携して使うことを意識します。

22-1. データベースとは何か

図116 データベースとは何か

22-1. データベースとは何かでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • データを永続的に保存する仕組み:データを永続的に保存する仕組みは、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 表、行、列:表、行、列は、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 主キー:辞書で値を取り出すための名前です。存在しないキーには注意します。
  • SQLの役割:データベースを操作する言語です。検索、登録、更新、削除に使います。

22-2. SQLiteの基本

図117 SQLiteの基本

22-2. SQLiteの基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • SQLiteとは何か:ファイルベースで使える軽量なデータベースです。学習や小規模ツールに向いています。
  • ファイルベースDBの特徴:ファイルベースDBの特徴は、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 学習や小規模ツールに向いている理由:学習や小規模ツールに向いている理由は、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

22-3. PythonからSQLiteを使う

図118 PythonからSQLiteを使う流れ

22-3. PythonからSQLiteを使うでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • sqlite3モジュール:Pythonファイルを部品として利用する仕組みです。処理を分割し、保守しやすくします。
  • 接続:接続は、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • カーソル:カーソルは、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • SQL実行:データベースを操作する言語です。検索、登録、更新、削除に使います。
  • コミット:変更を履歴として記録する操作です。
  • クローズ:クローズは、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

22-4. CRUD操作

図119 CRUD操作

22-4. CRUD操作では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • INSERT:INSERTは、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • SELECT:SELECTは、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • UPDATE:UPDATEは、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • DELETE:DELETEは、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • WHERE句:WHERE句は、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ORDER BY:ORDER BYは、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

22-5. SQLインジェクション対策

図120 SQLインジェクション対策

22-5. SQLインジェクション対策では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • SQLインジェクションとは何か:データベースを操作する言語です。検索、登録、更新、削除に使います。
  • 文字列結合でSQLを作る危険性:データベースを操作する言語です。検索、登録、更新、削除に使います。
  • プレースホルダを使う:SQLに値を安全に埋め込むための仕組みです。
  • 入力値を信用しない考え方:入力値を信用しない考え方は、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

22-6. トランザクション

図121 トランザクション

22-6. トランザクションでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • トランザクションとは何か:複数の処理をまとめて成功または失敗にする仕組みです。
  • コミット:変更を履歴として記録する操作です。
  • ロールバック:ロールバックは、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 複数処理をまとめて成功・失敗させる考え方:複数処理をまとめて成功・失敗させる考え方は、第22章 データベースを扱うを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

22-7. ORMの概要

図122 ORMの概要

22-7. ORMの概要では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • ORMとは何か:データベースの表をクラスのように扱う仕組みです。
  • SQLAlchemyなどの存在:データベースを操作する言語です。検索、登録、更新、削除に使います。
  • SQLを直接書く場合との違い:データベースを操作する言語です。検索、登録、更新、削除に使います。
  • 学習段階でまずSQLを理解する理由:データベースを操作する言語です。検索、登録、更新、削除に使います。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

import sqlite3
with sqlite3.connect("app.db") as con:
    con.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)")
    con.execute("INSERT INTO users (name) VALUES (?)", ("田中",))

初心者が間違えやすいポイント

SQLを文字列結合で作るのは危険です。必ずプレースホルダを使います。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • ユーザーテーブルを作る
  • CSVからDBに登録する
  • 条件に合うデータを検索する
  • 不正入力でも安全に検索する

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第23章 Excel、CSV、日付データの実務処理

この章で学ぶこと

本章では、Excel、CSV、日付データを扱う実務処理を学びます。表形式データの変換と集計に強くなります。

主な学習項目は次のとおりです。

  • 23-1. 業務データ処理の全体像
  • 23-2. 日付と時刻
  • 23-3. CSV実務処理
  • 23-4. Excelファイルの扱い
  • 23-5. pandasの入口

なぜ必要なのか

実務開発では、テスト、ログ、設定、CLI、API、DB、ファイル処理を組み合わせます。単独の知識ではなく、連携して使うことを意識します。

23-1. 業務データ処理の全体像

図123 業務データ処理の全体像

23-1. 業務データ処理の全体像では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 入力データを読む:入力データを読むは、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 必要な形に変換する:必要な形に変換するは、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 集計する:集計するは、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 出力する:出力するは、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • エラーや欠損値に対応する:本来あるべき値が空や未設定になっている状態です。

23-2. 日付と時刻

図124 日付と時刻

23-2. 日付と時刻では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • datetime:日付と時刻を扱う標準ライブラリです。
  • 日付文字列の変換:日付文字列の変換は、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 表示形式の変換:評価すると値になるものです。計算式や比較式は式です。
  • タイムゾーンの概要:地域ごとの時刻基準です。システム間連携では明確にします。
  • 日付比較:日付比較は、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

23-3. CSV実務処理

図125 CSV実務処理

23-3. CSV実務処理では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • ヘッダー行:HTTP通信に付ける追加情報です。認証やデータ形式を表します。
  • 欠損値:本来あるべき値が空や未設定になっている状態です。
  • 数値変換:数値変換は、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 日付変換:日付変換は、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 不正行の扱い:不正行の扱いは、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 集計処理:集計処理は、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

23-4. Excelファイルの扱い

図126 Excelファイルの扱い

23-4. Excelファイルの扱いでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • ExcelをPythonで扱う理由:ExcelをPythonで扱う理由は、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • openpyxlの概要:Excelファイルを読み書きする外部ライブラリです。
  • シートの読み込み:外部データとの入出力に関わる項目です。文字コード、形式、エラー時の扱いも合わせて考えます。
  • セルの読み書き:セルの読み書きは、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 行の繰り返し:行の繰り返しは、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 新しいExcelファイルの作成:手を動かして実装する項目です。小さく動かし、結果を確認しながら理解します。

23-5. pandasの入口

図127 pandasの入口

23-5. pandasの入口では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • pandasとは何か:表形式データの変換や集計に強い外部ライブラリです。
  • DataFrameの考え方:pandasの中心となる表形式データ構造です。
  • CSV読み込み:カンマ区切りで表形式データを表す形式です。業務データでよく使います。
  • 列選択:列選択は、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 条件抽出:条件抽出は、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 集計:集計は、第23章 Excel、CSV、日付データの実務処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • CSV出力:カンマ区切りで表形式データを表す形式です。業務データでよく使います。
  • pandasを使うべき場面と使わない場面:表形式データの変換や集計に強い外部ライブラリです。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

from datetime import datetime
date = datetime.strptime("2026-05-13", "%Y-%m-%d")
print(date.strftime("%Y年%m月%d日"))

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 売上CSVを日付別に集計する
  • Excelの一覧表から条件に合う行を抽出する
  • 不正な日付を検出する
  • 集計結果をCSVに出力する

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第24章 Webスクレイピングの基本

この章で学ぶこと

本章では、Webスクレイピングの基本を学びます。技術だけでなく、利用規約やアクセス負荷への配慮も重要です。

主な学習項目は次のとおりです。

  • 24-1. Webスクレイピングとは何か
  • 24-2. ルールとマナー
  • 24-3. HTMLの基本
  • 24-4. requestsBeautifulSoup
  • 24-5. スクレイピングの実務注意点

なぜ必要なのか

実務開発では、テスト、ログ、設定、CLI、API、DB、ファイル処理を組み合わせます。単独の知識ではなく、連携して使うことを意識します。

24-1. Webスクレイピングとは何か

図128 Webスクレイピングとは何か

24-1. Webスクレイピングとは何かでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • Webページから情報を取得する処理:Webページから情報を取得する処理は、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • APIとの違い:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • 使う前に確認すべきこと:使う前に確認すべきことは、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

24-2. ルールとマナー

図129 ルールとマナー

24-2. ルールとマナーでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 利用規約の確認:利用規約の確認は、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • robots.txtの概要:クローラーへのアクセス方針を示すファイルです。法的許可そのものではありません。
  • 過度なアクセスを避ける:過度なアクセスを避けるは、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 個人情報や著作権への注意:実務で不具合や手戻りにつながりやすい観点です。仕組みだけでなく、失敗例も意識して理解します。
  • 業務利用時の承認:業務利用時の承認は、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

24-3. HTMLの基本

図130 HTMLの基本構造

24-3. HTMLの基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • タグ:タグは、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 属性:オブジェクトが持つデータです。
  • 階層構造:階層構造は、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • CSSセレクタの概要:HTML要素を指定するための記法です。

24-4. requestsBeautifulSoup

図131 requestsとBeautifulSoup

24-4. requestsBeautifulSoupでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • HTMLを取得する:Webページの構造を表す言語です。
  • HTMLを解析する:Webページの構造を表す言語です。
  • 要素を検索する:要素を検索するは、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • テキストを取り出す:テキストを取り出すは、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • リンクを取り出す:リンクを取り出すは、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

24-5. スクレイピングの実務注意点

図132 スクレイピングの実務注意点

24-5. スクレイピングの実務注意点では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 文字化け:保存時と読み込み時の文字コードが合わないと発生する表示崩れです。
  • タイムアウト:一定時間応答がなければ失敗扱いにする設定です。
  • ページ構造変更:ページ構造変更は、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 取得失敗時の処理:取得失敗時の処理は、第24章 Webスクレイピングの基本を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ログとリトライ:実行中の情報を記録するものです。障害調査に欠かせません。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

from bs4 import BeautifulSoup
soup = BeautifulSoup("<h1>Title</h1>", "html.parser")
print(soup.find("h1").get_text())

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • サンプルHTMLからタイトルを取得する
  • 表データを抽出する
  • リンク一覧をCSVに保存する
  • 取得失敗時に例外処理を入れる

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第25章 並行処理と非同期処理

図138 並行処理の落とし穴

この章で学ぶこと

本章では、並行処理と非同期処理を学びます。待ち時間の多い処理や大量I/Oを効率化する考え方です。

主な学習項目は次のとおりです。

  • 25-1. 並行処理とは何か
  • 25-2. スレッド
  • 25-3. プロセス
  • 25-4. 非同期処理
  • 25-5. 並行処理の使い分け

なぜ必要なのか

応用・運用領域では、正しく動くことに加えて、安全性、効率、再実行性、監視しやすさを重視します。

重点解説:非同期処理の例え

非同期処理は、注文した料理を待っている間に別の作業を進めるような考え方です。待ち時間が多いネットワーク処理では効果があります。一方、計算そのものが重い処理では、非同期にしても速くならない場合があります。処理の性質を見て使い分けます。

25-1. 並行処理とは何か

図133 並行処理の全体像

25-1. 並行処理とは何かでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 複数の処理を同時に進める考え方:複数の処理を同時に進める考え方は、第25章 並行処理と非同期処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • CPU待ちとI/O待ち:Input/Outputの略で、ファイル、ネットワーク、DBなどの入出力です。
  • ファイル、ネットワーク処理で効果が出やすい理由:ファイル、ネットワーク処理で効果が出やすい理由は、第25章 並行処理と非同期処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

25-2. スレッド

図134 スレッド

25-2. スレッドでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • スレッドとは何か:1つのプロセス内の処理の流れです。I/O待ちに向くことがあります。
  • threadingの概要:値が含まれるかを判定します。リスト、辞書、文字列などで使えます。
  • I/O待ち処理との相性:Input/Outputの略で、ファイル、ネットワーク、DBなどの入出力です。
  • 共有データの注意点:実務で不具合や手戻りにつながりやすい観点です。仕組みだけでなく、失敗例も意識して理解します。

25-3. プロセス

図135 プロセス

25-3. プロセスでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • プロセスとは何か:OS上で独立して動く実行単位です。CPU負荷が高い処理に向く場合があります。
  • multiprocessingの概要:値が含まれるかを判定します。リスト、辞書、文字列などで使えます。
  • CPU負荷が高い処理との相性:CPU負荷が高い処理との相性は、第25章 並行処理と非同期処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • データ受け渡しの注意点:実務で不具合や手戻りにつながりやすい観点です。仕組みだけでなく、失敗例も意識して理解します。

25-4. 非同期処理

図136 非同期処理

25-4. 非同期処理では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 非同期処理とは何か:待ち時間の間に別の処理を進める仕組みです。
  • asyncawait:非同期関数を定義するためのキーワードです。
  • イベントループ:同じ処理を繰り返す仕組みです。自動化の中心になる考え方です。
  • コルーチン:途中で一時停止し、後で再開できる処理です。
  • I/O処理を効率化する考え方:Input/Outputの略で、ファイル、ネットワーク、DBなどの入出力です。

25-5. 並行処理の使い分け

図137 並行処理の使い分け

25-5. 並行処理の使い分けでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 通常の逐次処理で十分なケース:通常の逐次処理で十分なケースは、第25章 並行処理と非同期処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • スレッドが向くケース:1つのプロセス内の処理の流れです。I/O待ちに向くことがあります。
  • プロセスが向くケース:OS上で独立して動く実行単位です。CPU負荷が高い処理に向く場合があります。
  • 非同期処理が向くケース:待ち時間の間に別の処理を進める仕組みです。
  • 複雑にしすぎない判断:複雑にしすぎない判断は、第25章 並行処理と非同期処理を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

import asyncio
async def task(name):
    await asyncio.sleep(1)
    return f"{name}完了"
asyncio.run(task("A"))

初心者が間違えやすいポイント

並行処理は必ず速くなるわけではありません。処理の性質を見て、測定してから導入します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 複数URLを順に取得する
  • スレッドで複数URLを取得する
  • 非同期で複数URLを取得する
  • 実行時間を比較する

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第26章 セキュリティを意識したPython開発

この章で学ぶこと

本章では、セキュリティを意識したPython開発を学びます。実務コードでは安全性を最初から設計に含めます。

主な学習項目は次のとおりです。

  • 26-1. セキュリティの基本姿勢
  • 26-2. 入力値検証
  • 26-3. 秘密情報管理
  • 26-4. 依存ライブラリのリスク
  • 26-5. よくある脆弱性

なぜ必要なのか

応用・運用領域では、正しく動くことに加えて、安全性、効率、再実行性、監視しやすさを重視します。

26-1. セキュリティの基本姿勢

図139 セキュリティの基本姿勢

26-1. セキュリティの基本姿勢では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 入力値を信用しない:入力値を信用しないは、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 秘密情報を守る:秘密情報を守るは、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • エラー情報を出しすぎない:エラー情報を出しすぎないは、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ライブラリを更新する:再利用できる機能の集まりです。自分で一から作らず、信頼できる部品を利用できます。

26-2. 入力値検証

図140 入力値検証

26-2. 入力値検証では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • バリデーションとは何か:入力値がルールに合うか確認することです。
  • 型チェック:型チェックは、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 範囲チェック:範囲チェックは、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 文字列長チェック:文字列長チェックは、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 許可リスト方式:評価すると値になるものです。計算式や比較式は式です。

26-3. 秘密情報管理

図141 秘密情報管理

26-3. 秘密情報管理では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • APIキー:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • パスワード:パスワードは、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • トークン:トークンは、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 環境変数:値に名前を付けて再利用できるようにする仕組みです。
  • 設定ファイルの扱い:設定ファイルの扱いは、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • Gitへの誤登録防止:変更履歴を管理するツールです。

26-4. 依存ライブラリのリスク

図142 依存ライブラリのリスク

26-4. 依存ライブラリのリスクでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 脆弱性とは何か:攻撃や不正利用につながる弱点です。
  • 不要なライブラリを増やさない:再利用できる機能の集まりです。自分で一から作らず、信頼できる部品を利用できます。
  • バージョン更新:バージョン更新は、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 依存関係の確認:依存関係の確認は、第26章 セキュリティを意識したPython開発を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

26-5. よくある脆弱性

図143 よくある脆弱性

26-5. よくある脆弱性では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • SQLインジェクション:データベースを操作する言語です。検索、登録、更新、削除に使います。
  • コマンドインジェクション:入力値が外部コマンドとして解釈される危険な問題です。
  • パストラバーサル:想定外のファイルパスへアクセスされる問題です。
  • 安全でないデシリアライズの概要:保存・送信用の形式からオブジェクトを復元する処理です。信頼できないデータには注意します。
  • ログへの機密情報出力:実行中の情報を記録するものです。障害調査に欠かせません。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

def validate_role(role: str) -> str:
    allowed = {"admin", "user", "guest"}
    if role not in allowed:
        raise ValueError("不正な権限です")
    return role

初心者が間違えやすいポイント

社内ツールでも入力値や秘密情報の扱いを軽視してはいけません。安全な書き方を標準にします。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 入力値検証関数を作る
  • APIキーを環境変数から読む
  • 危険なSQL作成を修正する
  • ファイルパスの不正入力を防ぐ

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第27章 パフォーマンスとメモリ効率

この章で学ぶこと

本章では、パフォーマンスとメモリ効率を学びます。推測ではなく測定に基づいて改善します。

主な学習項目は次のとおりです。

  • 27-1. パフォーマンスの考え方
  • 27-2. 時間を測る
  • 27-3. よくある改善ポイント
  • 27-4. メモリ効率
  • 27-5. プロファイリングの概要

なぜ必要なのか

応用・運用領域では、正しく動くことに加えて、安全性、効率、再実行性、監視しやすさを重視します。

27-1. パフォーマンスの考え方

図144 パフォーマンスの考え方

27-1. パフォーマンスの考え方では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 速さだけを目的にしない:速さだけを目的にしないは、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • まず正しく読みやすく書く:まず正しく読みやすく書くは、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ボトルネックを測定してから改善する:全体の遅さの主原因になっている箇所です。

27-2. 時間を測る

図145 時間を測る

27-2. 時間を測るでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • time:timeは、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • timeit:小さな処理の実行時間を比較する標準ライブラリです。
  • 実行時間計測:実行時間計測は、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 計測結果の見方:計測結果の見方は、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

27-3. よくある改善ポイント

図146 よくある改善ポイント

27-3. よくある改善ポイントでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 不要なループを減らす:同じ処理を繰り返す仕組みです。自動化の中心になる考え方です。
  • 適切なデータ構造を選ぶ:適切なデータ構造を選ぶは、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • リストより集合が速い検索:順序付きで変更可能な複数データです。追加、変更、削除ができます。
  • 文字列結合の注意:実務で不具合や手戻りにつながりやすい観点です。仕組みだけでなく、失敗例も意識して理解します。
  • ファイルを一度に読みすぎない:ファイルを一度に読みすぎないは、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

27-4. メモリ効率

図147 メモリ効率

27-4. メモリ効率では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • メモリとは何か:プログラム実行中にデータを置く作業領域です。
  • 大きなリストを避ける:順序付きで変更可能な複数データです。追加、変更、削除ができます。
  • ジェネレータを使う:必要な分だけ値を生成する仕組みです。大きなデータ処理で有効です。
  • ストリーム処理の考え方:ストリーム処理の考え方は、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

27-5. プロファイリングの概要

図148 プロファイリング

27-5. プロファイリングの概要では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • プロファイリングとは何か:どこに時間がかかっているか測定することです。
  • cProfileの概要:Python標準のプロファイリング機能です。
  • 遅い箇所を特定する:遅い箇所を特定するは、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 推測で最適化しない:推測で最適化しないは、第27章 パフォーマンスとメモリ効率を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

import time
start = time.time()
# 処理
print(f"実行時間: {time.time() - start:.3f}")

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • リスト検索と集合検索を比較する
  • 大きなファイルを1行ずつ処理する
  • 実行時間を計測する
  • 遅い処理を見つける

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第28章 Pythonプロジェクトの構成と配布

この章で学ぶこと

本章では、Pythonプロジェクトの構成と配布を学びます。他の人が再現できる形に整えることを重視します。

主な学習項目は次のとおりです。

  • 28-1. プロジェクト構成の基本
  • 28-2. 推奨フォルダ構成
  • 28-3. パッケージ管理
  • 28-4. Gitの基本連携
  • 28-5. 配布と実行

なぜ必要なのか

応用・運用領域では、正しく動くことに加えて、安全性、効率、再実行性、監視しやすさを重視します。

28-1. プロジェクト構成の基本

図149 プロジェクト構成の基本

28-1. プロジェクト構成の基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • なぜフォルダ構成が重要か:なぜフォルダ構成が重要かは、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ソースコード:ソースコードは、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • テスト:テストは、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 設定ファイル:設定ファイルは、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ドキュメント:ドキュメントは、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 実行入口:実行入口は、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

28-2. 推奨フォルダ構成

図150 推奨フォルダ構成

28-2. 推奨フォルダ構成では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • src構成:ソースコードをまとめるフォルダ構成の一つです。
  • testsフォルダ:tests`フォルダは、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • README:プロジェクトの目的、セットアップ、実行方法を説明する文書です。
  • requirements.txt:利用する外部パッケージとバージョンを記録するファイルです。環境再現に役立ちます。
  • .gitignore:Python標準の正規表現モジュールです。検索や抽出に使います。
  • 設定ファイルの配置:設定ファイルの配置は、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

28-3. パッケージ管理

図151 パッケージ管理

28-3. パッケージ管理では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • pip:Pythonパッケージをインストールするためのツールです。仮想環境とセットで使います。
  • venv:Python標準の仮想環境作成機能です。学習用・実務用のどちらでも基本になります。
  • requirements.txt:利用する外部パッケージとバージョンを記録するファイルです。環境再現に役立ちます。
  • pyproject.tomlの概要:詳細に入りすぎず、何のために存在するかを把握します。必要になったときに深掘りできる状態を目指します。
  • 開発用依存関係と本番用依存関係:開発用依存関係と本番用依存関係は、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

28-4. Gitの基本連携

図152 Gitの基本連携

28-4. Gitの基本連携では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • Gitとは何か:変更履歴を管理するツールです。
  • 変更履歴を管理する理由:変更履歴を管理する理由は、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • コミット:変更を履歴として記録する操作です。
  • ブランチ:作業の流れを分ける仕組みです。
  • .gitignore:Python標準の正規表現モジュールです。検索や抽出に使います。
  • 仮想環境や秘密情報を含めない:プロジェクトごとに利用するパッケージを分離する仕組みです。依存関係の衝突を防ぎます。

28-5. 配布と実行

図153 配布と実行

28-5. 配布と実行では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • スクリプトとして配布する:スクリプトとして配布するは、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • パッケージとして配布する概要:複数のモジュールをまとめたものです。機能を整理して再利用しやすくします。
  • 実行手順をREADMEにまとめる:プロジェクトの目的、セットアップ、実行方法を説明する文書です。
  • 他の人が再現できる状態にする:他の人が再現できる状態にするは、第28章 Pythonプロジェクトの構成と配布を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

project/
  README.md
  requirements.txt
  src/
  tests/

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 小規模プロジェクト構成を作る
  • requirements.txtを作る
  • .gitignoreを作る
  • READMEに実行手順を書く

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第29章 業務自動化ミニプロジェクト

この章で学ぶこと

本章では、業務自動化のミニプロジェクトを通じて、これまでの知識を実務の流れにつなげます。

主な学習項目は次のとおりです。

  • 29-1. ミニプロジェクトの目的
  • 29-2. 題材1:CSVチェックツール
  • 29-3. 題材2:ログ集計ツール
  • 29-4. 題材3:API連携レポート作成ツール
  • 29-5. 実装手順の分解

なぜ必要なのか

応用・運用領域では、正しく動くことに加えて、安全性、効率、再実行性、監視しやすさを重視します。

29-1. ミニプロジェクトの目的

図154 業務自動化ミニプロジェクトの全体像

29-1. ミニプロジェクトの目的では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • これまでの知識をつなげる:これまでの知識をつなげるは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 実務に近い流れを体験する:実務に近い流れを体験するは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 仕様を小さく分けて実装する:仕様を小さく分けて実装するは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

29-2. 題材1:CSVチェックツール

図155 CSVチェックツール

29-2. 題材1:CSVチェックツールでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 入力CSVを読み込む:カンマ区切りで表形式データを表す形式です。業務データでよく使います。
  • 必須列を確認する:必須列を確認するは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 空欄を検出する:空欄を検出するは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 日付形式を検証する:評価すると値になるものです。計算式や比較式は式です。
  • エラー一覧をCSVに出力する:カンマ区切りで表形式データを表す形式です。業務データでよく使います。
  • ログを出す:実行中の情報を記録するものです。障害調査に欠かせません。
  • テストを書く:テストを書くは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

29-3. 題材2:ログ集計ツール

図156 ログ集計ツール

29-3. 題材2:ログ集計ツールでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • ログファイルを読み込む:実行中の情報を記録するものです。障害調査に欠かせません。
  • エラーレベルを抽出する:エラーレベルを抽出するは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 日付別に集計する:日付別に集計するは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 結果をCSVに出力する:カンマ区切りで表形式データを表す形式です。業務データでよく使います。
  • CLI引数で対象ファイルを指定する:ターミナルからコマンドで操作する仕組みです。自動化やバッチ処理に向いています。
  • 例外処理を入れる:実行中に発生する通常ではない状況です。適切に捕捉して処理します。

29-4. 題材3:API連携レポート作成ツール

図157 API連携レポート作成ツール

29-4. 題材3:API連携レポート作成ツールでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • APIからデータを取得する:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • JSONを解析する:辞書やリストに近い形でデータを表す形式です。APIや設定ファイルで頻繁に使います。
  • 必要な項目を抽出する:必要な項目を抽出するは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • CSVまたはExcelに出力する:カンマ区切りで表形式データを表す形式です。業務データでよく使います。
  • タイムアウトとリトライを考慮する:一時的な失敗に対して処理を再試行することです。
  • 秘密情報を環境変数で扱う:値に名前を付けて再利用できるようにする仕組みです。

29-5. 実装手順の分解

図158 実装手順の分解

29-5. 実装手順の分解では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 要件を確認する:要件を確認するは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 入力と出力を決める:入力と出力を決めるは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 関数に分ける:処理に名前を付けて再利用できるようにする部品です。
  • エラー処理を設計する:処理をどの単位に分け、どこに責務を持たせるかを考える項目です。保守性とテストしやすさに直結します。
  • ログを設計する:実行中の情報を記録するものです。障害調査に欠かせません。
  • テストを書く:テストを書くは、第29章 業務自動化ミニプロジェクトを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • READMEを書く:プロジェクトの目的、セットアップ、実行方法を説明する文書です。

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 既存コードに機能を追加する
  • 不具合を修正する
  • テストケースを追加する
  • 使い方をREADMEにまとめる

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第30章 Webアプリケーション開発の入口

この章で学ぶこと

本章では、PythonによるWebアプリケーション開発の入口を学びます。APIサーバーを作る全体像を理解します。

主な学習項目は次のとおりです。

  • 30-1. Webアプリケーションとは何か
  • 30-2. Webフレームワークの概要
  • 30-3. FastAPIの入口
  • 30-4. 入力検証と型
  • 30-5. Webアプリ実務の基本

なぜ必要なのか

応用・運用領域では、正しく動くことに加えて、安全性、効率、再実行性、監視しやすさを重視します。

30-1. Webアプリケーションとは何か

図159 Webアプリケーションの基本

30-1. Webアプリケーションとは何かでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • ブラウザとサーバー:ブラウザとサーバーは、第30章 Webアプリケーション開発の入口を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • リクエストとレスポンス:クライアントからサーバーへ送る要求です。
  • バックエンドの役割:バックエンドの役割は、第30章 Webアプリケーション開発の入口を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • PythonがWeb開発で使われる理由:PythonがWeb開発で使われる理由は、第30章 Webアプリケーション開発の入口を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

30-2. Webフレームワークの概要

図160 Webフレームワークの役割

30-2. Webフレームワークの概要では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • フレームワークとは何か:アプリケーションの構造や開発の流れまで含めて提供する枠組みです。Web開発などでよく使います。
  • Flask:軽量で始めやすいPythonのWebフレームワークです。
  • FastAPI:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • Django:多機能なPythonのWebフレームワークです。
  • それぞれの特徴と使い分け:それぞれの特徴と使い分けは、第30章 Webアプリケーション開発の入口を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

30-3. FastAPIの入口

図161 FastAPIの入口

30-3. FastAPIの入口では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • ルーティング:URLと処理を結びつけることです。
  • エンドポイント:APIの入り口となるURLと処理の組です。
  • パスパラメータ:パスパラメータは、第30章 Webアプリケーション開発の入口を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • クエリパラメータ:クエリパラメータは、第30章 Webアプリケーション開発の入口を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • リクエストボディ:クライアントからサーバーへ送る要求です。
  • レスポンス:サーバーからクライアントへ返る応答です。

30-4. 入力検証と型

図162 入力検証と型

30-4. 入力検証と型では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 型ヒントを使った入力検証:変数や関数に型情報を付ける仕組みです。コード理解と静的解析に役立ちます。
  • Pydanticの概要:型情報を使ってデータ検証や変換を行うライブラリです。
  • エラーレスポンス:サーバーからクライアントへ返る応答です。
  • API仕様書の自動生成:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。

30-5. Webアプリ実務の基本

図163 Webアプリ実務の基本

30-5. Webアプリ実務の基本では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 設定管理:設定管理は、第30章 Webアプリケーション開発の入口を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ログ:実行中の情報を記録するものです。障害調査に欠かせません。
  • 例外処理:実行中に発生する通常ではない状況です。適切に捕捉して処理します。
  • DB接続:DB接続は、第30章 Webアプリケーション開発の入口を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 認証の概要:詳細に入りすぎず、何のために存在するかを把握します。必要になったときに深掘りできる状態を目指します。
  • テスト:テストは、第30章 Webアプリケーション開発の入口を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def hello():
    return {"message": "Hello"}

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 簡単なAPIを作る
  • JSONを返す
  • 入力値を検証する
  • SQLiteと連携する入口を作る

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第31章 Pythonと運用・自動化

この章で学ぶこと

本章では、運用・自動化でPythonを使う考え方を学びます。定期実行、ログ、再実行性が重要です。

主な学習項目は次のとおりです。

  • 31-1. 運用でPythonを使う場面
  • 31-2. スケジューリング
  • 31-3. バッチ処理の設計
  • 31-4. 障害に強い処理
  • 31-5. 監視しやすいプログラム

なぜ必要なのか

応用・運用領域では、正しく動くことに加えて、安全性、効率、再実行性、監視しやすさを重視します。

31-1. 運用でPythonを使う場面

図164 運用でPythonを使う場面

31-1. 運用でPythonを使う場面では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 定期処理:定期処理は、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ログ監視:実行中の情報を記録するものです。障害調査に欠かせません。
  • ファイル整理:ファイル整理は、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • バックアップ補助:バックアップ補助は、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • API監視:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • レポート作成:手を動かして実装する項目です。小さく動かし、結果を確認しながら理解します。

31-2. スケジューリング

図165 スケジューリング

31-2. スケジューリングでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • OSのスケジューラ概要:詳細に入りすぎず、何のために存在するかを把握します。必要になったときに深掘りできる状態を目指します。
  • cronの考え方:Linuxなどで使われる定期実行の仕組みです。
  • タスクスケジューラの考え方:Windowsで使われる定期実行の仕組みです。
  • 実行環境とパスの注意:実務で不具合や手戻りにつながりやすい観点です。仕組みだけでなく、失敗例も意識して理解します。

31-3. バッチ処理の設計

図166 バッチ処理の設計

31-3. バッチ処理の設計では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 入力:入力は、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 処理:処理は、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 出力:出力は、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ログ:実行中の情報を記録するものです。障害調査に欠かせません。
  • 終了コード:プログラムの成功や失敗を呼び出し元に伝える数値です。
  • 再実行性:失敗後に再実行してもデータが壊れにくい性質です。

31-4. 障害に強い処理

図167 障害に強い処理

31-4. 障害に強い処理では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 途中失敗を想定する:途中失敗を想定するは、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • リトライ:一時的な失敗に対して処理を再試行することです。
  • タイムアウト:一定時間応答がなければ失敗扱いにする設定です。
  • 一時ファイル:一時ファイルは、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 処理済み管理:処理済み管理は、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 二重実行防止の概要:詳細に入りすぎず、何のために存在するかを把握します。必要になったときに深掘りできる状態を目指します。

31-5. 監視しやすいプログラム

図168 監視しやすいプログラム

31-5. 監視しやすいプログラムでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • ログに残すべき情報:実行中の情報を記録するものです。障害調査に欠かせません。
  • エラー通知の概要:詳細に入りすぎず、何のために存在するかを把握します。必要になったときに深掘りできる状態を目指します。
  • メトリクスの考え方:処理件数、エラー件数、実行時間などを数値化したものです。
  • 実行結果を確認できる出力:実行結果を確認できる出力は、第31章 Pythonと運用・自動化を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

from pathlib import Path
tmp = Path("result.tmp")
out = Path("result.txt")
tmp.write_text("結果", encoding="utf-8")
tmp.replace(out)

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 定期実行を想定したバッチを作る
  • 終了コードを返す
  • 失敗時にログを出す
  • 再実行しても壊れにくい処理にする

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

第32章 総合演習:実務レベルのPythonツールを作る

この章で学ぶこと

本章では、総合演習として実務レベルのPythonツールを設計、実装、テスト、仕上げまで進めます。

主な学習項目は次のとおりです。

  • 32-1. 総合演習の目的
  • 32-2. 作成するツールの仕様
  • 32-3. 設計
  • 32-4. 実装
  • 32-5. テスト
  • 32-6. 仕上げ

なぜ必要なのか

応用・運用領域では、正しく動くことに加えて、安全性、効率、再実行性、監視しやすさを重視します。

32-1. 総合演習の目的

図169 総合演習の目的

32-1. 総合演習の目的では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 基礎文法を実務コードに結びつける:基礎文法を実務コードに結びつけるは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 要件から設計、実装、テスト、運用まで体験する:処理をどの単位に分け、どこに責務を持たせるかを考える項目です。保守性とテストしやすさに直結します。
  • 小さく完成させる力を身につける:小さく完成させる力を身につけるは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

32-2. 作成するツールの仕様

図170 作成するツールの仕様

32-2. 作成するツールの仕様では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 入力データを読み込む:外部データとの入出力に関わる項目です。文字コード、形式、エラー時の扱いも合わせて考えます。
  • 入力チェックを行う:入力チェックを行うは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • データを変換する:データを変換するは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 集計する:集計するは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 結果を出力する:結果を出力するは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ログを出す:実行中の情報を記録するものです。障害調査に欠かせません。
  • 設定ファイルを使う:設定ファイルを使うは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • CLI引数を受け取る:ターミナルからコマンドで操作する仕組みです。自動化やバッチ処理に向いています。
  • テストを用意する:テストを用意するは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

32-3. 設計

図171 設計

32-3. 設計では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • フォルダ構成:フォルダ構成は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • モジュール分割:Pythonファイルを部品として利用する仕組みです。処理を分割し、保守しやすくします。
  • 関数設計:処理に名前を付けて再利用できるようにする部品です。
  • クラス設計:オブジェクトの設計図です。関連するデータと処理をまとめます。
  • 例外設計:実行中に発生する通常ではない状況です。適切に捕捉して処理します。
  • ログ設計:実行中の情報を記録するものです。障害調査に欠かせません。
  • テスト方針:テスト方針は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

32-4. 実装

図172 実装

32-4. 実装では、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 入力処理:入力処理は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • バリデーション:入力値がルールに合うか確認することです。
  • 変換処理:変換処理は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 集計処理:集計処理は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 出力処理:出力処理は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • CLI処理:ターミナルからコマンドで操作する仕組みです。自動化やバッチ処理に向いています。
  • ログ出力:実行中の情報を記録するものです。障害調査に欠かせません。
  • エラー処理:エラー処理は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

32-5. テスト

図173 テスト

32-5. テストでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • 正常系テスト:正常系テストは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 異常系テスト:異常系テストは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 境界値テスト:境界値テストは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • ファイル入出力のテスト:ファイル入出力のテストは、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • モックを使ったテスト:外部APIやDBなどをテスト用の偽物に置き換える仕組みです。

32-6. 仕上げ

図174 仕上げ

32-6. 仕上げでは、実務でPythonを書くときに必要な考え方を整理します。単語だけを覚えるのではなく、どの場面で使い、どのような失敗を避けるための知識なのかを意識します。

  • README作成:プロジェクトの目的、セットアップ、実行方法を説明する文書です。
  • 実行手順の整理:実行手順の整理は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 依存ライブラリ整理:再利用できる機能の集まりです。自分で一から作らず、信頼できる部品を利用できます。
  • フォーマッタ実行:コードの見た目を自動で整えるツールです。チーム開発で有効です。
  • 不要コード削除:不要コード削除は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 今後の改善案:今後の改善案は、第32章 総合演習:実務レベルのPythonツールを作るを実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。

実践コード例

次のコードは、この章の要点を小さく確認するための例です。まずそのまま実行し、その後で値や条件を少し変更して動きを確認します。

def aggregate_sales(rows):
    summary = {}
    for row in rows:
        summary[row["date"]] = summary.get(row["date"], 0) + row["amount"]
    return summary

初心者が間違えやすいポイント

動くことだけで満足せず、読みやすさ、エラー時の動作、実務での保守性を確認します。

実務での使いどころ

この章の内容は、単独で覚えるよりも、後続章のファイル処理、API連携、DB操作、CLI、テスト、ログと組み合わせることで価値が出ます。学習時点では小さなコードで理解し、実務では安全性と保守性を意識して使います。

章末演習

  • 32-1. 総合演習の目的について、短いサンプルコードを書いて動作を確認してください。
  • 32-2. 作成するツールの仕様について、短いサンプルコードを書いて動作を確認してください。
  • 32-3. 設計について、短いサンプルコードを書いて動作を確認してください。
  • 32-4. 実装について、短いサンプルコードを書いて動作を確認してください。

確認チェックリスト

  • この章の専門用語を自分の言葉で説明できる
  • サンプルコードを自分の環境で実行できる
  • エラーが出た場合に、メッセージを読んで原因を推測できる
  • 似た処理を自分で少し変更して書ける
  • 実務のどの場面で使うか説明できる

付録

付録A Pythonチートシート

図175 Pythonチートシート

よく使う構文を短く確認するための一覧です。詳細な理由や注意点は各章で確認し、ここでは思い出すために使います。

# 表示
print("Hello")

# 変数
name = "田中"
age = 30

# 条件分岐
if age >= 18:
    print("成人")
else:
    print("未成年")

# ループ
for i in range(3):
    print(i)

# 関数
def add(a, b):
    return a + b

# 例外処理
try:
    number = int("123")
except ValueError:
    print("変換できません")

付録B よくあるエラー早見表

図176 よくあるエラー早見表

エラーは原因を教える情報です。最後の行に表示されるエラー名とメッセージから確認します。

  • SyntaxError:文法ミスです。コロン、括弧、クォートの閉じ忘れを確認します。
  • IndentationError:インデントのずれです。スペース4つを基本にそろえます。
  • NameError:未定義の名前を使っています。変数名や関数名のスペルを確認します。
  • TypeError:型に合わない操作です。文字列と数値の混在などを確認します。
  • ValueError:型は合っているが値が不正です。数値変換できない文字列などが原因です。
  • IndexError:リストなどの範囲外を参照しています。インデックスを確認します。
  • KeyError:辞書に存在しないキーを参照しています。get()の利用も検討します。
  • FileNotFoundError:指定したファイルが存在しません。パスと実行ディレクトリを確認します。
  • ModuleNotFoundError:モジュールが見つかりません。インストール状況と仮想環境を確認します。

付録C 標準ライブラリ逆引き

図177 標準ライブラリ逆引き

目的別に使う標準ライブラリを確認します。標準ライブラリで足りる場合は、外部依存を増やさずに済みます。

  • 日付を扱うdatetimeを使います。文字列変換、日付計算、表示形式変更に使います。
  • ファイルを扱うpathlibを使います。パス結合、存在確認、ファイル一覧取得に便利です。
  • JSONを扱うjsonを使います。APIレスポンスや設定ファイルでよく使います。
  • CSVを扱うcsvを使います。行単位、辞書形式で読み書きできます。
  • ランダム値を作るrandomを使います。テストデータや簡単な抽選処理に使えます。
  • コマンドライン引数を扱うargparseを使います。業務CLIの基本です。
  • サブプロセスを実行するsubprocessを使います。外部コマンド実行時は入力値に注意します。
  • ログを出すloggingを使います。運用時の調査に必要です。

付録D 実務で使う設計チェックリスト

図178 実務で使う設計チェックリスト

実務コードを作成・レビューするときに確認する項目です。問題が起きる前に設計段階で確認します。

  • 入力値を検証しているか:満たしていない場合、障害調査、セキュリティ、保守性、再実行性のどこに影響するかを確認します。
  • 例外処理があるか:満たしていない場合、障害調査、セキュリティ、保守性、再実行性のどこに影響するかを確認します。
  • ログがあるか:満たしていない場合、障害調査、セキュリティ、保守性、再実行性のどこに影響するかを確認します。
  • 設定値を外出ししているか:満たしていない場合、障害調査、セキュリティ、保守性、再実行性のどこに影響するかを確認します。
  • 秘密情報を安全に扱っているか:満たしていない場合、障害調査、セキュリティ、保守性、再実行性のどこに影響するかを確認します。
  • テストしやすい構造か:満たしていない場合、障害調査、セキュリティ、保守性、再実行性のどこに影響するかを確認します。
  • READMEがあるか:満たしていない場合、障害調査、セキュリティ、保守性、再実行性のどこに影響するかを確認します。
  • 再実行しても壊れにくいか:満たしていない場合、障害調査、セキュリティ、保守性、再実行性のどこに影響するかを確認します。

付録E 用語集

図179 用語集の使い方

初出の専門用語を再確認するための一覧です。説明できない用語は、該当章に戻ってコード例と一緒に確認します。

  • 変数:値に名前を付けて再利用できるようにする仕組みです。
  • :型は、付録E 用語集を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • 関数:処理に名前を付けて再利用できるようにする部品です。
  • メソッド:オブジェクトにひもづいた関数のような処理です。文字列やリストに多く用意されています。
  • クラス:オブジェクトの設計図です。関連するデータと処理をまとめます。
  • インスタンス:クラスから作られた具体的なオブジェクトです。
  • モジュール:Pythonファイルを部品として利用する仕組みです。処理を分割し、保守しやすくします。
  • パッケージ:複数のモジュールをまとめたものです。機能を整理して再利用しやすくします。
  • ライブラリ:再利用できる機能の集まりです。自分で一から作らず、信頼できる部品を利用できます。
  • フレームワーク:アプリケーションの構造や開発の流れまで含めて提供する枠組みです。Web開発などでよく使います。
  • API:別のプログラムから機能やデータを利用するための窓口です。システム連携では必須の考え方です。
  • CLI:ターミナルからコマンドで操作する仕組みです。自動化やバッチ処理に向いています。
  • 例外:実行中に発生する通常ではない状況です。適切に捕捉して処理します。
  • ログ:実行中の情報を記録するものです。障害調査に欠かせません。
  • テスト:テストは、付録E 用語集を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • デプロイ:デプロイは、付録E 用語集を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • トランザクション:複数の処理をまとめて成功または失敗にする仕組みです。
  • バリデーション:入力値がルールに合うか確認することです。
  • シリアライズ:シリアライズは、付録E 用語集を実務で使える知識にするための重要な観点です。意味、使いどころ、注意点をセットで理解します。
  • デシリアライズ:保存・送信用の形式からオブジェクトを復元する処理です。信頼できないデータには注意します。

最終確認

本資料を一通り終えたら、次の状態を目指します。

  • Pythonの基本文法を説明できる
  • 変数、型、条件分岐、ループ、関数を使って小さな処理を書ける
  • リスト、辞書、集合、ネスト構造を扱える
  • エラーを読み、例外処理を書ける
  • ファイル、CSV、JSONを読み書きできる
  • クラス、型ヒント、ジェネレータ、デコレータの概要を説明できる
  • 読みやすくテストしやすいコードを意識できる
  • ログ、設定、秘密情報を適切に扱える
  • CLI、API、DB、Excel処理の基本を実装できる
  • セキュリティ、パフォーマンス、運用を意識できる
  • 小規模な実務ツールを設計、実装、テスト、説明できる
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?