[Python] for文をrange関数で範囲ループする方法を解説

Pythonのfor文は、range関数を使用して特定の範囲内でループを実行することができます。

range関数は、開始値、終了値、ステップ値を指定することで、数値のシーケンスを生成します。

例えば、for i in range(5):と記述すると、0から4までの整数を順にiに代入し、ループを5回繰り返します。

開始値やステップ値を指定することで、より柔軟なループを作成することも可能です。

この記事でわかること
  • for文とrange関数の基本的な使い方
  • リストのインデックスを利用したループ処理
  • 条件付きループの実装方法
  • 数値の操作に関する具体的な例
  • よくある質問への回答と理解の深化

目次から探す

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

よくある質問

range関数の引数に負の値を使うとどうなる?

range関数の引数に負の値を使うと、生成される整数の範囲が逆順になります。

例えば、range(5, 0, -1)と指定すると、5から1までの整数が生成されます。

for文とwhile文の違いは?

for文は、あらかじめ決まった回数やリストの要素をループするのに対し、while文は条件が真である限りループを続けます。

for文は主に反復処理に使われ、while文は条件に基づく処理に適しています。

range関数の代わりに使える他の関数はある?

range関数の代わりに使える関数としては、numpyライブラリのnumpy.arangenumpy.linspaceがあります。

これらの関数は、より柔軟な範囲の生成が可能です。

まとめ

この記事では、Pythonのfor文とrange関数を使ったループ処理の基本から応用例までを解説しました。

特に、リストのインデックスを使ったループや条件付きループ、数値の操作に関する具体的な例を通じて、実践的な知識を身につけることができたと思います。

ぜひ、これらの知識を活用して、Pythonプログラミングのスキルをさらに向上させてください。

当サイトはリンクフリーです。出典元を明記していただければ、ご自由に引用していただいて構いません。

関連カテゴリーから探す

  • 条件分岐 (18)
  • 繰り返し処理 (30)
  • URLをコピーしました!
目次から探す