Python

Pythonのwhile文でループ処理をする方法

By 2021年2月25日March 25th, 2021No Comments

この記事ではPythonのwhile文によるループ処理について紹介しています。while文を使うと同じ処理を繰り返しする事ができます。

while文にbreak、continue、elseを組み合わせる事によりwhile文のループ処理の条件をより複雑に指定することもできます。

Pythonのループ処理にはfor文もありますが、for文は指定された回数を繰り返すことでループ処理が終了しますが、それに対してwhile文はループ処理の条件を満たさなくなった場合に処理が終了する事になるので条件式の真偽値がTrueの間は同じ処理を繰り返す事になります。

Pythonのwhile文を使う方法

Pythonのwhile文の基本的な使い方についてです。構文は下記になります。

while 条件式:
    繰り返す処理
hello = 0
while hello <= 3:
    print("こんにちは。")
    hello = hello + 1

結果

こんにちは。

こんにちは。

こんにちは。

こんにちは。


このようにwhile文のループ処理の条件が終了するまで繰り返し処理が実行されています。while文の最後にループ処理が終了できるように「hello = hello + 1」と記述してインクリメントを指定しています。このインクリメントを指定する事によりループ処理から抜け出して終了する事ができています。

Pythonのwhile文はインクリメントを指定しているので無限ループから抜け出せる

先ほどのようにwhile文ではインクリメントを指定しないと条件式の真偽値が常にTrueになりループから抜け出せなくなり無限ループを引き起こしてしまいます。

hello = 0
while hello <= 3:
    print("こんにちは。")
    hello = hello + 1

「hello = hello + 1」と変数に1を加算することでインクリメントを指定しています。Pythonでは、このように演算子を代入してインクリメントを指定して無限ループにならないようにしてます。インクリメントは加算していくという意味になります。while文の最後に「変数 = 変数 + 1」もしくは「変数 += 1」でインクリメントを指定する事ができます。

誤って無限ループを引き起こした場合はキーボード「control+C(Ctrl+C)」で無限ループを停止して処理から抜けだす事ができます。

Pythonのwhileのbreak文を使ってループ処理を強制終了する方法

while文のループ処理中にbreakを指定する事で、それ以降のループ処理をせずwhile文を強制終了する事ができます。 構文は下記になります。

while 条件式:

    if 条件式:

        break

hello = 0
while hello <= 3:
    if hello == 2:
        break
    print("こんにちは。")
    hello = hello + 1

結果

こんにちは。

こんにちは。


変数「hello」の値が2になると処理が強制終了されました。そのため「こんにちは。」は2回表示されてbreak文によって残りの処理が強制終了されていて実行結果として出力されていないのが分かります。このようにbreak文を使うことでループ処理を強制終了することができました。

Pythonのwhileのcontinue文で処理をスキップする方法

while文のループ処理中の特定の条件のみ処理をスキップする場合はcontinueを使います。構文は下記になります。

while 条件式:

    if 条件式:

        continue

    繰り返す処理

hello = 0
while hello <= 3:
    if hello == 0:
        print("スキップ")
        hello = hello + 1
        continue
    print("こんにちは。")
    hello = hello + 1

結果

スキップ

こんにちは。

こんにちは。

こんにちは。


continue文を使って数値が0の場合に処理をスキップしているので最初の「こんにちは。」がスキップされています。それ以降のループ処理は正常に実行結果が出力されているのが分かります。今回のサンプルコードではスキップされているのが分かるようにprint( )で「スキップ」と出力しています。continue文は特定の処理のみスキップしてループ処理を続ける場合に使う事ができます。

Pythonのwhile文のループ処理後else文を使う方法

while文のループ処理が終了してから何か実行したい処理がある場合はelse文を使います。 while文の条件式の真偽値がTrueからFalseになるとwhile文は終了してelse文の処理が実行されることになります。構文は下記になります。

while 条件式:

    繰り返す処理

else:

    条件がFalseになると実行される処理

hello = 0
while hello <= 3:
        print("こんにちは。")
        hello = hello + 1
else:
    print("挨拶が終了しました。")

結果:

こんにちは。

こんにちは。

こんにちは。

こんにちは。

挨拶が終了しました。


while文の条件がすべて終了して真偽値がTrueからFalseになったのでelse文の処理が実行されました。else文を使うとコードを後から見返したときにwhile文のコードが何をやっているのかがわかりやすくなるので他の人がみた時にわかりやすいコードになります。

まとめ

Pythonのwhile文の使い方について紹介しました。while文でbreak、continue、elseを組み合わせる事で複雑なループ処理をする事ができました。while文では無限ループにならないようにインクリメントを指定しましょう。

Pythonの同じループ処理のfor文との使い分けとして繰り返し処理の指定回数が分かっている場合はfor文を使います。そして、繰り返す処理の回数が分かっていない場合や処理の条件を満たす場合や処理を途中で終了したい場合などにはwhile文を使います。

以上、Pythonのwhile文の使い方についてでした。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL