プログラミング言語Pythonにおけるwhile文について、Python初心者向けに具体的なソースコードで解説していきます。
Pythonのwhile文を使うと、for文のように繰り返し処理をすることができます。
※for文について学習したい人は、Python for文について解説した記事をご覧下さい。
本記事では、Python while文の書き方・while〜else、breakや無限ループについて解説していく充実の内容です。また、for文との違い・使い分けについてもお伝えしています。
ぜひ最後まで読んで、Python while文の基本を理解してください。
公開日:2021年1月28日
INDEX
Python whileでできること
while文は処理の繰り返しを行う時に使います。同じ計算を複数回行う時にwhile文を使う事は基本ですが、書式を理解し書き方を工夫することで、様々な場面で使用することができます。
例えば、下記のようなことができます。
- while~else:基本的には繰り返し処理を行いますが、特定の条件だけ別の処理を行うことができます。
- break:繰り返し処理を行いますが、特定の条件の時に「break」を記述することで、繰り返し処理から抜けることができます。
- 無限ループ:永遠に処理を繰り返すことができます。例えば、「1.不具合が発生したらその時点でプログラムを停止する」や、「2.無限ループで何かの事象を待ち、事象が発生したらbreakを使って無限ループを抜けて処理を進める」のような時に使用されます。
なお、do~whileは、1回目の処理は実行して、それ以降は条件を満たした場合のみ繰り返したい時に使われます。他のプログラミング言語では良く使われる書式ですが、do~whileは、Pythonでは使用できないので注意が必要です。while文の書き方を工夫して実現する必要があります。
while文とfor文の違い
while文と同様の動作をするものでfor文があります。どちらも繰り返し処理を行うために使用される点では同じですが、繰り返し条件が異なります。それぞれの繰り返し条件は以下です。
- while文:条件を満たしている間
- for文:指定された回数の間
使い分けとしては、繰り返し処理の回数がわかっている場合はfor文を使い、繰り返す回数は分からないが、条件を満たす場合に処理をやめたい場合は、while文を使用すると良いでしょう。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >Python while文の書き方(書式)と具体例
まずは、Python while文の書き方(書式)から見ていきましょう。
【Python whileの書き方】
1 2 |
while (条件式): 繰り返す処理 |
Pythonでは、「(条件式)」の後ろに「:」が付くことに注意しましょう。
「:」を付け忘れるだけで、プログラムが動作しなくなってしまいます。
Python while文の書き方は以上になります。次の章では、Python whileの具体例を見てみます。
Python whileの具体例
では、具体的なソースコードでPython while文の学習をしましょう。
以下のソースコードをご覧下さい。
1 2 3 4 |
num = 0 while (num < 5): print(num) num += 1 |
【出力結果】
1 2 3 4 5 |
0 1 2 3 4 |
まず、ソースコード1行目で変数numに1を代入しています。
そして、ソースコード2行目からwhile文に入ります。while文は条件式(今回は「num < 5」)がTrue(真)である限りwhile以下の処理を続けます。
したがって、処理を行うたびに「num += 1」により変数numに1を足しています。
while文の条件式が「num < 5」なので、4まで出力されていることがわかります。
Python while〜elseについて
以上で学習したwhile文は、条件式がTrue(真)の間はwhile内の処理が繰り返し実行されますが、条件式がFalse(偽)になるとwhile文は終了します。
しかし、while内で「else」を記述することにより、条件式がFalse(偽)の時にelse以下の処理を実行することができます。
では、while〜elseの具体的なソースコードを見てみましょう。
1 2 3 4 5 6 |
num = 0 while (num < 5): print(num) num += 1 else: print("繰り返し処理終了") |
【出力結果】
1 2 3 4 5 6 |
0 1 2 3 4 繰り返し処理終了 |
上記のソースコードでは、変数num=5となる時にwhileの条件式がFalse(偽)となるので、else以下の処理が実行されます。
よって、出力結果としては「4」の後に「繰り返し処理終了」という文字が表示されてwhile文全体も終了しています。
以上がwhile〜elseの使い方の解説になります。
Python while文のbreakについて
Python while文においてbreakを使用すると、break以降の処理を行わずwhile文全体が終了します。
では、ソースコードでbreakの使い方を学習していきましょう。
1 2 3 4 5 6 |
num = 2 while(True): print(num) num -= 1 if (num == 0): break |
【出力結果】
1 2 |
2 1 |
ソースコード4行目より、変数numが1ずつ減ることがわかります。
そして、ソースコード5行目でif文が登場します。
※Python if文が理解できていない人は、Python if文について解説した記事をご覧ください。
もし変数numが0になったらbreakを実行することでwhile文を終了します。
その結果、numは1まで減少するところまでで処理が終わり「2」と「1」が出力されました。
以上がPython while文におけるbreakの使い方の解説になります。
Python while文の無限ループについて
最後に、while文における無限ループについて紹介します。
無限ループとはその名の通り、繰り返し処理が永遠に行われることです。
例えば、以下のようなソースコードを見てください。
1 2 3 |
num = 0 while (num < 5): print(num) |
【出力結果】
1 2 3 4 5 6 |
0 0 0 0 0 (以下無限に0が続く) |
上記の場合は、変数numに対して数字を足す処理が何もされていないので、変数numはずっと0のままです。
while文の条件式「num < 5」より、0は5よりも小さいので、無限に繰り返し処理を実行し続けます。(無限ループ)
よって無限に0が表示されたのです。無限ループを止めるには、キーボードで「Ctrl+C(macの場合はcontrol+C)」を押しましょう。
すると、以下のようになり、無限ループを止めることができます。
1 2 3 4 5 6 7 8 |
0 0 0 0 ^C0 (ここでループを止めたとする) Traceback(most recent call last): File "<stdin>", line 2, in <module> KeyboardInterrupt |
しかし、無限ループはパソコンへの負担が大きいので注意しましょう。
いかがでしたか?Python while文の基本が理解できましたか?
while文はfor文に似ていて、繰り返し処理を実行できるということがお分かりいただけたかと思います。
Python while文の書き方を忘れた時は、また本記事でPython while文を見直しましょう。
Pythonは、近年需要が高まっているプログラミング言語の1つです。「Pythonでできることは?機械学習から業務効率化まで初心者向けに解説」の記事も参考に、ぜひPythonを学習してみてください。
はじめてのPython 少しずつ丁寧に学ぶプログラミング言語Python3のエッセンス
AIやデータサイエンスの講座でPythonが難しかった方は、この講座から始めましょう。今最も熱いプログラミング言語Pythonを学ぶことで、あなたの可能性は大きく広がります。プログラミング入門用の教材としてもおすすめです。
\無料でプレビューをチェック!/
講座を見てみる評価:★★★★★
仕事でPythonを使っている人がいるので以前から気になっていました。ゆっくりと丁寧に教えていただいたので、挫折することなく最後まで受講できました。ステップごとに演習も設けられていて、理解度UPに役立ちました。今後、仕事に生かして業務効率化を図りたいと思っています。
評価:★★★★★
初学者によりそってくれる姿勢がありがたく、この先も安心して学習できそうだと期待できる。
最新情報・キャンペーン情報発信中