Python 文法・関数

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

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

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


本ブログを運営しているTech Teacherは、業界初のプログラミング家庭教師サービスを提供しています。

その特徴は完全マンツーマン・フルオーダーメイド指導・30分ごとの利用が可能であるところです。

完全マンツーマン

Tech Teacherのマンツーマン指導なら理解できない箇所は何度も分かるまで説明を受けることができます。

フルオーダーメイド指導

Tech Teacherではあらかじめ決められたカリキュラムはありません。そのためご自身の学習状況や学びたいことに合わせた指導が可能です。

一括支払いなし

一般的なプログラミングスクールの料金体制はカリキュラムに対して一括払いですが、Tech Teacherでは利用した分だけの支払いとなります。そのため、大きな費用負担がなく気軽に始めることができます。

Pythonをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

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のどちらを使用している環境なのかをよく確認してくださいね。

「Tech Teacherで!~家庭教師ならではの3つの魅力~」

本Blogを運営するプログラミング家庭教師Tech Teacherは以下のような疑問をすべて解決できるサービスです。

・Pythonの応用をもっと学びたいが、値段が高いスクールに通うのは気が引ける

・目的別に短時間の利用ができるサービスがあったらいいな

比較対象 Tech Teacher プログラミングスクールA社
受講形態
1対1

1対3~5
担当教師
担任教師
×
講座別の講師
カリキュラム
自分専用指導

全員指導
仕事・学業との両立
可能
×
不可能
メンター制度
担任教師

異なる担当
料金
授業分だけ
×
一括払い
初期費用
入会金
22,000円
×
一括払い
528,000円
シミュレーション
(3ヶ月90分の指導を週1で行う)

164,500円
×
528,000円

以下、Tech Teacherの3つの魅力を紹介します。

Pythonをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

1.効率的な学習スタイル

一人のためだけの指導~1対1の完全個別指導~

一般的なプログラミングスクールでは大人数の対面講義や、録画講義の視聴またはオンラインでの受講がメインです。そうなると学習しながら生じた疑問をすぐに聞くことができずに、先に進んでしまい内容をうまく理解できなかったり、作業がうまく進まなかったりします。

家庭教師であれば、マンツーマンのため自分の課題にだけ焦点を当てて指導を受けられるので、1回の授業を濃い時間にすることができます。

無駄のない学習~フルオーダーメイド~

Tech Teacherは一般的なプログラミングスクールと異なり、あらかじめ決められたコースやカリキュラム設定がありません。
一般的なプログラミングスクールのカリキュラムでは、自分が本当に学習したいことを学ぶのにいくつか他の講義を受けなければなりません

Tech Teacherでは生徒様の現状の習熟度・目的・期間に応じてお悩みにダイレクトに刺さる授業を展開し、最短で目標となるゴールを目指せます。

2.自分のペースで学習できる

必要な分だけ~従量課金モデル~

Tech Teacherでは、他にはない「短時間(30分ごと)」の利用が可能です!勉強していてちょっとわからないところ、プログラミング学習のモチベーション維持など様々な疑問や悩みを解決することができます。
授業を受けた分だけ後払いする料金体系(3,960円〜 / 30分)のため、必要な期間に必要な分だけ受講できます。

好きな時間で~相性のいい教師の紹介~

Tech Teacherではあらゆるニーズに対応できる教師陣がいるため、生徒様の希望条件に最適な教師を紹介します。

Tech Teacherを受講している方のほとんどが仕事をしている社会人の方です。TechTeacherの家庭教師なら受講日時や回数を、生徒様のご都合に合わせて柔軟に調整することができ、スキルだけでなく都合の良い時間で指導できる教師を選べます。

3.確実に身につく

挫折しない~担任教師の継続指導~

オンライン・オンデマンドの講義の視聴形態だと、学習に対するモチベーションの維持が課題となり、当初の予定よりも受講期間が伸びたり、挫折したりする恐れがあります。

Tech Teacherでは、担任教師が生徒と二人三脚で学習をするため、学習が大変なときも寄り添ったサポートを受けられます。

具体的には学習計画の管理や受講目的を明確にした上で中間目標を設定し、それに向けた学習の指導をすることでモチベーションの維持を図ります。

いつでも質問できる~チャットサポート(オプション)~

担当教師は授業の時間以外に、チャットサービスを利用して、自分で学習しているときに生じた疑問をすぐに質問して解決することができます。

Javaをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

Tech Teacherへのお問い合わせ

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

まとめ

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

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

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