英国でデータサイエンスを学ぶ

30代になってから海外で統計学・機械学習・プログラミングを勉強

MENU

Pythonで繰り返し(for文、break、continue)

Pythonでの繰り返しをfor文で行う時のメモです。


Pythonでのfor文

もっとも単純な繰り返しは以下の通りです。

for i in range(10):
    a = i
    print("a = ", a)

これで0から9までの数字が出力されます。具体的な出力は

a =  0
a =  1
a =  2
a =  3
a =  4
a =  5
a =  6
a =  7
a =  8
a =  9


Pythonで繰り返し(入れ子構造)

単純なfor文を入れ子構造にすることも可能です。
ただ、Pythonはあまり計算が早いわけでは無いので、オススメはできません。
例えば、

for i in range(5):
    a = i
    for j in range(5):
        b = j
        print("a = ", a, "b = ", b)

と実行すると以下のような出力になります。

a =  0 b =  0
a =  0 b =  1
a =  0 b =  2
a =  0 b =  3
a =  0 b =  4
a =  1 b =  0
a =  1 b =  1
a =  1 b =  2
a =  1 b =  3
a =  1 b =  4
a =  2 b =  0
a =  2 b =  1
a =  2 b =  2
a =  2 b =  3
a =  2 b =  4
a =  3 b =  0
a =  3 b =  1
a =  3 b =  2
a =  3 b =  3
a =  3 b =  4
a =  4 b =  0
a =  4 b =  1
a =  4 b =  2
a =  4 b =  3
a =  4 b =  4

Pythonでfor文を途中で止める break

条件に合致した場合には繰り返し処理を途中で止めるには、breakを使用します。

for i in range(10):
    a = i
    print("a = ", a)
    if i == 5: 
        break

上記の出力結果は、

a =  0
a =  1
a =  2
a =  3
a =  4
a =  5

となります。

Pythonのfor文でbreakの後ろに書いたコードはどうなるか

オブジェクトaの出力をbreakの後ろに置いたとしたら、

for i in range(10):
    a = i
    if i == 5: 
        break
    print("a = ", a)

出力結果は、

a =  0
a =  1
a =  2
a =  3
a =  4

となり、break以降は出力されません。


Pythonでfor文の途中でスキップする continue

条件に合致した場合には繰り返し処理をスキップし、それ以降の繰り返しループを実行するには、continueを使用します。

for i in range(10):
    a = i
    if i == 5 or i == 7: 
        continue
    print("a = ", a)

これを実行すると、iが5と7の時にcontinue以降の処理をスキップして次のループ処理に移ります。
便利ですね。
出力結果は以下のようになります。

a =  0
a =  1
a =  2
a =  3
a =  4
a =  6
a =  8
a =  9