Python を学び始めた当初はそんな悩みがあると思います。
for文とは Python ではループ処理させる構文であり、Python 以外のプログラミングでも使用する最も有名な構文です。
この記事では Python でループ処理(for文)について解説します!
またループ処理を途中で抜ける方法(break、continue)も解説しますのでぜひご覧ください!
- Python でループ処理(for文)
- ループ処理(for文)を抜ける方法(break、continue)
Python でのループ処理(for 文)の書き方!
まず Python でループ処理(for文)をつかって「数字をカウントアップする」処理を書いてみます。
「数字をカウントアップ」とは、ループ回数を指定して数字でループすることです。
例えば 1 ~ 10の数字を表示させるループ処理をしてみます。
このような場合「range」を使いループ処理を実現します。
1 2 |
for i in range(1, 11): print(i) |
「range」を使うことでループする数字の範囲を指定することができます。
ここでは1 ~ 11の数字を指定することで1 ~ 10の数字を表示させることを実現しています。
実行結果は下記になります。
1 2 3 4 5 6 7 8 9 10 |
1 2 3 4 5 6 7 8 9 10 |
上記は 1~10という数字を「1」ずつ増やしてループ処理をしていますが、
この増やす数字を「1」ではなく「2」「3」のように増分することもできます。
1 2 |
for i in range(1, 11, 3): print(i) |
上記を実行するとこんな感じの結果になります。
1 2 3 |
1 4 7 |
Python の配列を for 文でループさせる方法
また Python では配列をもとに for 文でループさせることもできます。
例えば、下記のような配列を定義するとします。
1 |
array = ['山田','田中','佐藤'] |
この「山田」「田中」「佐藤」が格納されている配列 array でループさせる for 文を作成します。
1 2 3 4 |
array = ['山田','田中','佐藤'] for name in array: print(name) |
上記は配列 array に格納させている値を for 文で変数 name に一度格納し
その name の値を print(name) で表示させる処理をしています。
これの実行結果は下記になります。
1 2 3 |
山田 田中 佐藤 |
またPythonではあまり書かない for 文ですが、配列のインデックス(添字)でループ文を書くことも可能です。
※ インデックスとは配列のデータが格納されている場所を示します。
インデックスをもとに for 文でループさせる場合、下記のようにします。
1 2 3 4 |
array = ['山田','田中','佐藤'] for i in range(0,len(array)): print(name) |
「len」を用いて配列 array の大きさを取得することができます。
range(ループする数字の範囲を指定)を 0 ~ len(array) の配列のサイズ(つまり3)と指定することで配列のインデックス(添字)でループ文を実現するということです。
実行結果は下記になります。
1 2 3 |
山田 田中 佐藤 |
以上で Python での for 文(ループ処理)の基本的なことの説明が終わりです。
つぎにループ文を書く上で知っていればさらにお得な情報をご説明します。
ループ処理(for文)を抜ける方法(break、continue)
Python のループ文を書いているとこんなこと思いませんか?
そう思うことが必ずあります。
そんなときに知っておいて損のない情報を説明します。
Python ではループ処理(for文)を途中で抜ける際には「break」「continue」を使用します。
- break・・・ループ処理を途中で中断して終了する
- continue・・・ループ処理を次にスキップする
一般的に「break」「continue」を使用する場合は 条件式(if文)を使うことが多いです。
※ if 文がよくわからない方はこちらもどうぞ!
ループ処理を途中で中断して終了させる「break」
条件式(if文)+「break」文について説明します。
「break」は for 文の処理を途中で強制的に抜ける処理をします。
例えば、「山田」「田中」「佐藤」が格納されている配列 array を順に読み込み、
「田中」というキーワードがあるときに「たなか」と表示させるとします。
1 2 3 4 5 6 7 8 |
array = ['山田','田中','佐藤'] for name in array: if name == '田中': print('たなか') print(name) |
これを実行すると本来「山田」→「田中」→「佐藤」と表示するところに
「田中」の場合、「たなか」と表示させる処理になりました。
1 2 3 4 |
山田 たなか 田中 佐藤 |
配列「array」の中身を順番にループする処理です。
本来「山田」→「田中」→「佐藤」と表示するところに
「田中」の場合、「たなか」と表示させる処理を加えました。
下記のように if 文の処理の下に「continue」「break」を加えてやります。
1 2 3 4 5 6 7 8 9 |
array = ['山田','田中','佐藤'] for name in array: if name == '田中': print('たなか') break print(name) |
すると「田中」の値を読み込むときに continue が実行されることで強制的に抜ける処理されます。
1 2 |
山田 たなか |
こうすることで、「たなか」と表示させる場合ループ文が終了することができます。
ループ処理を次にスキップする「continue」
条件式+「continue」文について説明します。
「continue」は for 文の処理を途中で次の処理にスキップします。
例えば、「山田」「田中」「佐藤」が格納されている配列 array を順に読み込み、
「田中」というキーワードがあるときに「たなか」と表示させるとします。
1 2 3 4 5 6 7 8 |
array = ['山田','田中','佐藤'] for name in array: if name == '田中': print('たなか') print(name) |
これを実行すると本来「山田」→「田中」→「佐藤」と表示するところに
「田中」の場合、「たなか」と表示させる処理になりました。
1 2 3 4 |
山田 たなか 田中 佐藤 |
この処理に下記のように if 文の処理の下に「continue」を加えてやります。
1 2 3 4 5 6 7 8 9 |
array = ['山田','田中','佐藤'] for name in array: if name == '田中': print('たなか') continue print(name) |
すると「田中」の値を読み込むときに continue が実行されることで
「田中」と表示させる処理にスキップされます。
1 2 3 |
山田 たなか 佐藤 |
- break ・・・ ループ文を途中で抜ける(終了する)!
- continue ・・・ 次にループ文にスキップ!
最後に
いかがでしょうか?
この記事では Python でループ処理(for文)について解説しました。
Python のfor 文を用いたループ文は基本的な書き方を抑えて、
あとは条件式 + 「break」か「continue」ができればほぼ9割網羅したといっても過言ではありません。
ぜひ この記事を参考に for文をマスターしていただければと思います。
※ ループ処理には While 文というのもあります。よければこちらもどうぞ!
ではでは。