Pythonのrange関数について初心者向けに詳しく解説します

プログラミング 公開日:
ブックマーク
Pythonのrange関数について初心者向けに詳しく解説します
Pythonでループ処理を行う際に非常に便利な関数の一つが「range関数」です。この記事では、Pythonのrange関数について、初心者の方でも理解できるように丁寧に解説していきます。

range関数とは・・

range関数は、連続する数のリストを生成するための関数です。
主にfor文と一緒に使われ、特定の範囲内の整数を順に処理する際に非常に便利です。

基本的な構文は下記の通りです。

range(開始値, 終了値, 増加量)

必須の引数は「終了値」のみで、開始値と増加量は省略することができ、
それぞれ省略した場合、開始値はデフォルト0、増加量はデフォルト1が設定されます。

では、具体例を見てみましょう。

開始値と増加量を省略して、終了値に5を指定して実行してみます。

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

すると、下記実行結果が返却されます。

0
1
2
3
4

開始値をデフォルトの0として、終了値である5まで、1ずつ増加させた結果が返却されます。

これがrange関数の最もシンプルな使い方です。

次に開始値に2を指定して実行してみましょう。

for i in range(2,5):
    print(i)

実行結果は下記の通りです。

2
3
4

開始値に指定した2から始まり、終了値である5まで、1ずつ増加させた結果が返却されます。

最後に増加量も指定した例を見てみましょう。

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

実行結果は下記の通りです。

2
4
6
8

開始値に指定した2から始まり、終了値である10まで、2ずつ増加させた結果が返却されます。

負の値を指定する

増加量に負の値を指定することで、逆順の数列も生成することができます。

例えば、下記のコードは開始値に10、終了値を0、増加量を-2を指定したrange関数から得られた結果を、for文で回しています。

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

このコードの実行結果は下記の通りです。

10
8
6
4
2

開始値に指定した10から始まり、終了値である0まで、-2ずつ減算させた結果が返却されていることがわかります。

応用例

ここまでrange関数の基本的な使い方を見てきました。

ここからはもう少し応用的な使い方を見てみましょう。

「5で割り切れる」値を抽出する

このコードでは、0から21までの範囲の「5で割り切れる」値を抽出しています。

for i in range(1, 21):
    if i % 5 == 0:
        print(i)

こちらのコードの実行結果は、

5
10
15
20

となります。

10個の文字列を作る

こちらは、1から11までを範囲とすることで、1〜10までの文字列を作るコードです。

strings = ['num{}'.format(i) for i in range(1, 11)]
print(strings)

こちらのコードの実行結果は、

['num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7', 'num8', 'num9', 'num10']

となります。

1から1000までの数の和を計算する

あまり綺麗な例ではないかもしれませんが、下記のようなコードを書くことで、数値の和を出すこともできます。

total = 0
for i in range(1, 1001):
    total += i
print(total)

こちらのコードの実行結果は、

500500

となり、1から1000までを全て足し算した結果が得られます。

注意点

便利なrange関数ですが、いくつか注意点があります。

小数点は使用できない

range関数は小数点を指定することができます。

例えば、0.5ずつの値を取得しようして、下記コードを実行した場合、

for i in range(1,10,0.5):
    print(i)

下記のように、「小数は指定できない」というエラーが返却されます。

TypeError: 'float' object cannot be interpreted as an integer

Pythonの2系と3系でrangeの動作が異なる

現在ではPython3系が主流ですが、Python2系を使用する場合もあるでしょう。

2系でもrange関数は使用可能ですが、xrange関数を使用することをオススメします。

どちらも同じような挙動をしますが、2系のrange関数の場合、処理スピードが遅くなる場合があります。

よって、3系のrange関数と同じ処理をする、xrange関数がオススメです。
(ちなみに3系ではxrange関数が廃止され、range関数で同じ動作をすることができるようになりました)

最後に・・

いかがでしたでしょうか?
range関数は、使用方法がシンプルな一方で、意外に使う場面が多い関数です。
ぜひマスターしていきましょう。

TECH PLAYでは、ITに関わる様々なイベント・勉強会・講演会・交流会・カンファレンス・セミナーなどの情報を集約し掲載しています。

テクノロジーと共に成長しよう、
活躍しよう。

TECH PLAYに登録すると、
スキルアップやキャリアアップのための
情報がもっと簡単に見つけられます。

面白そうなイベントを見つけたら
積極的に参加してみましょう。
ログインはこちら

タグからイベントをさがす