Python

Pythonのrange関数がわかる!Python2との違いまで解説

分かりやすくコードを記述できることで人気のPython。ディープラーニングや機械学習でも注目されていますね。そんなPythonですが、現在はインターネット上で学習できるサイトも増えているので、独学で学習している人もいるでしょう。

そうした学習段階で分かりにくいとされるのがrange関数です。この記事ではrange関数の役割や使い方を解説していくので、つまずいている方は参考にしてみてくださいね。

range関数の役割・使い方

最初に、range関数の役割や基本的な使い方について説明します。
プログラミングでは基本を押さえることが大事なので、ここでrange関数の役割や使い方をマスターしておきましょう。

for文について

range関数の説明に入る前に、for文について簡単に解説します。
for文は繰り返し処理を行う構文ですが、range関数と組み合わせて使うことで繰り返しの回数を決めることができます。

そのため、range関数を理解するためにはfor文の理解が必要不可欠。まずはfor文の書き方の基本を理解しましょう。

次の構文がfor文を実行するコードの基本形です。

for 変数 in オブジェクト:
   実行する処理

通常の変数と同様、for文の「変数」には「Abc」や「num_961」など大文字・小文字のアルファベット、数字、アンダースコアを使用することができます。

「オブジェクト」には基本的には繰り返し回数を指定するものが入ります。今回説明するrange関数はオブジェクトの部分にあたる関数です。

「実行する処理」には文字列を出力する「print」などを記述します。

range関数の役割

range関数はfor文と組み合わせて使われることが多い関数です。
for文は繰り返し処理を行う構文でしたが、range関数によってその繰り返しの回数を決めることができます。

後ほど、実際のコードを記述しながらrange関数の使い方を説明しますが、ここではrange関数は繰り返し回数を決める関数と覚えておいてくださいね。

Pythonの配列の使い方・具体例

それではPythonの配列の具体的な使い方を解説していきます。配列の初期化方法から様々な操作方法までをまとめてあります。

配列に関する基本的機能はひと通り網羅したので、ぜひ参考にしてくださいね。

range関数の使い方

それでは、実際にコードを使用して解説していきます。

今回はrange関数を使用して範囲を指定し、for文で繰り返し数字を出力させるプログラムを書きましょう。

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

■実行結果







for文で「range(n)」とすると、0からn-1までの数値が順番に変数に代入されます。上記のプログラムでは「range(7)」としたので、変数「i」に0から6までの値が順番に代入されました。プログラムの世界では0から数値が始まることに注意してください。

このように、range関数は繰り返しの回数を決める時に使う場合が多いです。

range関数の具体的な使い方

次に、コードを見ながらrange関数の具体的な使い方を解説していきます。
Python3とPython2でのrange関数の違いも解説するので、ぜひ参考にしてくださいね。

連続した数値を出力

まずは、for文と組み合わせる基本的な使い方を紹介します。
range関数を使ったfor文で連続した数値を出力させるには、以下のようなコードを書きます。

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

■実行結果










先ほどと同じく、0から始まる数値が10個表示されます。ここで大事なポイントは、出力される一連の数値は0から始まることですね。

start・stop・stepについて

上の例では、range関の引数は1つだけでしたが、range関数は複数の引数を取ることができます。

for i in range(3,6):
    print(i)

■実行結果



「range(start, stop)」とすると、startからstop -1までの数値が順番に生成されます。上の例では「range(3,6)」としたため、3から5までが出力されました。

次にrange関数に引数を3つ渡した場合のコードを紹介します。

for i in range(0,8,2):
    print(i)

■実行結果




「range(start, stop, step)」とすると、startからstop – 1までの数値がstepずつ加算されながら生成されます。上の例では「range(0,8,2)」としたため。0から7まで+2されながら出力されました。

逆算で数値を出力

先ほどまで紹介したプログラムでは0,1,2,…と数値が昇順になっていましたが、逆順で出力することもできます。

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

■実行結果

10



このように第三引数「step」を負の数にすることで逆順で数値を出力できます。上のコードだと10から6までの数値を-1ずつ表示できていますね。

昇順の場合と同じように、例えばstepの数値を-2とすると2個ずつ減少していきます。

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

■実行結果


-2
-4

小数を扱う方法

range関数で少数を扱いたいというときもあるでしょう。range関数はint型の整数にしか対応していないので、0.1のように小数をそのまま入力するとエラーになります。

このようなエラーを避けるためには、コードを少し変更する必要があります。

for i in range(8):
    print(i * 1/10)

■実行結果

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7

上記のコードでは変数に1/10つまり0. 1を掛けた数を出力しています。
このように、range関数には小数を入れることができませんが、変数を計算する形を取ることで解決できます。

continueとbreakについて

for文を学んでいると同時に出てくるのが「continue」と「break」。
range関数と組み合わせることで応用ができるので、それぞれ紹介します。

continueについて

continue文は指定した処理をスキップさせることができます。
以下がcontinue文を使ったコードサンプルです。

for i in range(5):
    if == 3:
       continue
    print(i)

■実行結果




