[Python] for文をrange関数で範囲ループする方法を解説
Pythonのfor
文は、range
関数を使用して特定の範囲内でループを実行することができます。
range
関数は、開始値、終了値、ステップ値を指定することで、数値のシーケンスを生成します。
例えば、for i in range(5):
と記述すると、0から4までの整数を順にi
に代入し、ループを5回繰り返します。
開始値やステップ値を指定することで、より柔軟なループを作成することも可能です。
for文とrange関数の基本
for文の基本構文
for文は、指定した範囲やリストの要素を順に取り出して処理を行うための構文です。
基本的な構文は以下の通りです。
for 変数 in iterable:
処理
for文の基本的な使い方
for文を使うことで、リストやタプル、文字列などの要素を一つずつ取り出して処理を行うことができます。
以下は、リストの要素を出力する例です。
fruits = ["りんご", "ばなな", "みかん"]
for fruit in fruits:
print(fruit)
りんご
ばなな
みかん
range関数の基本構文
range関数
は、指定した範囲の整数を生成するための関数です。
基本的な構文は以下の通りです。
range(開始, 終了, ステップ)
range関数の基本的な使い方
range関数
を使うことで、指定した範囲の整数を生成し、for文と組み合わせてループ処理を行うことができます。
以下は、0から4までの整数を出力する例です。
for i in range(5):
print(i)
0
1
2
3
4
range関数の引数について
range関数
には、以下の引数があります。
引数名 | 説明 |
---|---|
開始 | 生成する整数の開始値(デフォルトは0) |
終了 | 生成する整数の終了値(この値は含まれない) |
ステップ | 整数の増加量(デフォルトは1) |
例えば、range(1, 10, 2)
は1から9までの奇数を生成します。
for文とrange関数を組み合わせる
基本的な使い方
0から指定した数までのループ
for文とrange関数
を組み合わせることで、0から指定した数までのループを簡単に実行できます。
以下は、0から5までの整数を出力する例です。
for i in range(6):
print(i)
0
1
2
3
4
5
指定した範囲内でのループ
range関数
を使って、任意の範囲内でループを行うことも可能です。
以下は、3から8までの整数を出力する例です。
for i in range(3, 9):
print(i)
3
4
5
6
7
8
ステップ数を指定する
ステップ数を指定したループの例
range関数
では、ステップ数を指定することができます。
以下は、0から10までの偶数を出力する例です。
for i in range(0, 11, 2):
print(i)
0
2
4
6
8
10
負のステップ数を使ったループ
負のステップ数を指定することで、逆順にループを行うこともできます。
以下は、10から1までの整数を出力する例です。
for i in range(10, 0, -1):
print(i)
10
9
8
7
6
5
4
3
2
1
ネストされたfor文とrange関数
二重ループの例
for文をネストすることで、二重ループを実現できます。
以下は、2次元リストの要素を出力する例です。
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in range(len(matrix)):
for col in range(len(matrix[row])):
print(matrix[row][col], end=' ')
print()
1 2 3
4 5 6
7 8 9
三重ループの例
さらに、三重ループを使って3次元リストの要素を出力することもできます。
以下は、3次元リストの要素を出力する例です。
three_d_array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
for i in range(len(three_d_array)):
for j in range(len(three_d_array[i])):
for k in range(len(three_d_array[i][j])):
print(three_d_array[i][j][k], end=' ')
print()
1 2
3 4
5 6
7 8
応用例
リストのインデックスを使ったループ
リストの要素とインデックスを同時に取得する
リストの要素とそのインデックスを同時に取得するには、range関数
を使ってインデックスを生成し、リストの要素にアクセスします。
以下は、リストの要素とインデックスを出力する例です。
fruits = ["りんご", "ばなな", "みかん"]
for i in range(len(fruits)):
print(f"インデックス: {i}, 要素: {fruits[i]}")
インデックス: 0, 要素: りんご
インデックス: 1, 要素: ばなな
インデックス: 2, 要素: みかん
enumerate関数との併用
enumerate関数
を使うことで、リストの要素とインデックスを同時に取得することができます。
以下は、enumerate
を使った例です。
fruits = ["りんご", "ばなな", "みかん"]
for index, fruit in enumerate(fruits):
print(f"インデックス: {index}, 要素: {fruit}")
インデックス: 0, 要素: りんご
インデックス: 1, 要素: ばなな
インデックス: 2, 要素: みかん
条件付きループ
if文と組み合わせたループ
for文の中でif文を使うことで、特定の条件を満たす要素だけを処理することができます。
以下は、リストの中から偶数だけを出力する例です。
numbers = [1, 2, 3, 4, 5, 6]
for number in numbers:
if number % 2 == 0:
print(number)
2
4
6
break文とcontinue文の使い方
break
文を使うとループを途中で終了させることができ、continue
文を使うと次のループにスキップすることができます。
以下は、1から10までの数の中で、5を見つけたらループを終了する例です。
for i in range(1, 11):
if i == 5:
break
print(i)
1
2
3
4
次に、continue
文を使って、偶数をスキップする例です。
for i in range(1, 11):
if i % 2 == 0:
continue
print(i)
1
3
5
7
9
数値の操作
素数を見つけるループ
for文を使って、指定した範囲内の素数を見つけることができます。
以下は、1から20までの素数を出力する例です。
for num in range(2, 21):
is_prime = True
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(num)
2
3
5
7
11
13
17
19
フィボナッチ数列を生成するループ
フィボナッチ数列を生成するために、for文を使うこともできます。
以下は、最初の10項を出力する例です。
a, b = 0, 1
for _ in range(10):
print(a, end=' ')
a, b = b, a + b
0 1 1 2 3 5 8 13 21 34
まとめ
この記事では、Pythonのfor
文とrange関数
を使ったループ処理の基本から応用例までを解説しました。
特に、リストのインデックスを使ったループや条件付きループ、数値の操作に関する具体的な例を通じて、実践的な知識を身につけることができたと思います。
ぜひ、これらの知識を活用して、Pythonプログラミングのスキルをさらに向上させてください。