Python Python 入門 プログラミング

【python 入門】繰り返し処理 while文の使い方をマスターする!

python while

 

繰り返し処理のfor文を習得したら、次はwhile文です。

for文が指定回数、データ数に対して、while文は条件を満たしている間繰り返します。

こちらもよくみるので、しっかり習得しましょう。

 

本記事はこんな方におすすめです。

hituji
繰り返し処理のwhile文の使い方を知りたい

 

本記事の内容

  • while文の使い方
  • while else文の使い方
  • breakの使い方
  • continueの使い方
  • listを取得しながら繰り返す
  • 無限ループに気をつけよう

 

繰り返し処理は、for文を使うことが多いです。

while文は状態を監視するなどの用途で、使うことがあります。

python入門 基礎まとめも参考にしてください。

>> python 入門 基礎まとめ

 

サンプルコード

 

 

スポンサーリンク

whileの使い方

whileは条件を満たしている間、処理を繰り返します。

条件はTrue、Falseと判定され、WhileはTrueになるまで繰り返します。

比較演算子や条件についてはif文の記事で紹介しています。

>> 条件分岐 if文の書き方、使い方を習得する

 

whileは次のような構文になります。

whileの構文

while 条件:

    処理

 

コードで確認しましょう。

countの変数を1ずつ足して、count<5となるまで繰り返し処理をします。

count = 0
while count < 5:
    print(count)
    count = count + 1
0
1
2
3
4

 

countが5になると、count<5Falseになるので、繰り返し処理が終わります。

 

while elseの使い方

for elseと同じように、繰り返し処理が完了したときの処理を追加することができます。

while else文を使います。

while elseの構文

while 条件:

    処理

else:

    処理

 

コードで確認しましょう。

先程のコードにelseを追加します。

count = 0
while count < 5:
    print(count)
    count = count + 1
else:
    print('countが5になりました。')
0
1
2
3
4
countが5になりました。

 

繰り返し処理が完了後に、「countが5になりました」と出力されます。

 

breakの使い方

for文でも同じですが、繰り返し処理を強制的に抜ける場合はbreakを使います。

breakしたいときは、if文で条件を指定します。

 

breakの使い方

while 条件:

    if 条件:

        break

    処理

 

コードで見ていきましょう。

countが3になった時に、繰り返し処理を抜けるようにします。

count = 0
while count < 5:
    if count == 3:
        break
    print(count)
    count = count + 1
0
1
2

 

while count < 3にすれば良いのでは?と思われた方もいるでしょう。

その通りです!動きの確認なので、コードはあまり意味ありません。

 

さきほどの、while elseとbreakを試してみましょう。

  
count = 0
while count < 5:
    if count == 3:
        break
    print(count)
    count = count + 1
else:
    print('繰り返し完了')
0
1
2

 

for文と同じで、breakで抜けた場合は、elseの後の処理はされません。

 

continueの使い方

continueを使うと、繰り返し処理は継続しますが、continue以降の処理をしません。

continueの使い方

while 条件:

    if 条件:

        continue

    処理

 

コードでみましょう。

count = 0
while count < 5:
    if count == 3:
        print('count==3の時の処理')
        count = count + 1
        continue
    
    print(count)
    count = count + 1
0
1
2
count==3の時の処理
4

 

countが3の時に別の処理をさせて、処理を継続することができます。

if count==3の中にcount = count + 1としてあるのは、これがないとcountが3から増えないので、無限に繰り返されるためです。

 

下記のようなコードでも同じ処理になりますので、参考にしてください。

count = 0
while count < 5:
    if count == 3:
        print('count==3の時の処理')
    else:
        print(count)
    count = count + 1

 

listを取得しながらループ

for文のようにlistのデータを取得しながら繰り返すこともできます。

listはpopメソッドを使うと、listの末尾データを一つずつ取得することができます。

 

この特性を使うと、次のようになります。

list_a = ['りんご', 'みかん', 'ぶどう']
while list_a:
    print(list_a.pop())
ぶどう
みかん
りんご

 

if文の記事でも紹介していますが、listなど配列は空になると条件的にはFalseと判定されるので、その特性も使っています。

>> 条件分岐 if文の書き方、使い方を習得する

 

無限ループに気をつける

whileは条件がTrueの間は、ひたすらループを繰り返します。

あえて、ずーっと繰り返し処理を続け、ある状態になったらbreakで抜けるという処理を使うことがありますが、これは中級者向けです。

あえて、無限ループを作ってみます。

import time
count = 0
while True:
    print(f'\r{count}', end='')
    count += 1
    time.sleep(1)

1秒ごとに1,2,3,4とカウントを永遠にします。

 

無限ループの止め方は、使っているものによります。

下記を参照ください。

jupyter notebook

停止ボタンがあるので、それで停止できます。

Google Colabratory

コードセルの横に停止ボタンがあるので、それで停止できます。

pythonスクリプト

黒い画面(コマンドプロンプト/ターミナル)で動かしている場合は、Ctrl+cで停止できます。

 

あっ!しまった!無限ループ!

っとなったら、このやり方で停止をしてください。

以上が、while文の使い方でした。

お疲れ様です。

-Python, Python 入門, プログラミング