注目キーワード

【Python】for文の回数を指定する方法(range)

はじめに

Pythonのfor文はC#やJavaと書き方が異なっていたので、忘れないように記事にします。

私は仕事でC#を使っているのですが、Pythonのfor文は「foreach」に近い感じです。Pythonで回数を指定してループ処理を行うときは「range」を使うと便利です。

この記事では基本的なfor文と回数を指定したループ処理についてサンプルソースを使いながら説明していきたいと思います。

対象レベル

Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。

詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。

通常のfor文

先ほど言ったように、Pythonのfor文はC#の「foreach」に似ており。というか、リストの要素数が分かっているならわざわざループの回数指定しなくていいでしょで「for」が淘汰されてきているのか?

以下のように「for 要素 in 配列:」と「in」の後に「 配列 」(下のソースでいうと「 [0, 1, 2, 3, 4] 」)を指定します。

処理の動きとしてはループ処理のたびに、配列から要素を1個1個とりだし、変数(下のソースでいうとi)に格納しますます。つまり配列の要素数分中身を取り出し、出力していきます。ちなみに、ループ処理の時は、「:(コロン)」の後にインデントが下がっている処理を繰り返し行います。つまり、4行目の「print(i)」が配列の要素分繰り返し行われます。

for 変数 in 配列:

以下が実行結果になります。先ほど述べたとおり、配列の要素が先頭から順番に取り出されて出力されています。

でもこれって、ループ処理が100回とか1000回になってきたときに書くのが大変になってきますよね。

ということで、簡単に書ける回数を指定したfor文の書き方についてこの後説明していきたいと思います。

sample_for.pyを実行

rangeについて

ここで話が変わりますが、「range」という関数があります。この関数は連続した列を返します。

詳しくは以下の記事で説明しています。

下の場合は、5個分の連続した数字が返ります(スタートを指定していないので0がデフォルト)つまり「0」から「4」までの合計5個の数字が取得できます。

スポンサーリンク

sample_range.pyを実行

回数を指定するfor文

ここで話をfor文に戻すと、先ほどの「range」を使うと連続した数字もリストを取得することが出来ることが分かりましたね。

一番最初の「 [0, 1, 2, 3, 4] 」を「 range(5) 」に変えても同じ出力結果が得られます。

for 変数 in range(繰り返したい回数):

以下が実行結果です。一番最初と同じ出力結果になっていますね。

ちなみに今回は回数を指定していただけでしたが、この記事で紹介した「range」の使い方が分かれば偶数・奇数を出力したり、最初の値を指定したり、3個飛ばしで出力したりと幅が広がります。ぜひ学習して試してください。

sample_for_range.pyを実行

まとめ

回数を指定したfor文は「range」関数を使うと便利

使い方は「for 変数 in range(繰り返したい回数):」