Pythonではループ処理(繰り返し処理)を行うための制御構文としてfor文とwhile文が用意されています。この記事ではその1つであるfor文の性質や用途、書き方についてみていきましょう。
目次
for文の用途と制御構造
for文は「データの集まりから各データを1つずつ取り出してすべて処理する」ときに使われるループ構造です。
その性質上、繰り返す回数が決まっている場合やリスト(配列)に対して処理を実行する場合に使われます。
for文の記法
for文は次のように記述します。
for 変数 in くり返す範囲: 処理
「くり返す範囲」に繰り返しの回数や繰り返しの対象となるデータを指定します。
for文はそのデータの集合を1つずつ変数に渡して「処理」を終えたら、次のデータを変数に渡して…とデータの集まりすべてに処理を適用し終わるまでくり返してくれます。
for文もif文と同様に末尾にコロンを付け、処理内容は必ずインデントする必要があるので覚えておきましょう。
では実際に簡単なループ処理を実行してみましょう。次のコードは数字の0から9までを順番に表示するプログラムです。
for i in range(10): print(i)
nge関数を使うことで0~9までの10個の数字の集まりを作り、それを1つずつi変数に代入、i変数をそのまま出力することで10個の数字をすべて出力し終えるまで処理を繰り返しています。
実行結果は次のとおりです。
0 1 2 3 4 5 6 7 8 9
ループ終了後に処理を追加する方法
for文では繰り返し処理が終了した後に何らかの処理をしたい場合には次のようにelseにつなげて記述します。
for i in range(10): print("ピザ", end="") else: print("ひじ!")
実行すると次のようになります。
ピザピザピザピザピザピザピザピザピザピザひじ!
ちゃんとピザと10回繰り返した後にひじ!と出力されています。
ループを途中で抜ける方法
ループを途中で抜けたい場合の記述についても知っておきましょう。ループを中断する条件をif文で設定し、breakという命令を使います。
for i in range(10): if i == 5: break print("ピザ", end="") else: print("ひじ!")
if文でiが5の時にループを中断するbreakという命令を実行するよう記述しました。
実際にこのコードを実行してみましょう。
ピザピザピザピザピザ
変数iに5が代入されたところでループが中断されているのがわかります。
なお、breakでループを抜けた場合はelseに続くコードブロックは実行されません。
ループの途中をスキップする方法
continueという命令についても触れておきましょう。こちらはループの途中で特定の場合だけ処理をスキップさせる命令です。
for i in range(5): if i == 2: continue print(i)
実行結果は次のようになります。
0 1 3 4
iが2の時だけ処理がスキップされていますが、その後もループ処理が継続されているのがわかります。