【Python基礎4】繰り返し処理の基本|for文とwhile文を使いこなす方法

繰り返し処理とは?プログラムの自動化に欠かせない要素

繰り返し処理の概要

繰り返し処理とは、同じ処理を何度も実行するための仕組みです。たとえば、1から10までの数を順番に表示したり、リスト内のすべての要素を処理する際に使います。繰り返し処理を使うことで、プログラムを効率的に自動化できます。

なぜ繰り返し処理が重要なのか?

  • 大量のデータを効率的に処理できる
  • 同じ操作を複数回繰り返すことで、手作業を減らせる
  • 条件によって処理を繰り返す柔軟なプログラムが作れる

for文の基本的な使い方

for文の基本構文

for文は、リストや文字列などの「繰り返し可能なデータ構造」を順番に取り出して処理する場合に使います。

構文:

for 変数 in 繰り返し可能なオブジェクト:
    実行する処理

基本的なfor文の例

次の例では、リスト内のすべての要素を順番に表示します。

fruits = ["apple", "banana", "cherry"]

for fruit in fruits:
    print(fruit)

出力:

apple  
banana  
cherry

range関数を使った繰り返し処理

Pythonのrange()関数を使えば、数値の範囲を指定して繰り返し処理を行うことができます。

例: 1から5までの数値を表示するプログラム

for i in range(1, 6):
    print(i)

出力:

1  
2  
3  
4  
5

for文で文字列を1文字ずつ処理する

文字列も繰り返し可能なオブジェクトなので、for文を使って1文字ずつ処理できます。

例:

text = "Python"

for char in text:
    print(char)

出力:

P  
y  
t  
h  
o  
n

while文の基本的な使い方

while文の基本構文

while文は、指定した条件がTrueの間、繰り返し処理を実行します。条件が満たされなくなった時点でループが終了します。

構文:

while 条件式:
    実行する処理

基本的なwhile文の例

次の例では、xが5になるまで数値を表示し続けます。

x = 1

while x <= 5:
    print(x)
    x += 1  # xを1ずつ増やす

出力:

1  
2  
3  
4  
5

無限ループに注意する

while文を使う際には、終了条件が正しく設定されていないと無限にループしてしまうことがあります。無限ループを避けるためには、必ず終了条件が満たされるようにするか、途中でループを終了する仕組みを作りましょう。

無限ループの例(注意! 実行しないでください)

while True:
    print("無限ループ中...")

break文とcontinue文の使い方

break文でループを中断する

break文を使うと、指定した条件が満たされたときにループを途中で終了できます。

例: ループ内で5に到達したら終了する

for i in range(1, 10):
    if i == 5:
        break
    print(i)

出力:

1  
2  
3  
4

continue文で次のループに進む

continue文を使うと、特定の条件でその回の処理をスキップし、次のループに進みます。

例: 偶数のみをスキップする

for i in range(1, 6):
    if i % 2 == 0:
        continue
    print(i)

出力:

1  
3  
5

入れ子(ネスト)されたループ

入れ子構造の基本

for文やwhile文を入れ子にすることで、複数のループを組み合わせた処理ができます。たとえば、2次元リスト(リストの中にリストがある構造)を扱う際に便利です。

例: 2次元リストのすべての要素を表示する

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for row in matrix:
    for element in row:
        print(element, end=" ")
    print()  # 改行

出力:

1 2 3  
4 5 6  
7 8 9

else節を使った繰り返し処理

for文やwhile文とelseの組み合わせ

for文やwhile文には、ループが正常に終了した場合に実行されるelse節を追加できます。ただし、途中でbreak文によってループが終了した場合、else節は実行されません。

例:

for i in range(1, 5):
    print(i)
else:
    print("ループが正常に終了しました")

出力:

1  
2  
3  
4  
ループが正常に終了しました

繰り返し処理を使った具体例

1から100までの偶数の合計を求める

total = 0

for i in range(1, 101):
    if i % 2 == 0:
        total += i

print(f"1から100までの偶数の合計: {total}")

出力:

1から100までの偶数の合計: 2550

リスト内包表記を使ったループの簡略化

Pythonには、リスト内包表記という便利な構文があり、for文を使ったリストの生成を1行で記述できます。

例:

squares = [x**2 for x in range(1, 6)]
print(squares)

出力:

[1, 4, 9, 16, 25]

まとめと次のステップ

for文やwhile文は、プログラムの自動化や大量データの処理において不可欠なツールです。break文やcontinue文を適切に使い、柔軟なループ処理を実現しましょう。また、リスト内包表記やネストされたループを活用することで、より効率的で読みやすいコードが書けるようになります。次のステップとして、関数や例外処理を組み合わせた実用的なプログラムに挑戦してみましょう!