for文による繰り返し
for 文は、リストや文字列などのイテラブル(繰り返し可能なオブジェクト)の各要素に対して処理を繰り返します。
python
# リストのループfor x in [1, 2, 3, 4, 5]: print(x)# 文字列のループfor ch in "Python": print(ch) # P, y, t, h, o, nrange
range() を使うと、整数の連続した値を生成できます。
python
range(5) # 0, 1, 2, 3, 4range(1, 6) # 1, 2, 3, 4, 5range(0, 10, 2) # 0, 2, 4, 6, 8(ステップ2)range(10, 0, -1) # 10, 9, 8, ..., 1(逆順)python
# 1から10まで合計total = 0for i in range(1, 11): total += itotal # 55リストに変換
python
list(range(5)) # [0, 1, 2, 3, 4]list(range(1, 6)) # [1, 2, 3, 4, 5]list(range(0, 10, 2)) # [0, 2, 4, 6, 8]for文の入れ子
for 文の中に for 文を入れることができます(ネスト)。
python
# 九九の表for i in range(1, 4): for j in range(1, 4): print(f"{i} × {j} = {i*j}")python
# 2次元リストの操作matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]for row in matrix: for elem in row: print(elem, end=" ") print() # 改行enumerate
enumerate() を使うと、インデックスと要素を同時に取得できます。
python
fruits = ["apple", "banana", "cherry"]for i, fruit in enumerate(fruits): print(f"{i}: {fruit}")# 0: apple# 1: banana# 2: cherry# 開始番号を指定for i, fruit in enumerate(fruits, start=1): print(f"{i}. {fruit}")# 1. apple# 2. banana# 3. cherryzip
複数のリストを同時にループするには zip() を使います。
python
names = ["田中", "鈴木", "佐藤"]scores = [85, 92, 78]for name, score in zip(names, scores): print(f"{name}: {score}点")# 田中: 85点# 鈴木: 92点# 佐藤: 78点while文による繰り返し
while 文は、条件が True の間、処理を繰り返します。
python
# カウントアップn = 0while n < 5: print(n) n += 1# 0, 1, 2, 3, 4無限ループに注意
python
# 無限ループの例(実行しないこと)while True: print("永遠に繰り返す...") # Ctrl+C で停止break文・continue文
break
break は、ループを途中で終了します。
python
# 最初の偶数を見つけたら終了nums = [1, 3, 7, 4, 9, 2]for n in nums: if n % 2 == 0: print(f"最初の偶数: {n}") break# 最初の偶数: 4continue
continue は、現在の反復をスキップして次の反復に進みます。
python
# 奇数だけを表示for i in range(10): if i % 2 == 0: continue # 偶数はスキップ print(i) # 1, 3, 5, 7, 9while と break の組み合わせ
python
# ユーザー入力をシミュレートdata = ["yes", "no", "maybe", "yes"]idx = 0while True: answer = data[idx] idx += 1 if answer == "yes": print("Yesと答えました!") break# Yesと答えました!練習: 素数判定
整数 n が素数かどうかを返す関数 is_prime(n) を定義してください。
練習: フィボナッチ数列
フィボナッチ数列の最初の n 項をリストで返す関数 fibonacci(n) を定義してください。