Pythonでは繰り返し同じ処理を行いたいときに便利なfor文があります。
「リストや辞書の値を要素ごとに取得したい」
「指定した回数分ループ処理を実行したい」
今回はPythonでループ処理を行う場合に使われるfor文について解説します。
【基礎】for文の基本的な使い方
【発展】for文で指定回数ループする方法
【発展】for文の応用
for文での繰り返し処理は実際によく使われますので、この機会によく覚えておきましょう。
※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。
なお、Pythonの記事については、こちらにまとめています。
for文とは
for文はループ処理を行うときに使われる処理です。
プログラミングは繰り返しと分岐の処理で成り立っていますが、for文はその繰り返しの役割を果たします。
同じく、繰り返しの処理を行う場合に使われるwhile文という文もあります。
for文とwhile文で書くことの出来る処理に変わりはありません。
for文で書くことの出来る処理はwhile文でも書くことができますし、その逆もできます。
- for文は回数が決まっている場合
- while文は終了条件を書く必要がある場合
というように使い分ければよいでしょう。
この記事では主にfor文のループについて解説していきますが、while文のループについても知りたい方はこちらの記事をご覧ください。
for文の書き方
基本的な使い方
今までもPythonのfor文については説明してきましたが、ここでfor文の書き方についてサンプルコードを使っておさらいします。
一般的な書き方はこのようになっています。
for i in range(5): print(i)
実行結果
0 1 2 3 4
このプログラムではrange関数で繰り返し回数を5で指定しています。
そのため、printでの出力は5回行われます。
リストでのループ処理
for文のrange関数の部分はリストを指定することで、リストの要素を1つずつ取得することができます。
array = ["あ","い","う","え","お"] for i in array: print(i)
これは他の言語で学ぶforeach文の処理と同じです。
foreach文は配列の中身を調べていく文です。
C言語などではforeach文はfor文と区別されていますが、Pythonでは同じように扱うことができます。
混乱を防ぐために整理をすると、Pythonではfor文もforeach文も、分けて考えることなくfor文で使うことができます。
実行結果
あ い う え お
このようにfor文でリストを指定することで、for iの箇所にリストの要素が繰り返しごとに格納されます。
enumurateの使い方
dictionary(辞書)のキーと値を1つずつ取得したい場合はenumurateを使用します。
fruits_dict = {"apple":100, "orange":80, "melon":450} for key,value in enumerate(fruits_dict): print("{0} = {1}".format(key,value))
実行結果
0 = melon 1 = apple 2 = orange
このようにfor文のあとに辞書のキーと値を取得する変数を指定し、enumerateで辞書の変数を指定すれば要素分の値を取得することができます。
指定した回数だけループさせる方法
Pythonのfor文は、配列を必ず使わなければいけないというわけではありません。
range関数を使うことで、「〜回だけfor文を回す」という設定を簡単にすることができます。
こちらのサンプルコードを見てみましょう。
for i in range(5): print(i)
range関数に「5」を渡しました。
これで、5回分(0から4まで)、for文を回すことができます。
詳しくは、range関数を詳しく解説したこちらの記事をご覧ください。
for文の応用について
ここまでで解説してきたfor文は基礎の基礎になります。
こちらの記事では、for文を途中で抜ける方法、for文の終わりに処理を行う方法などが解説されています。
もう少しfor文を使ってみたいという方は、ぜひこちらの記事で学習してみてください。
まとめ
ここではPythonの基本的なループであるfor文の使い方を解説しました。
- for文とは
- for文の基本的な使い方
- for文で指定回数ループする方法
- for文の応用
Pythonではfor文とforeach文を分けて考えなくても良いというのはとても楽ですね。
今まで配列を使うことに抵抗があった初心者も、for文の使い方をおさらいすることによって、より親しみやすくなったかと思います。
range関数についても触れてみたので、より便利にfor文を使ってみてはいかがでしょう。
なお、今Pythonを学習している方は以下の記事もどうぞ。
はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。
復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。
【Python 入門完全攻略ガイド】