![見出し画像](https://assets.st-note.com/production/uploads/images/154544204/rectangle_large_type_2_d31e11df8c161c70784cbcf6fd27c8fa.png?width=1200)
Python(4) 繰り返し処理(while文、for文)
Pythonの繰り返し処理を解説 (while文、for文、ネスト)
1. while文:条件が満たされている間、繰り返し続ける
基本のポイント:
while文は、条件がTrueの間、処理を繰り返すループです。条件がFalseになると、ループは停止します。
• 主な用途: ユーザー入力の確認、特定のイベントが発生するまで処理を繰り返す場合。
基本構文:
while 条件:
実行するコード
実際の例 1: 正しいパスワードが入力されるまで繰り返す
password = ""
while password != "secret":
password = input("パスワードを入力してください: ")
print("正しいパスワードが入力されました!")
ステップ解説:
1. 初期状態では password は空の文字列。
2. ユーザーが “secret” と入力するまで、何度でもループが繰り返されます。
3. 正しいパスワードが入力された瞬間にループが終了し、メッセージが表示されます。
実行結果:
パスワードを入力してください: wrongpass
パスワードを入力してください: tryagain
パスワードを入力してください: secret
正しいパスワードが入力されました!
実際の例 2: カウンタが特定の値になるまで繰り返し
count = 0
while count < 5:
print(f"カウント: {count}")
count += 1
ステップ解説:
1. count が 0 から始まり、ループごとに 1 ずつ増加します。
2. count < 5 の条件がFalseになるまで(つまり、5に達するまで)ループを繰り返します。
3. 最終的に5以上になった時点でループを終了します。
実行結果:
カウント: 0
カウント: 1
カウント: 2
カウント: 3
カウント: 4
2. for文: リストや範囲を使って決まった回数繰り返す
基本のポイント:
for文は、リストや範囲内の要素を順に取り出して処理を行うループです。例えば、リスト内の要素を順番に処理する場合に便利です。
基本構文:
for 変数 in イテラブルオブジェクト:
実行するコード
実際の例 1: リストの中身を一つずつ表示
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
ステップ解説:
1. リスト fruits の最初の要素 "apple" を fruit に代入して表示。
2. 次に "banana"、"cherry" を順に表示。
実行結果:
apple
banana
cherry
実際の例 2: range()を使った指定回数の繰り返し
for i in range(1, 6):
print(f"数値: {i}")
ステップ解説:
1. range(1, 6) は1から5までの整数を生成。
2. 各ループで、i に順番に1から5までの値が代入されます。
3. 5回繰り返し処理され、ループは終了します。
実行結果:
数値: 1
数値: 2
数値: 3
数値: 4
数値: 5
3. ネスト(入れ子): 複数の繰り返し処理を組み合わせる
基本のポイント:
ネストとは、ループの中にさらにループを入れる構造です。これにより、2次元リストや表形式のデータを処理したり、複雑なロジックを実現することができます。
実際の例 1: 2次元リストを処理して表示
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for element in row:
print(element, end=" ")
print() # 改行
ステップ解説:
1. 外側のループは行(row)を処理します。まず最初の行 [1, 2, 3] を処理。
2. 内側のループで各要素(1, 2, 3)を順に表示します。
3. 次に [4, 5, 6]、最後に [7, 8, 9] を処理します。
実行結果:
1 2 3
4 5 6
7 8 9
実際の例 2: 九九の掛け算表を作成
for i in range(1, 10):
for j in range(1, 10):
print(f"{i}×{j}={i*j}", end=" ")
print() # 改行
ステップ解説:
1. 外側のループは i を 1 から 9 まで順番に処理。
2. 内側のループは j を 1 から 9 まで処理し、掛け算の結果を表示。
3. これを9回繰り返して、九九表を完成させます。
実行結果:
1×1=1 1×2=2 1×3=3 ... 1×9=9
2×1=2 2×2=4 2×3=6 ... 2×9=18
...
9×1=9 9×2=18 9×3=27 ... 9×9=81
応用例: 実際のシナリオに基づいたループの使い方
シナリオ 1: 在庫チェックのシステム
products = {
"apple": 50,
"banana": 5,
"cherry": 0,
"date": 12,
"elderberry": 1
}
low_stock = []
for product, quantity in products.items():
if quantity < 10:
low_stock.append(product)
print("在庫が少ない商品:", low_stock)
シナリオ解説:
1. 商品の在庫を管理するシステムで、各商品の在庫数が10未満の場合に「在庫が少ない」と判断します。
2. for文で商品と在庫数を順にチェックし、在庫が10未満の商品を low_stock リストに追加します。
実行結果:
在庫が少ない商品: ['banana', 'cherry', 'elderberry']
まとめ
• while文: 条件がTrueの間繰り返し処理を実行。ユーザー入力の繰り返し確認や、イベントが発生するまでの監視に使います。
• for文: イテラブルオブジェクト(リストや範囲など)の各要素を順番に処理。リストの全要素を処理したり、決まった回数の繰り返しに適しています。
• ネスト: 複数のループを組み合わせて複雑な処理を実現。2次元リストの処理や九九の表など、多次元データの扱いに最適です。