繰り返し処理のfor文を習得したら、次はwhile文です。
for文が指定回数、データ数に対して、while文は条件を満たしている間繰り返します。
こちらもよくみるので、しっかり習得しましょう。
本記事はこんな方におすすめです。
本記事の内容
- while文の使い方
- while else文の使い方
- breakの使い方
- continueの使い方
- listを取得しながら繰り返す
- 無限ループに気をつけよう
繰り返し処理は、for文を使うことが多いです。
while文は状態を監視するなどの用途で、使うことがあります。
python入門 基礎まとめも参考にしてください。
目次
whileの使い方
whileは条件を満たしている間、処理を繰り返します。
条件はTrue、Falseと判定され、WhileはTrueになるまで繰り返します。
比較演算子や条件については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<5がFalseになるので、繰り返し処理が終わります。
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と判定されるので、その特性も使っています。
無限ループに気をつける
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文の使い方でした。
お疲れ様です。