読み込み中...

Pythonで完全制覇!range関数の全活用法10選

Pythonプログラミング初心者がrange関数を完全に理解し使いこなすための完全ガイドのイメージ Python
この記事は約7分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Pythonを学び始めるとき、range関数は最初に出会う基本的な関数の一つです。

しかし、その単純さに騙されてはいけません。

この記事を読むことで、range関数の全活用法を完全に理解し、Pythonプログラミングの幅を大幅に広げることができるようになります。

●Pythonとは

Pythonは、シンプルで読みやすい文法を持ちながらも、高性能なプログラミング言語です。

そのため、初心者から経験者まで幅広く利用されています。

特に、AIやデータ分析の分野では欠かせない存在となっており、世界中で多くのプロジェクトやビジネスに活用されています。

●range関数とは

Pythonのrange関数は、ある範囲の整数を生成するための便利なツールです。

forループと組み合わせることで、一定の回数だけ繰り返し処理を行ったり、数列を生成したりすることができます。

○range関数の基本形

range関数は次のように使用します。

range(終点)          # 0から終点-1までの数列を生成
range(始点, 終点)    # 始点から終点-1までの数列を生成
range(始点, 終点, ステップ)  # 始点から終点-1まで、ステップごとの数列を生成

ここで、始点、終点、ステップはすべて整数を指定します。

指定しない場合、始点は0、ステップは1がデフォルトとなります。

●range関数の具体的な使い方

range関数を用いた具体的なコード例を10選紹介します。

○サンプルコード1:一般的なrange関数の使用例

次のコードでは、range関数を使って0から9までの整数を順に出力します。

for i in range(10):
    print(i)

この例では、0から始まり10未満の整数を順に生成し、それを一つずつ出力しています。

○サンプルコード2:range関数で逆順の数列を作る

次のコードでは、range関数を使って10から1までの整数を逆順に出力します。

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

この例では、10から始まり1まで、ステップ-1で整数を生成し、それを一つずつ出力しています。

○サンプルコード3:range関数とforループの組み合わせ

次のコードでは、range関数とforループを組み合わせて、1から10までの整数の和を計算します。

sum = 0
for i in range(1, 11):
    sum += i
print(sum)

この例では、1から10までの整数を順に生成し、それを一つずつ加算しています。最終的な和を出力します。

○サンプルコード4:range関数を使ったリスト生成

次のコードでは、range関数を使って、1から10までの整数が入ったリストを生成します。

numbers = list(range(1, 11))
print(numbers)

この例では、1から10までの整数を生成し、それをリストに変換しています。

その結果として得られるリストを出力します。

○サンプルコード5:range関数とステップ数を組み合わせた使用例

次のコードでは、range関数とステップ数を組み合わせて、1から10までの偶数のリストを生成します。

even_numbers = list(range(2, 11, 2))
print(even_numbers)

この例では、2から始まり10まで、ステップ数2で整数を生成し、それをリストに変換しています。

その結果として得られるリストを出力します。

●range関数の応用例

さて、これまで見てきたように、range関数は非常に汎用性の高い関数です。

さらに複雑な例を見ていきましょう。

○サンプルコード6:range関数で特定の間隔で数列を作る

次のコードでは、range関数を使って、0から30までの5の倍数のリストを生成します。

multiples_of_five = list(range(0, 31, 5))
print(multiples_of_five)

この例では、0から始まり30まで、ステップ数5で整数を生成し、それをリストに変換しています。その結果として得られるリストを出力します。

○サンプルコード7:range関数で複数のリスト操作

次のコードでは、range関数を使って、リスト内の要素を一つずつ出力します。

items = ['apple', 'banana', 'cherry']
for i in range(len(items)):
    print(items[i])

この例では、リストの長さだけ整数を生成し、それを使ってリストの要素を一つずつ出力しています。

○サンプルコード8:range関数で2次元リストを生成

次のコードでは、range関数を使って、2次元リストを生成します。

matrix = [[j for j in range(i, i+3)] for i in range(3)]
print(matrix)

この例では、range関数を使って0から2までの整数を生成し、それを元に2次元リストを生成しています。

その結果として得られる2次元リストを出力します。

○サンプルコード9:range関数を使ったアルゴリズム例

次のコードでは、range関数を使って、素数を判定するアルゴリズムを実装します。

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True
print(is_prime(17))

この例では、2から引数までの整数で、引数が割り切れるものがあるかを確認しています。

割り切れる数が存在しなければ、その数は素数と判定されます。

○サンプルコード10:range関数と関数を組み合わせた応用例

次のコードでは、range関数と関数を組み合わせて、1から100までの整数の中から素数だけを抽出します。

primes = [n for n in range(1, 101) if is_prime(n)]
print(primes)

この例では、1から100までの整数を生成し、それが素数かどうかを判定しています。

素数のみを抽出したリストを出力します。

●range関数の注意点とその対策

range関数はとても便利な機能ですが、正しく使わないと予期しない結果を生むことがあります。

ここでは、その注意点と対策について解説します。

まず一つ目の注意点として、range関数の引数は整数でなければなりません。

浮動小数点数を指定するとエラーになります。たとえば、次のコードではエラーが発生します。

numbers = list(range(0, 10, 0.5))  # これはエラーになります

このエラーを避けるためには、numpyのarange関数を使うなどの対策があります。

また、range関数はリストやタプルなどのシーケンス型を生成しないことも覚えておきましょう。

range関数が生成するのは「rangeオブジェクト」であり、これを明示的にリストやタプルに変換する必要があります。

次のコードでは、range関数の戻り値をそのまま出力してみましょう。

numbers = range(1, 11)
print(numbers)

このコードを実行すると、出力結果はリストではなくrangeオブジェクトになります。

リストに変換するには、list関数を使います。

●range関数のカスタマイズ方法

range関数はそのままでも非常に強力ですが、さらに柔軟性を持たせるために、カスタマイズする方法もあります。

たとえば、ステップ数を負にすることで、大きな数から小さな数へと逆順に数列を生成することができます。

numbers = list(range(10, 0, -1))
print(numbers)

このコードでは、10から1までの整数を逆順に生成し、それをリストに変換しています。

その結果として得られるリストを出力します。

また、ステップ数に0を指定すると、無限ループに陥るため注意が必要です。

ステップ数が0であると、始点から終点に向かうプロセスが開始されず、処理が終了しません。

次のコードは無限ループになりますので、絶対に実行しないでください。

numbers = list(range(0, 10, 0))  # 無限ループになるので実行しないでください

まとめ

この記事では、Pythonのrange関数の使い方とその活用法を10選を紹介しました。

range関数はループ処理やリスト生成など、様々な場面で活躍する機能であり、その理解はPythonプログラミングの基礎となります。

しかし、引数の制約や生成するオブジェクトの性質など、注意しなければならない点もあります。

これらのポイントを理解し、range関数を自在に操れるようになることで、あなたのコーディングスキルは一段と上がることでしょう。

これからも、この記事があなたのPython学習の一助となることを願っています。