【Python】while文(ループ)の作り方と使い方

while loop eyecatch image

forでは繰り返し処理ができるのですが、こういう条件の時だけ繰り返し処理を行いたいという時には少し不便です。そんな時に使えるのがwhile(ループ)です。whileでは、条件式が真(True)である限り、ずっと繰り返し処理を行う事ができます。

目次

while文(ループ)の基本の形

whileは以下のような書き方をします。

Python
while 条件式:
    繰り返し行う処理

ここで、条件式が真(True)である限り、ずっとブロック内の繰り返し処理が行われます。
whileでの書き方のポイントは次の通りです。

whileで書き始め、その後ろに半角スペースを1つ書く。
② 条件式を書く。条件式はx > 3などでよい。この式が真(True)の時に、⑤で指定する繰り返し処理が実行される。
(コロン)で一文の終わりを区切る。
半角スペース4個をつけてインデントする。
⑤ ②で書いた条件式が真(True)の時に実行される繰り返し処理を書く。

while文の基本例

whileの例として012…と続いていき、7になるまで出力を続けるというコードを書いてみたいと思います。

Python
num = 0
while num < 7:
    print(num)
    num += 1
    
'''
【実行結果】
0
1
2
3
4
5
6

上記コード例では、次のような流れで処理が行われます。
1)変数num0が代入されます。(1行目)
2)whileの処理に入ります。whileの条件式の判定です。変数num0なのでnum < 7は真(True)になり、whileのブロック内の処理が実行されます。(2行目)
3)変数numに代入されている値0が出力されます。(3行目)
4)num1が加えられます(1になる)(4行目)
5)2行目に戻って、whileの処理に入ります。whileの条件式の判定です。変数num1なのでnum < 7は真(True)になり、whileのブロック内の処理が実行されます。(2行目)
以下、上記3)~5)が行われ、その後、変数num7になるまで2)~5)が繰り返されます。変数num7になると2行目のwhileの条件式num < 7が偽(False)になるので、繰り返し処理が終了します。

条件式が偽の時の処理(else

whileの条件式が真(True)の時はwhileのブロック内の処理が繰り返し行われます。その後、条件式が偽(False)になった時に何か処理を行いたい場合、elseを使います。コードの書き方は次のようになります。

Python
while 条件式:
    繰り返し行う処理
else:
    条件式が偽の時、実行される処理

実際のコード例を見てみましょう。

Python
num = 0
while num < 4:
    print(num)
    num += 1
else:
    print("End")

'''
【実行結果】
0
1
2
3
End

上記コードは次のような流れになります。1~4行目までは先ほどと同様なので説明は割愛します。
1)1~4行目で変数num4になるまでwhileブロック内の処理が繰り返し行われる
2)変数num4になると条件式num < 4が満たされなくなり、偽(False)を返す。
3)5行目のelse以降が実行され、6行目の文字列Endが出力される

while文での無限ループ

whileforと異なり、条件式が真(True)の限り、永遠に繰り返し処理が行われます。この為。意図せず無限に繰り返し処理が行われる事があります。
下記のようなコードを実行すると、条件式はずっと真(True)のため、無限ループが発生します。

Python
#実行しないでください
num = 0
while num < 3:
    print(num)

無限ループが発生してしまった。その時は?

無限ループが起こっても、無限ループから抜け出す方法はいくつかあります。
1) タスクマネージャー等を使って強制終了させる。
2) keyboardinterruptで処理を止める。

JupyterNotebookの場合

JupyterNotebookを使ってコーティングしている場合は、画面上部の■(停止ボタン)をクリックすると、強制停止させることができます。

Visual Studio Codeの場合

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次