使うときに困らないよう、応用的な使い方も知りたいな……
プログラミングをする上で、決められた回数分繰り返し処理を行うことはよくあります。Pythonでは好きな回数のループ処理を行う方法として、for文が用意されています。
この記事では、Pythonのfor文の使い方について解説します。
break文やcontinue文などの応用的な使い方についても解説しているので、ぜひ参考にしてみてくださいね!
※ この記事のコードはPython 3.7で動作確認しました。
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
Pythonのfor文の書き方
まずはfor文の基本的な書き方を見ておきましょう。
for 変数 in シーケンス: 繰り返し処理したいコード
Pythonでは他の言語でforeachと呼ばれる書き方が標準のfor文の書き方に相当します。これはシーケンスの各要素をループ毎に頭から取り出して、for文のブロック中で使うことができる書き方です。
シーケンスとは、リストや文字列、タプルなどの複数のデータが順番に並んでいる型のことをいいます。
詳しくはこちらの記事で解説されているのでぜひ見てみましょう!
Pythonのfor文の基本的な使い方
「5回だけ繰り返し処理をしたい!」のように、指定した回数だけループを使いたい場合はrange関数を使いましょう。
range関数は引数の数字(int型)の回数分だけ数字を返すイテレータになります。
for i in range(5): print(i)
0 1 2 3 4
このように5回文繰り返し処理が実行されましたね!
詳しい使い方はこちらの記事をご覧ください!
for文を使いこなすための5つの方法
ここからは、for文を使いこなすための、以下の5つの方法を解説します。
- break文:処理を途中で中断する
- continue文:処理を一部スキップする
- else文:ループ処理の最後に処理を実行する
- スライス:一部の要素のみを取り出す
- enumerate関数:値だけでなくインデックスも取り出す
1つずつサンプルコード付きで解説しています。実際にコードを動かしながら、見ていくのがおすすめです!
break文:処理を途中で中断する
処理を途中で中断したい場合は、break文を使います。
if文などで条件を付けて、break文を実行して処理を止めるケースはよくあるので、覚えておきましょう。
サンプルコードをつかって、解説していきますね。
サンプルコード:
list = ("Apple","Orange","Banana","Grape") for name in list: print("リストの値:{0}".format(name)) if name == "Banana": print("バナナが出たので処理終了") break
実行結果:
リストの値:Apple リストの値:Orange リストの値:Banana バナナが出たので処理終了
結果を見るとリストの値がBananaになった後、Grapeを出力せず「バナナが出たので処理終了」の文字列が出て処理が終わっていますよね。
これは、if文の条件(nameがBananaの文字列だった場合)に一致した場合の処理に、break文を実行しているからです。
このように、break文を使えば処理を途中で中断できます。
以下でも使い方を詳しく解説しているので、ぜひ参考にしてみてくださいね!
continue文:処理を一部スキップする
処理をスキップしたい場合は、continue文を使います。
break文と同様、if文で条件を指定して処理をスキップするケースはよくあるので、覚えておくのがおすすめです。
サンプルコードをつかって、解説していきますね。
サンプルコード:
list = (1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10) for name in list: if name % 2 != 0: continue print("リストの値:{0}".format(name))
実行結果:
リストの値:2 リストの値:4 リストの値:6 リストの値:8 リストの値:10
この例では、リストの値が2の倍数だった場合のみ、値を出力する処理を書いています。
continue文で処理を継続しているため、2の倍数になっている値がすべて出力されていますよね。
このように、continue文を使えば処理を途中でスキップできるのです。
else文:ループ処理の最後に処理を実行する
ループ処理の最後に処理を実行したいときは、else文を使います。
正常にループ処理が終わったか確認したい場合に便利なので、覚えておくのがおすすめです。
サンプルコードをつかって、解説していきますね。
サンプルコード:
list = (1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10) for name in list: print("リストの値:{0}".format(name)) else: print("すべての数値が出力できました!")
実行結果:
リストの値:1 リストの値:2 リストの値:3 リストの値:4 リストの値:5 リストの値:6 リストの値:7 リストの値:8 リストの値:9 リストの値:10 すべての数値が出力できました!
ループ処理がすべて終わった後に、「すべての数値が出力できました!」と文字が表示されていますよね。このように、ループ処理の最後になにか実行したい場合は、else文を使いましょう。
以下でも詳しく解説しているので、ぜひ参考にしてみてくださいね!
スライス:一部の要素のみを取り出す
タプルやリストに入っている値の一部のみループ処理したい場合は、スライスを使います。
「タプルに5つの要素があった場合に、2~4までの要素のみループ処理をしたい」といったケースで便利なので、覚えておくのがおすすめです。
サンプルコードをつかって、解説していきますね。
サンプルコード:
list = ("Apple","Orange","Banana","Grape") for name in list[1:3]: print("リストの値:{0}".format(name))
実行結果:
リストの値:Orange リストの値:Banana
list[1:3]のようにfor文で指定している部分が、スライスです。指定する番号は、0から始まる値を指定しています。
そして最後に指定した番号の要素(今回の例だと3のGrape)は含まれないので、次のようにOrangeとBananaのみ出力されているのです。
要素の中の特定の値のみループ処理を実行したい場合に便利なので、覚えておきましょう。
enumerate関数:値だけでなくインデックスも取り出す
ループ処理するとき、index(インデックス)も取り出したい場合は、enumerate関数を使います。
index(インデックス)とkey(値)に分けて処理を作れるので、覚えておくと便利です。
サンプルコードをつかって、解説していきますね。
サンプルコード:
list = ("Apple","Orange","Banana","Grape") for index,key in enumerate(list): print("インデックス:{0}".format(index)) print("値:{0}".format(key)) print("-------------------------")
実行結果:
インデックス:0 値:Apple ------------------------- インデックス:1 値:Orange ------------------------- インデックス:2 値:Banana ------------------------- インデックス:3 値:Grape -------------------------
このサンプルでは変数index、nameを作り、それぞれインデックスと値を入れて出力しています。
結果では、それぞれの値がループ処理の回数分出力されていますよね。このように、インデックスと値を一緒に扱いたいときに便利です。
特にPythonのfor文では、他のプログラミング言語のように「ループ回数」がそのまま使えません。そのため、「ループの回数に応じて処理を分けたい」といったケースで便利です。
enumerate関数の使い方については、以下でも解説しています。より詳しく知りたい方は、ぜひ参考にしてみてください。
まとめ
ここでは、Pythonのfor文の使い方について解説しました。
for文のような繰り返し処理は、プログラミングで非常に大切な機能の一つです。サンプルコードを元に、実際に手を動かして確認してみるのがおすすめです。
ぜひ、Pythonのfor文を使いこなせるようになりましょう!
なお、今Pythonを学習している方は以下の記事もどうぞ。
はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。
復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。
【Python 入門完全攻略ガイド】