Pythonのfor
ループとrange
関数の学習まとめ
1. for
ループとは?
for
ループは、リストや文字列などの「反復可能なオブジェクト(イテラブル)」の要素を1つずつ取り出して処理するためのループ構文です。
基本構文
for 変数 in イテラブル:
処理
- 変数: イテラブル(例: リスト、文字列など)の各要素が順番に代入されます。
- イテラブル: リストや文字列など、反復可能なオブジェクト。
- 処理: 各要素に対して実行するコード。
例1: リストの要素を処理
fruits = ["apple", "grape", "orange", "peach"]
for fruit in fruits:
print(f"I love {fruit}!")
出力
I love apple!
I love grape!
I love orange!
I love peach!
例2: 文字列を処理
for char in "hello world":
print(f"char: {char}")
出力
char: h
char: e
char: l
char: l
char: o
char:
char: w
char: o
char: r
char: l
char: d
用語解説
-
イテレーション:
- 「ループでオブジェクトの要素を1つずつ取り出す処理」のこと。
-
イテラブル:
- リスト、文字列、タプル、辞書など、ループ処理が可能なオブジェクト。
-
in
キーワード:-
for
ループ内のin
は「イテラブルの中の要素を順番に取り出す」意味で、in
演算子とは異なります。
-
2. range
関数とは?
range
関数は、指定された範囲の連続した数値を生成するためのPythonの組み込み関数です。ループ処理で連続した数値を使いたい場合に非常に便利です。
基本構文
range(start, stop, step)
引数の説明
-
start
(省略可能):- 連番の開始値(省略時は0から)。
-
stop
:- 連番の終了値(この値は含まれません)。
-
step
(省略可能):- 連番の間隔(省略時は1)。
例1: 0から9までの連続した数値を生成
for i in range(10):
print(i)
出力
0
1
2
3
4
5
6
7
8
9
例2: 開始値と終了値を指定
for i in range(5, 10):
print(i)
出力
5
6
7
8
9
例3: ステップを指定
for i in range(1, 10, 2):
print(i)
出力
1
3
5
7
9
例4: 逆順の数値を生成
for i in range(10, 0, -2):
print(i)
出力
10
8
6
4
2
3. 応用例
for
ループとrange
の組み合わせ
range
を使うことで、指定された範囲の数値に対して効率的に処理を行えます。
例: 指定回数の文字列出力
for _ in range(5):
print("Hello, Python!")
出力
Hello, Python!
Hello, Python!
Hello, Python!
Hello, Python!
Hello, Python!
FizzBuzz問題
1から50までの数値をループで処理し、以下のルールで出力するプログラム:
- 数字が3で割り切れる場合:
Fizz
- 数字が5で割り切れる場合:
Buzz
- 両方で割り切れる場合:
FizzBuzz
- それ以外の場合はそのまま数字を出力。
for i in range(1, 51):
if i % 3 == 0 and i % 5 == 0:
print(f"{i}: FizzBuzz")
elif i % 3 == 0:
print(f"{i}: Fizz")
elif i % 5 == 0:
print(f"{i}: Buzz")
else:
print(i)
出力例
1
2
3: Fizz
4
5: Buzz
6: Fizz
...
15: FizzBuzz
...
50: Buzz
4. 注意点
-
range
関数の終了値は含まれない:- 例:
range(10)
は 0 から 9 までの範囲。
- 例:
-
start
とstep
の省略:-
range(10)
はrange(0, 10, 1)
と同じ。
-
-
負のステップ:
-
range
に負の値を指定すると逆順の連番を生成できます。
-
まとめ
-
for
ループはリストや文字列などのイテラブルなオブジェクトを操作するのに最適。 -
range
関数は連続した数値を効率的に生成し、for
ループと組み合わせることで柔軟な繰り返し処理を実現。 - 応用例として、特定の条件(例: FizzBuzz)に応じた処理を行うことも可能。