Pythonで繰り返し処理を書くときに毎回検索しているので自分用にメモ。
forとwhileと疑似的なdo~whileの書き方。
for
繰り返す回数が決まっている場合や配列(リスト)に対して処理を実行する場合に利用する。
回数を指定
5回の繰り返し処理
for i in range(5): print(i)
実行結果
0 1 2 3 4
回数と範囲を指定
1から5まで繰り返し処理
for i in range(1, 5): print(i)
実行結果
1 2 3 4
回数と範囲を指定して1個飛ばしで処理
インデックス番号が2ずつ増加する
for i in range(0, 10, 2): print(i)
実行結果
0 2 4 6 8
配列に対する処理
配列(リスト)の数だけ繰り返し処理
a = ["a", "b", "c", "d", "e"] for i in a: print(i)
実行結果
a b c d e
配列を指定してインデックス番号を同時に取得
インデックス番号を取得しながら、配列(リスト)の数だけ繰り返し処理
for i, e in enumerate(a): print("{}:{}".format(i, e))
実行結果
0:a 1:b 2:c 3:d 4:e
while
回数は未定の待機処理などに利用する。永遠にTrueになる条件を指定してしまうと無限ループするので注意。
条件を満たす限りループ
i
が5より小さいうちは繰り返し処理
i = 0 while i < 5: print(i) i = i + 1
実行結果
0 1 2 3 4
処理をスキップする continue
VBAで言うところのNext
的なかんじでしょうか。繰り返し処理するけど特定の値に対しては処理したくないときに利用する。
条件を満たした場合スキップ
i
が"c"
の場合は以降の処理を行わず次に進む
a = ["a", "b", "c", "d", "e"] for i in (a): if i == "c": continue print(i)
実行結果
a b d e
処理を途中で中止する break
条件を満たした場合終了
i
が"c"
だった場合は繰り返し処理を終了する。
a = ["a", "b", "c", "d", "e"] for i in (a): if i == "c": break print(i)
実行結果
a b
Pythonには Do~While は存在しない
らしいです。一回目は必ず処理して二回目以降は条件を満たす限り繰り返すというあれです。
while True: で再現
n
をprint→繰り返し処理(if文がTrueになったらbreakで抜ける)
n = 1 while True: print(n) n += 1 if n == 10: break
while True:
とすると無限ループになります。必ずbreak
を書きましょう。