【Python】range関数について for文や条件分岐、インデックス処理等での使用例を交えて解説

range関数は、指定した範囲の数値を生成するための組み込み関数です。ループ処理や特定の回数だけ繰り返し処理を行いたい場合に非常に便利です。本記事では、range関数の基本的な使い方や引数の種類、具体的なサンプルコードを交えて解説します。

range関数の基本構文

range関数の基本的な構文は以下の通りです。

range(start, stop, step)

range関数の引数

  • start(任意): 数列の開始値(整数)を指定します。デフォルトは0です。
  • stop: 数列の終了値(整数)を指定します。stopの値は範囲に含まれません。
  • step(任意): 数列の増減値(整数)を指定します。デフォルトは1です。

for文でrange関数を使う例

range関数はfor文と組み合わせて使うことが多いです。ここではfor文での使い方をいくつか紹介します。

1.stopのみを指定するパターン

startstepを省略し、stopのみを指定するパターンです。0からstop未満の連続した整数が生成されます。

コピーしました!

Python
for i in range(5):
    print(i)

出力:

0
1
2
3
4

2.startとstopを指定するパターン

startstepを指定する場合、startからstop未満の整数が生成されます。

コピーしました!

Python
for i in range(2, 6):
    print(i)

出力:

2
3
4
5

3. すべての引数を指定する場合

startからstop未満の数値が、stepごとに生成されます。stepが負の場合、降順で数列が生成されます。

コピーしました!

Python
for i in range(1, 10, 2):
    print(i)

出力:

1
3
5
7
9

stepが負の場合

コピーしました!

Python
for i in range(5, 0, -1):
    print(i)

出力:

5
4
3
2
1

for文以外でrange関数を使う例

range関数はfor文以外でも、リストやタプルに変換したり、特定の回数の繰り返し処理のために利用できます。

1. list関数でリストに変換

rangeオブジェクトをリストに変換することで、数値のリストを作成できます。

コピーしました!

Python
numbers = list(range(5))
print(numbers)

出力:

[0, 1, 2, 3, 4]

2. 条件分岐でrangeを使う

rangeを条件式と組み合わせて使うことで、特定の範囲内で条件を満たすかチェックできます。

コピーしました!

Python
n = 4
if n in range(1, 6):
    print("nは1から5の範囲内です")

出力:

nは1から5の範囲内です

3. インデックス処理

リストの要素に対してインデックスを用いた処理を行う際にrangeを使用できます。

コピーしました!

Python
fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
    print(f"{i}: {fruits[i]}")

出力:

0: apple
1: banana
2: cherry

4. タプルや集合に変換

rangeをタプル型や集合型に変換することも可能です。

コピーしました!

Python
tuple_numbers = tuple(range(3))
set_numbers = set(range(3))

print(tuple_numbers)
print(set_numbers)

出力:

(0, 1, 2)
{0, 1, 2}

range関数の戻り値

range関数は「rangeオブジェクト」を返します。これにより、大量の数値をメモリ上に保持することなく、必要なタイミングで数値を生成するため効率的です。

コピーしました!

Python
r = range(3)
print(type(r))
print(list(r))

出力:

<class 'range'>
[0, 1, 2]

まとめ

range関数は、ループ処理や特定の回数の繰り返しに欠かせない関数です。for文で使う場合は、順方向・逆方向の数列や任意のステップ数の数列を生成できます。また、for文以外でもリスト変換やインデックス操作などで活用できます。

本メディアの記事等の内容には細心の注意を払っておりますが、正確性を保証するものではありません。もし記事内に誤りや不正確な情報がございましたら、こちらのお問い合わせフォームよりご連絡ください。

当メディアは、読者の皆様からのご指摘を大切にし、内容の見直しや修正を行うことで、より有益な記事を提供していく所存です。皆様のご理解とご協力をお願いいたします。