こちらの記事ではfor文を利用して繰り返し処理を行うための書き方を学んでいきます。
今までの記事では主に上から順に実行されていく形で処理が進んでいました。
また前回の記事では条件によって異なる処理を実施する書き方を紹介しています。
今回は以下のように同じ処理を繰り返す処理を学んでいきたいと思います。



繰り返し処理の中にある処理Aを繰り返し実行していきます


目次
for文の基本
繰り返し処理をfor文に置き換え
まずは同じprint処理を3回続けて実施する処理を書いてみます。
# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]
# printで表示
print(name[0])
print(name[1])
print(name[2])


# それぞれの変数に名前を入れる
name = ["田中", "佐藤", "小林"]
# printで表示
for temp in name:
print(temp)
5行目のコードで今回紹介するforが登場しています。文法としては以下の書き方になります。
for [for内で使う変数] in [繰り返し用の配列]
内部的な処理は「繰り返し用の配列」の先頭から1つずつ要素を取得して「for内で使う変数」に渡します。
最初の繰り返し処理の6行目のtempには"田中"が入ってくるので、print処理で表示、続けて"佐藤"、"小林"とtemp変数の中身が変わっていきます。
今回の例では"小林"まで進むと配列が終わりなので繰り返し処理が終了されます。


決められた回数分繰り返すfor文

nums = [1, 2, 3, 4, 5]
for temp in nums:
print("Hello")

こういった場合は以下のような書き方が出来ます
for temp in range(5):
print("Hello")


ちなみにrange関数は開始値を指定することも出来ます。
for temp in range(1, 5):
# 実行結果:1 2 3 4
print(temp)
上記の場合は、1から4までがprintで表示され、5は出力されません。
range関数のマニュアルを確認して仕様を押さえておきましょう。
for文を途中で抜けたい場合
今回紹介する繰り返し処理と条件分岐の処理であるif文を組み合わせることで以下のような処理を書くことができます。

for文の処理の中でif文を記載し、条件に合致したらfor文を抜ける「break」を実行することで繰り返し処理から抜けることができます。
for temp in range(10):
if temp == 5:
break
print(temp)
# 実行結果:0 1 2 3 4
5の繰り返し処理の中身でprint処理手前のif文で条件に合致したためbreakが実行される、処理が終了するので、5以降は表示されません。

この例ではbreak文はifの中、print文はfor文の中(ifの外)ですね

for文の一部の処理をスキップしたい場合
以下のフロー図のようにif文の条件に合致した場合、処理Bを行わずに次の繰り返し処理に進みたいケースにも対応できます。

先ほど抜ける場合にはbreak文を使いましたが、今回はcontinue文を使って処理を行います。
for temp in range(10):
if temp == 5:
continue
print(temp)
# 実行結果:0 1 2 3 4 6 7 8 9
上記の通り、5のprint処理だけがスキップして最後の繰り返しまで処理されます。


python入門~for文による繰り返し処理の使い方
今回の記事ではfor文を使った繰り返し処理の方法について紹介しました。
ifと合わせて制御処理には欠かせない文法になるため確実にマスターしておくようにしましょう。
合わせて紹介したif文と組み合わせた処理のスキップや繰り返し処理から抜ける方法もよく使われる書き方です。
続けての記事ではもう1つの繰り返し処理の構文であるwhile文について説明します。
補足~本ページQ&A
for文の入れ子処理について


どうしても必要な場合のみ利用しましょう
代表的な例として掛け算の九九表を表示するプログラムです。for文の入れ子処理のみで作成することができます。
for i in range(1, 10):
print("-----" + str(i) + "の段-----")
for j in range(1, 10):
print(i * j)
for文が最後まで進んだ時だけ特定の処理を実施したい