本来なら「range(5)」としているため、0から4までの数値が出てくるはずです。しかし変数「i」の値が3のときにcontinue文を使っているため、iが3の場合には処理がスキップされて、3は出力されないことになります。

breakについて

break文は繰り返し処理を終了させる方法として使われます。

for i in range(5):
    if i == 3:
       break
    print(i)

■実行結果



やはり「range(5)」としているため0から4までの数値が出てくるはずですが、変数「i」の値が3のときにbreak文を実行しているので、iが3のところで処理が終わります。

実行した処理結果のように、break文を使うと好きな所で処理を中断することができます。このように、同じ処理を何度も繰り返して行われる場合において、break文が使われます。

Python3とPython2でのrange関数の違い

スマホアプリやゲームソフトなど、様々なところで使われているプログラミング言語。電化製品や車と同じようにプログラミング言語自身も日々進歩しており、Pythonも少しずつ変更されています。

記事執筆時点でのPythonの最新バージョンは3.8.2。このようなバージョン3.x.xのPythonを一般に「Python3」と呼びます。

バージョン2.x.xの「Python2」もまだ使われていますが、Python2とPython3の間には互換性がありません。つまり、Python2で使用可能な構文が一部Python3では使用できず、またPython3で使用できるがPython2では使用できない構文もあるのです。

今回説明したrange関数も互換性のない構文の1つです。

Python3の環境でPython2のコードを使用するとエラーとなるので、それぞれのバージョンにおけるrange関数について解説します。

Python2のrange関数について

Python2では繰り返し回数を決める関数は2種類あります。range関数とxrange関数です。range関数はリストを作るのに対し、xrange関数はオブジェクトを返す関数になります。

少し分かりにくいので、簡単に説明しますね。

range関数ではすべての数値が入ったリストを作ってループ処理をするため、メモリに負担がかかります。一方、xrange関数は必要な個数のみ数値を作成・処理するので、メモリ使用量を減らすことができます。

そのため、Python2で繰り返し処理を行う回数が多いときにはxrange関数を使用します。

繰り返し回数が少ないときはどちらを使用しても大きな違いはありませんが、xrange関数の方がrange関数より早く処理できるため、Python2の環境ではxrange関数を使用する人が多いです。

Python3のrange関数について

Python3ではxrange関数はrange関数にまとめられました。
今回紹介したrange関数はPython3で使用した場合の説明なので、今回の記事をそのまま参考にしてもらえば問題ありません。

今後プログラミング学習で分からなくなったとき、インターネットでPythonのコードを調べる場合にはPython3とPython2のどちらを使用している環境なのかをよく確認してくださいね。

まとめ

range関数はfor文と一緒に使われることが多い関数です。

for文はPythonでコードを書くなら覚えておかなければならない構文の1つなので、for文を学習するときにrange関数も一緒に覚えておきましょう。

range関数の注意点としてPython3とPython2では互換性がないことが挙げられます。同じ関数でも意味が違うので、学習するときにはどちらを使用しているか確認しておきましょう。

プログラミングの家庭教師『Tech Teacher』


引用元:Tech Teacher

「スクールに通い続ける自信がない…」
「時間がなくてスクールに通えない…」

そんな方にはプログラミングの家庭教師『Tech Teacher』がおすすめです。
Tech Teacherはマンツーマン指導なので、生徒様一人ひとりに最適な指導を行うことができます。また、オンライン指導も可能なので、全国どこにいても家庭教師の授業を受けることができます。

Tech Teacherの3つの特徴


生徒様に最適化されたマンツーマン指導
完全マンツーマンの指導なので、生徒様の目的・学習状況・ご要望に合わせて、最適な指導をご提供いたします。

指導力・人柄・相性の優れた教師のご紹介
Tech Teacherには採用率20%の選考を突破した、指導力の高い教師が在籍しています。また、選考では指導力だけではなく人柄も重視しております。

1,000人の教師が在籍!幅広い指導に対応可能
業界トップレベルの1,000人の教師が在籍しています。そのため、幅広い言語・ツール・目的に対応することができます。

家庭教師ならではの5つの魅力


オーダーメイドのカリキュラム
生徒様一人ひとりに習熟度・目的・期間に応じて最適なカリキュラムを提供いたします。

きめ細やかなフォローが可能
生徒様からのご要望にきめ細やかに対応し、学習計画や勉強法などの指導もできるので、普段の勉強も捗ります。

習い事・学業・お仕事との両立が簡単
教室に通う必要がないので親御様の送迎も不要です。授業時間・頻度を生徒様のご都合に合わせて自由に調節することができます。

自分のペースで進められる
生徒様の理解度や意欲に応じて授業のスピードを調節できます。不明点や疑問点は都度立ち止まって解消できるので、着実に理解して進むことができます。

すぐ質問できるから挫折しない
先生を独り占めできるので、周りの目を気にすることなく分からないところをいつでも質問できます。

Tech Teacherへのお問い合わせ

無料体験授業・資料請求のお問い合わせはこちらから

質問のみのお問い合わせも受け付けております。