for文では繰り返し処理ができるのですが、こういう条件の時だけ繰り返し処理を行いたいという時には少し不便です。そんな時に使えるのがwhile文(ループ)です。while文では、条件式が真(True)である限り、ずっと繰り返し処理を行う事ができます。
while文(ループ)の基本の形
while文は以下のような書き方をします。
while 条件式:
繰り返し行う処理ここで、条件式が真(True)である限り、ずっとブロック内の繰り返し処理が行われます。
while文での書き方のポイントは次の通りです。

① whileで書き始め、その後ろに半角スペースを1つ書く。
② 条件式を書く。条件式はx > 3などでよい。この式が真(True)の時に、⑤で指定する繰り返し処理が実行される。
③ :(コロン)で一文の終わりを区切る。
④ 半角スペース4個をつけてインデントする。
⑤ ②で書いた条件式が真(True)の時に実行される繰り返し処理を書く。
while文の基本例
while文の例として0、1、2…と続いていき、7になるまで出力を続けるというコードを書いてみたいと思います。
num = 0
while num < 7:
print(num)
num += 1
'''
【実行結果】
0
1
2
3
4
5
6上記コード例では、次のような流れで処理が行われます。
1)変数numに0が代入されます。(1行目)
2)while文の処理に入ります。while文の条件式の判定です。変数numは0なのでnum < 7は真(True)になり、while文のブロック内の処理が実行されます。(2行目)
3)変数numに代入されている値0が出力されます。(3行目)
4)numに1が加えられます(1になる)(4行目)
5)2行目に戻って、while文の処理に入ります。while文の条件式の判定です。変数numは1なのでnum < 7は真(True)になり、while文のブロック内の処理が実行されます。(2行目)
以下、上記3)~5)が行われ、その後、変数numが7になるまで2)~5)が繰り返されます。変数numが7になると2行目のwhile文の条件式num < 7が偽(False)になるので、繰り返し処理が終了します。
条件式が偽の時の処理(else)
while文の条件式が真(True)の時はwhile文のブロック内の処理が繰り返し行われます。その後、条件式が偽(False)になった時に何か処理を行いたい場合、elseを使います。コードの書き方は次のようになります。
while 条件式:
繰り返し行う処理
else:
条件式が偽の時、実行される処理実際のコード例を見てみましょう。
num = 0
while num < 4:
print(num)
num += 1
else:
print("End")
'''
【実行結果】
0
1
2
3
End上記コードは次のような流れになります。1~4行目までは先ほどと同様なので説明は割愛します。
1)1~4行目で変数numが4になるまでwhileブロック内の処理が繰り返し行われる
2)変数numが4になると条件式num < 4が満たされなくなり、偽(False)を返す。
3)5行目のelse以降が実行され、6行目の文字列Endが出力される
while文での無限ループ
while文はfor文と異なり、条件式が真(True)の限り、永遠に繰り返し処理が行われます。この為。意図せず無限に繰り返し処理が行われる事があります。
下記のようなコードを実行すると、条件式はずっと真(True)のため、無限ループが発生します。
#実行しないでください
num = 0
while num < 3:
print(num)無限ループが発生してしまった。その時は?
無限ループが起こっても、無限ループから抜け出す方法はいくつかあります。
1) タスクマネージャー等を使って強制終了させる。
2) keyboardinterruptで処理を止める。
JupyterNotebookの場合
JupyterNotebookを使ってコーティングしている場合は、画面上部の■(停止ボタン)をクリックすると、強制停止させることができます。


コメント