2 Python プログラミング基礎

第 2 章の目的は 1 つです。小さなアイデアを、実行でき、データを保存でき、エラーを扱え、説明できる Python プログラムにすることです。
まず Python の作業ループを見る
Section titled “まず Python の作業ループを見る”
先に図を見てください。入門段階の Python プログラムは、ほとんどこの流れです。
Python が AI の主流であり続けるのは、この同じ流れが後でデータ整理、モデル学習、RAG 検索、API ラップ、Agent ツールになるからです。
学習順序とタスクリスト
Section titled “学習順序とタスクリスト”このチェックリストを、本章の学習ガイド兼タスクリストとして使います。順番に進め、それぞれのステップで確認できる成果物を残します。
-
2.1.1 Python イントロダクション から 2.1.5 制御フロー 手を動かすこと:変数、入出力、条件分岐、ループの小さなスクリプトを入力して変える。 残す証拠:期待どおりに出力する 5 つのスクリプト。
-
2.1.6 データ構造 手を動かすこと:同じタスクリストを、リスト・辞書・JSON 形のオブジェクトで保存してみる。 残す証拠:どの構造が合うかを説明するメモ。
-
2.1.7 関数の基礎 と 2.1.8 モジュールとパッケージ 手を動かすこと:繰り返し処理を関数とモジュールへ分ける。 残す証拠:入力と戻り値が明確なスクリプト。
-
2.2.2 例外処理 と 2.2.3 ファイル操作 手を動かすこと:データを保存し、読み戻し、ファイル欠落や破損を扱う。 残す証拠:JSON/テキストファイルとデバッグメモ 1 件。
-
2.2.1 オブジェクト指向、2.2.5 イテレータ、2.2.6 型ヒント 手を動かすこと:まず軽く読み、プロジェクトで構造や明確さが必要になったら戻る。 残す証拠:リファクタした関数またはクラス。
-
2.3.1 タスク管理ツール から 2.3.4 AI API 体験 手を動かすこと:データ保存、データ収集、API 提供、AI API 呼び出しの小プロジェクトを作る。 残す証拠:README の実行コマンド付きプロジェクトフォルダ。
-
2.3.5 ハンズオンワークショップ 手を動かすこと:CLI コマンド、JSON 永続化、統計、レポート出力をつなげる。 残す証拠:
ch02_output/とターミナル出力。
本章でよく使う用語:
| 用語 | 意味 |
|---|---|
CLI | Command-Line Interface:文字コマンドで操作するプログラム |
I/O | Input/Output:データが入り、結果が出る流れ |
JSON | タスク、設定、API レスポンスを保存しやすい入れ子のテキスト形式 |
API | あるプログラムが別のプログラムを呼び出す入口 |
SDK | API を使いやすい関数として包んだライブラリ |
最初の実行ループ
Section titled “最初の実行ループ”空の練習フォルダで次のコードを実行します。サードパーティパッケージなしで、最小の JSON タスク管理ツールを作ります。
import jsonfrom pathlib import Path
DATA = Path("tasks.json")
def load_tasks(): if not DATA.exists(): return [] try: return json.loads(DATA.read_text(encoding="utf-8")) except json.JSONDecodeError: return []
def save_tasks(tasks): DATA.write_text(json.dumps(tasks, ensure_ascii=False, indent=2), encoding="utf-8")
tasks = load_tasks()tasks.append({"title": "Python のファイル読み書きを学ぶ", "done": False})save_tasks(tasks)print(f"{len(tasks)} 件のタスクを保存しました")期待される出力:
1 件のタスクを保存しました2 回続けて実行してください。2 回目は 2 件のタスクを保存しました と出るはずです。これで、状態を保存して読み戻せることが確認できます。
この出力の読み方
Section titled “この出力の読み方”- 1 回目の実行は、プログラムがデータファイルを作れることを示します。
- 2 回目の実行は、前回の状態を読み取り、新しいデータを追加できることを示します。
- 本当の成果物は
tasks.jsonで、表示された行は確認用のサインです。 - 2 回目も
1のままなら、まず作業ディレクトリとファイルパスを確認します。
| レベル | 証明できること |
|---|---|
| 最低合格 | 式、条件分岐、ループ、関数を書き、期待どおりの出力を出せる。 |
| プロジェクト利用可 | データを永続化し、1 つの失敗経路を扱い、README で入力と出力を説明できる。 |
| 深い確認 | 中核ロジックをファイル/API 境界から分け、意図が明確になる場所に型ヒントを置き、変更前に 1 つの境界ケースを確認できる。 |
このページを終えたら、この evidence card を残します。
- プログラムループ
- 入力、処理、出力、そしてあれば保存状態
- コードファイル
- 再実行できる Python ファイルまたは notebook セル
- 出力
- 印字結果、ファイル結果、またはユーザー向けの動作
- 失敗確認
- 構文、パス、型、依存関係、または制御フローの問題
- 期待される成果
- データと AI アプリの準備をする、再実行可能な Python アーティファクト
よくある失敗
Section titled “よくある失敗”| 症状 | 最初に確認すること | よくある修正 |
|---|---|---|
| 構文エラー | エラー行とその 1 行前 | インデント、括弧、引用符、コロンを確認する |
| ファイルが見つからない | 現在の実行ディレクトリ | Path.cwd() を表示し、ファイルを移動するかパスを直す |
| JSON 解析に失敗する | ファイルが空、または形式が壊れていないか | try/except を追加し、失敗時は空リストに戻す |
| 関数が分かりにくい | 入力、戻り値、隠れたグローバル状態 | 1 つの責任を持つ小さな関数に分ける |
| API 呼び出しが失敗する | パラメータ、ステータスコード、返ってきたエラー本文 | レスポンスを安全に表示し、失敗時の処理を書く |
通過チェック
Section titled “通過チェック”次の 5 つに答えられたら、第 3 章へ進めます。
- 何のデータが入り、何の結果が出ますか?
- どんなときにリストより辞書が合いますか?
- ファイルパスはどのフォルダを基準にしていますか?
printとreturnの違いは何ですか?- 他の人が README を見てプロジェクトを実行できますか?
確認の考え方と解説
- プログラムの入力は、コマンドラインの文字列、ユーザー入力、ファイル、API レスポンスなどです。出力は、表示テキスト、戻り値、保存されたファイル、別プログラムへのレスポンスなどです。
- 各項目に名前付きのフィールドが必要なとき、またはキーで素早く探したいときは辞書が向いています。順序のある同種の項目を並べるならリストが向いています。
- 相対パスは現在の作業ディレクトリを基準に解決されます。必ずしもスクリプトのフォルダではありません。
Path.cwd()とPath(__file__).resolve()で確認できます。 print()は人に見せるために表示し、通常はNoneを返します。returnは呼び出し元へ値を返し、再利用、テスト、保存に使えます。- README は、新しいターミナルで依存関係を入れ、コマンドを実行し、期待する出力を再現できれば合格です。
印刷用のチェックリストが必要なときは、2.0 学習ガイドとタスクリスト を使ってください。次の章では、Python で CSV を処理し、データを分析し、データベースに接続します。