ノートを閉じて想起する:値と束縛(Day 04〜05)
エージェント支援の演習:まず自分の予測と実際の出力を記録すること。その後に限り AI エージェントに説明やレビューを頼んでよく、受けた支援は証拠に必ず記録する。
前提条件
Day 06(独立チェックを含む)を修了していること。行き詰まったらまず Day 06 に戻り、値と束縛については Day 04〜05 を見直す。
学習目標
repr・type・bool が値をどう表すか、再束縛と変更(ミューテーション)がどう違うかを記憶から想起し、初めて見る入力(空文字列や Unicode 文字列を含む)で Python を使って確かめる。
手順
間隔をあけた復習: Day 04〜05 は 2〜3 日前の内容なので、今日は読み返す前に想起する。記憶から引き出してから確かめるほうが、ノートを読み返すより長く定着する。この活動に新しい内容はない。
1. ノートを閉じ、最初のコードの各値について repr、型名、bool の 3 列を予想して書く。最後の行も予測する(len はバイト数ではなく Unicode のコードポイント数を数える)。
2. コードを実行し、予測と違った行に印を付ける。
3. 束縛のコードでも 2 行を予測してから実行する。
4. 食い違いごとに、忘れていた規則とそれを扱う日(値は Day 04、変更と同一性は Day 05)を 1 文で書く。
def show(value):
print(repr(value), type(value).__name__, bool(value))
show(0.0)
show("0.0")
show("")
show("猫")
show([""])
show(None)
print(len("猫"), len("café"))
a = ["猫"]
b = a
a.append("犬")
print(b, a is b)
c = ["猫"]
d = c
c = c + ["犬"]
print(d, c is d)
演習と予測記録
値ごとに 1 行(0.0、"0.0"、""、"猫"、[""]、None)、列は repr / type / bool の予測表を作り、len("猫") と len("café") の予測も加える。次に束縛のコードが出力する 2 行を予測し、どの名前が変更され、どの名前が再束縛されたかを説明する。
偽になる文字列は空文字列だけで、空でない文字列は "0.0" や空白 1 つでも真になる。空文字列を 1 つ含むリストは空ではない。append は 2 つの名前が指している既存のリストそのものを変える。c = c + [...] は新しいリストを作り、名前 c だけを付け替える。
最初のコードの正確な出力:
0.0 float False
'0.0' str True
'' str False
'猫' str True
[''] list True
None NoneType False
1 4
束縛のコードの正確な出力:
['猫', '犬'] True
['猫'] False
理由:0.0 と None は偽で、"" は空文字列なので偽。空でない文字列は "0.0" も含めてすべて真。[""] は要素が 1 つあるリストなので真。"猫" は 1 コードポイント、"café" は 4 コードポイント。束縛のコードでは a と b が同じリストを指すので、append の結果は b からも見え、a is b は True のまま。c + ["犬"] は新しいリストを作るので、d は元の ["猫"] を指したままで c is d は False になる。
実行前に書いた予測が 6 つの値・2 つの len・束縛の 2 行をすべて網羅し、食い違いのそれぞれに 1 文の規則と回復先の日(Day 04 または Day 05)が書かれている。
出典リソースと来歴
The Python Tutorial: More Control Flow Tools
該当セクション・タイムスタンプ: 第 4.2〜4.10 節(for、range、関数の定義)。データ構造は同じチュートリアルの第 5 章
検証バージョンと日付: Python 3.12 ドキュメント(確認日: 2026-10-30)
Python の反復処理、関数、コンテナを確認するための一次資料。
Day 01〜06 の Python の式とファイルシステムの基礎
必要な動作はすべて教材内で説明しているため、オフラインでも完了できます。
比較対象候補リソースと選定評価 (2)
同じ構文を文法レベルで定義するリファレンスです。段階を追って学べる構成のため、チュートリアルの章を選びました。
同じ制御フローを講義のペースで扱う教材です。本カリキュラムではターミナルでの演習を通じて概念を扱っているため、採用を見送りました。