見出し画像

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次元リストの処理や九九の表など、多次元データの扱いに最適です。

いいなと思ったら応援しよう!