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

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

MENU

Pythonで繰り返し(while文)

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


Pythonでのwhile文

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

i = 0
while i < 10:
    print("i = ", i)
    i = i+1

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

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

となります。


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

単純なwhile文を入れ子構造にすることも可能です。
ただ、Pythonはあまり計算が早いわけでは無いので、オススメはできません。
例えば、少しトリッキーに表現していますが、

i = 0
j = 0
while i < 5:
    while j < 5:
        print("i = ", i, "j = ", j)
        j = j+1
    j = 0
    i = i+1

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

i =  0 j =  0
i =  0 j =  1
i =  0 j =  2
i =  0 j =  3
i =  0 j =  4
i =  1 j =  0
i =  1 j =  1
i =  1 j =  2
i =  1 j =  3
i =  1 j =  4
i =  2 j =  0
i =  2 j =  1
i =  2 j =  2
i =  2 j =  3
i =  2 j =  4
i =  3 j =  0
i =  3 j =  1
i =  3 j =  2
i =  3 j =  3
i =  3 j =  4
i =  4 j =  0
i =  4 j =  1
i =  4 j =  2
i =  4 j =  3
i =  4 j =  4

という出力になります。

(注意)
for文の記述と同じように、例えば

i = 0
j = 0
while i < 5:
    i = i+1
    while j < 5:
        j = j+1
        print("i = ", i, "j = ", j)

といったような書き方をしてしまうと、出力は

i =  1 j =  1
i =  1 j =  2
i =  1 j =  3
i =  1 j =  4
i =  1 j =  5

となってしまいます。
これは、最初の大外のループ(i = 0)でjが0から5まで増加してしまうので、i=1、2、3・・・とそれ以降のループではjのwhileループが要件を満たさずに、print関数は実行されないためです。


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

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

i = 0
while i < 10:
    i = i+1
    print("i = ", i)
    if(i == 6):
        break

上記の出力結果は、

i =  1
i =  2
i =  3
i =  4
i =  5
i =  6

となります。