制御構文: 条件とループ

if/match で分岐。for/while でループ。

if/elif/else
条件分岐の基本。
match
Python 3.10+。パターンマッチング。
enumerate
インデックス付きでループ。

条件分岐

信号機と専用レーン (Traffic Signals & Lanes)

if 文は「信号機」です。青なら進む(実行)、赤なら止まる(スキップ)。そしてインデント(字下げ)は「専用レーン」です。Pythonでは、同じレーン(インデント位置)にいるコードだけが、同じグループとして扱われます。レーンをはみ出すと、事故(エラー)になります。

他の言語では `{ }` でブロックを囲みますが、Pythonは「インデント」でブロックを表現します。これにより、「見た目(読みやすさ)」と「論理構造」が必ず一致します。誰が書いても読みやすいコードになる強力なルールです。

if, match
# if文
if x > 0:
print("positive")
elif x < 0:
print("negative")
else:
print("zero")
# 三項演算子
result = "positive" if x > 0 else "non-positive"
# match文 (Python 3.10+)
match command:
case "start":
start()
case "stop":
stop()
case _: # デフォルト
unknown()
Bad
# ❌ Bad: ネストが深い
if a:
if b:
if c:
do_something()
Good
# ✅ Good: 早期リターン
if not a:
return
if not b:
return
if not c:
return
do_something()

ループ

for, while, break/continue
# for ループ
for i in range(5):
print(i) # 0, 1, 2, 3, 4
for item in items:
process(item)
for i, item in enumerate(items):
print(f"{i}: {item}")
# while ループ
while condition:
do_something()
# break / continue
for n in range(10):
if n == 5:
break # ループ終了
if n % 2 == 0:
continue # 次へスキップ
print(n)
# else 節(正常終了時のみ)
for item in items:
if item == target:
break
else:
print("Not found")
Tip: for else は break しなかった時だけ実行。検索処理に便利。

合格ライン

enumerate を使える
match 文を使える

演習課題

課題1: enumerate
enumerate を使ってインデックス付きでループしてください。
課題2: match 文
match 文でパターンマッチングを実装してください。