Pythonのfor文(繰り返し処理)の書き方を、range・リスト・辞書・enumerate・zip・入れ子・break / continue・for-else まで実行しながら確認できます。 下のコードはブラウザ内でそのまま実行でき、「実行エディタで開く」を押すとprogoのオンラインPython実行環境にコードが読み込まれます。
for i in range(1, 6):
print(f"{i} 回目")
# リストを直接ループ
for fruit in ["apple", "banana"]:
print(fruit)
# 合計を求める
total = 0
for n in range(1, 11):
total += n
print("合計:", total)
▶ このコードを実行エディタで開く
for 変数 in 反復可能オブジェクト:。次の行を半角スペース4つでインデントして処理を書きます。range()。range(5) は 0〜4、range(1, 6) は 1〜5(終了値は含まない)。for、条件が満たされる間だけ回すなど回数が読めないときは while を使います。# range(終了) … 0 から 終了-1
for i in range(3):
print(i) # 0, 1, 2
# range(開始, 終了)
for i in range(1, 4):
print(i) # 1, 2, 3
# range(開始, 終了, ステップ)
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8
# 逆順
for i in range(5, 0, -1):
print(i) # 5, 4, 3, 2, 1
fruits = ["りんご", "みかん", "ぶどう"]
for fruit in fruits:
print(fruit)
# 文字列は1文字ずつ
for ch in "abc":
print(ch)
# インデックスも欲しいときは enumerate
for i, fruit in enumerate(fruits):
print(i, fruit) # 0 りんご / 1 みかん / 2 ぶどう
# 開始番号を1にする
for i, fruit in enumerate(fruits, 1):
print(f"{i}番目: {fruit}")
scores = {"国語": 80, "数学": 95, "英語": 70}
for key in scores: # キーだけ
print(key)
for key, value in scores.items(): # キーと値
print(f"{key} は {value} 点")
for value in scores.values(): # 値だけ
print(value)
names = ["田中", "鈴木", "佐藤"]
ages = [20, 25, 30]
for name, age in zip(names, ages):
print(f"{name}: {age}歳")
for x in range(1, 4):
for y in range(1, 4):
print(f"{x} x {y} = {x * y}")
print("---")
for n in range(1, 11):
if n == 5:
break # ループを完全に抜ける
print(n) # 1, 2, 3, 4
for n in range(1, 6):
if n % 2 == 0:
continue # この回だけスキップ
print(n) # 1, 3, 5
# break されずに最後まで回りきったときだけ else が動く
target = 7
for n in [1, 3, 5, 9]:
if n == target:
print("見つかった")
break
else:
print("見つかりませんでした") # ← こちらが実行される
range(1, 10) は 10 を含まない。1〜10 を回すなら range(1, 11)。: の付け忘れ、インデントのズレは IndentationError になります。append / remove で変更すると挙動が乱れます。新しいリストを作るか list(元) のコピーを回します。for i in ... の i)はループ終了後も最後の値が残ります。