Pythonのfor文を利用した繰り返し処理について1分で簡潔に解説します。
for文と一緒に頻繁に用いられるrange関数についても合わせて補足しておりますので、是非最後までご覧ください。
Pythonエンジニアを目指す方であれば、知らないと恥ずかしい超基本知識ばかりです。是非最後までご覧ください。
早速解説を始めます。
前提:繰り返し処理とは?
繰り返し処理とは、その名の通り同じ処理を複数回繰り返す処理のことです。
例えば、「こんにちは!」という文字を100回表示させたい場合。この場合、本来であれば「こんにちは!」という処理を100個記述しなければなりません。
そんな時に便利なのが繰り返し処理。

繰り返し処理を用いれば1回のコーディングで複数回の処理を行うことができるようになります。
Pythonでは、本ページで解説するfor文と以下のページで解説しているwhile文が繰り返し処理を行います。
繰り返し処理の1回をイテレーションと呼びます。
「こんにちは」を100回表示する処理のイテレーションの数は100となります。
早速for文の書き方の解説に移ります。
Python:for文
for文は、繰り返し処理を記述する場合に利用します。
for 変数 in オブジェクト:
(繰り返したい処理)
構文ルールはとっても簡単です。初心者の方はfor文の最後の「:」を置き忘れることがあるため、注意して覚えておきましょう。
文字だけでは分からない部分もあると思うので、早速サンプルコードを見ていきましょう。
Python:for文のサンプルコード
sample_list = ["あいうえお","かきくえこ","さしすせそ"] for i in sample_list: print(i) # 結果はこちら """ あいうえお かきくえこ さしすせそ """
リスト"sample_list" の値を1つずつ、変数"i" に代入し処理を実行していくようなイメージ。
これだけでは、わかりづらい方もいらっしゃるかと思いますので、少し詳しく解説します。
処理①:3行目
変数 "i" に、リストの0番目の要素 "あいうえお" を代入。
処理②:4行目
変数 "i" に代入された "あいうえお" を画面に表示
処理③:3行目
変数 "i" に、リストの1番目の要素 "かきくけこ" を代入。
処理④:4行目
変数 "i" に代入された "かきくけこ" を画面に表示
処理⑤:3行目
変数 "i" に、リストの2番目の要素 "さしすせそ" を代入。
処理⑥:4行目
変数 "i" に代入された "さしすせそ" を画面に表示
for文では指定したオブジェクトから要素を順番に取得し、その要素の数だけ処理を繰り返すということ。
つまり、for文ではオブジェクトの要素の数と同じだけ繰り返し処理が行われることになります。
尚、このオブジェクトに指定できるのは、リスト・タプル・辞書・集合などの要素を持つオブジェクトのみです。
Pythonにおけるデータ構造のことです。簡単に言えば、どれも配列のようなもの。
配列というのは、複数の要素(データ)を持つ1つの箱です。詳しくは以下の記事で詳しく解説しておりますので合わせてご確認ください。
Python:range関数の基本
range関数とは、特定の範囲の連続した数値を持つオブジェクトを生成する関数です。
range(開始値, 終了値, 増減値)
開始値、増減値は省略可能。
これも、いくつかサンプルを見ながら理解したほうが早いので、いくつかサンプルを載せておきます。
range(10) # 10まで --------------> 0 1 2 3 4 5 6 7 8 9 10 range(0, 7) # 0から7まで --------------> 0 1 2 3 4 5 6 range(3, 9) # 3から9まで --------------> 3 4 5 6 7 8 range(0, 9, 1) # 1ずつ増やしつつ0から9まで --------------> 0 1 2 3 4 5 6 7 8 9 range(0, 10, 3) # 3ずつ増やしつつ0から10まで --------------> 0 3 6 9 range(10, 0, -1) # 1ずつ減らしながら10から1まで --------------> 10 9 8 7 6 5 4 3 2 1
このように、range関数を利用することで、連続した数値の要素を持つオブジェクトが生成されます。
range関数は、その性質上for文とセットで用いられることが一般的です。本ページ同様、他のPython解説ページでもrange関数とfor文は同時に解説されることが多いのはそのためです。
ここからは、より実践的にfor文とrange関数を合わせて利用する方法を見ていきましょう。
range関数はリストではない
少しだけ寄り道をしますが、range関数が返すのはリストではないということを補足しておきます。
my_list = range(1,100)
このように記述すると、"my_list" は1~100のレコードを持つリストのように考えてしまうかもしれませんが、"my_list" はリストではないという点に注意が必要です。
試しに、"my_list" を表示してみます。
my_list = range(1,100) print(my_list) # range(1, 100)
リストが返ってきませんでした。これは、Python3からの仕様変更によるもので、range関数がリストを返さなくなるようになったためです。
正確に、リストとして定義したい場合は、list関数を利用してデータ型を変換する必要があります。
my_list = list(range(1,100)) print(my_list) """ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] """
リストが返ってきます。
range関数が返す値はリストではなく、リストのようなものであることを理解しましょう。
range関数を用いたfor文の使い方
for num in range(10): print(num) # 結果はこちら """ 0 1 2 3 4 5 6 7 8 9 """
いかがでしょうか?
range関数を利用するだけで、for文による繰り返し処理の回数を簡単に指定できるようになりました。
range関数とfor文がセットで用いられる理由が何となく理解できたのではないでしょうか?
Python:break文
さて、最後に繰り返し処理を途中で止める方法を説明しておきたいと思います。
break文はif文とセットにして、特定の条件に合致した場合繰り返し処理を抜けたい場合に用います。
for i in range(10): print(i) if num == 5: break # 結果はこちら """ 0 1 2 3 4 5 """
breakを利用すると、それ以降の繰り返し処理(上記の例で言えば、6回目以降)が行われなくなります。
例えば、繰り返し処理の中でエラーが発生する場合が見込まれる場合などに、エラーを検知してbreak文を利用することができます。
Python:continue文
似たような処理として、continue文があります。イメージは似ていますが、処理内容は全く異なります!
continue文もif文とセットにして用いられますが、break文が以降の処理をすべて行わないようにするのに対して、continue文は処理を中断し、次の繰り返し処理に進む処理を行います。
どういうことか、以下のサンプルコードをご覧ください。
for i in range(10): if i == 5: continue print(i)
答えはこちら。「5」だけが表示されていません。
変数"i" が5の場合だけ繰り返し処理がスキップされていることがお分かりいただけるかと思います。
0 1 2 3 4 6 7 8 9
break
繰り返し処理を抜ける。(break以降の処理が行われない)
continue
繰り返し処理をスキップする。
以下のサンプルコードの結果が分かれば、あなたの理解は完璧です。
for i in range(10): if i == 2: continue if i == 7: break print(i)
結果はこちら。
0 1 3 4 5 6
これで、for文の基本理解はOK。
for文は利用頻度が高いので構文ルールと処理内容は忘れないようにきちんと理解しておきましょう。
Pythonを1から学習したい方は
Pythonをより実践的に学びたい―。実際にコーディングをしながら学びたい―。独学に限界を感じている―。
そんな方には、無料体験/オンライン完結もあるプログラミングスクールで学ぶのがおすすめです。都度検索しながら知識を補完していくのではなく、1から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。
各プログラミングスクールの特徴をまとめた記事をこちらに記載しておきますので、是非ご覧ください。