機械学習・ディープラーニングがゼロから学べる大人気『脱ブラ』が無料に!

【Python 入門】while 文によるループ処理と無限ループについて解説!

こんにちは、機械学習講師の和泉です。

今回は繰り返しの構文である while 文の使い方について、初学者向けに解説します。

繰り返し構文の中でも頻出する for 文との違いや、活用方法を紹介します。

ぜひ読みながら、ご自身でも while 構文を実装してみてください。

実行環境

while 文の使い方

while 文は「ある条件のもとで」処理を繰り返すときに用いる制御構文です。繰り返しの構文なので for 文と似ていますが、条件を確認して True の時のみ処理を実行するところが特徴です。

while 文の基本的な書き方は下図のようになります。
python while 構文の図
出典:2.7.3. 繰り返し(while 文)|Chainer Tutorial

while 文は条件に当てはまっている間は処理を繰り返し、条件に当てはまらなくなった時に処理が止まります。

そのため、条件に当てはまり続けた場合は、無限に処理を繰り返します。この無限ループには、十分注意してください!

構文をまとめると、下記のようになります。

while 文の構文
while 条件式:
    繰り返したい処理①
    繰り返したい処理②
            ︙

また Python の while 文では、以下 2 点を必ず押さえておきましょう!

  • 条件式の直後に :(コロン) を付けること
  • 処理を書く際は、インデントと呼ばれる半角スペースを入れること(字下げ)
補足
インデントは半角スペース 4 つが一般的です!
参考 はじめに — コードのレイアウト - インデントpep8-ja 1.0 ドキュメント

while 文のサンプルコード

例えば、5 までの数字を数える場合を考えてみましょう。
はじめは、0 からカウントを始め、5 未満の時は、1 ずつ数え続けます。

数える過程も表示して、どのような処理になるのか、以下のサンプルコードを見てみましょう。

while 文による出力
# count = 0 で初期化した状態から始める
count = 0
# count が 5 未満の時は、処理を続ける
while count < 5:
    print(count)
    count += 1
実行結果
0
1
2
3
4

このように、カウント 5 未満 (count < 5) という条件を満たしている間は処理を続けるようになっています。

カウントが5になる (count = 5) と、条件を満たさないので処理が止まります。

やってはいけない実装例

条件の設定で、1 つ注意です!例えば、条件の設定を以下のようにすると、どうなるでしょうか?

危険な条件
count = 2
while count > 1:
    print(count)
    count += 1
この場合、2 から数え始めて、カウントが 1 以上の場合は 1 を追加するという条件になっています。つまり、無限に処理が続き、ループ処理が止まりません。

こうなると、処理が終わらず、最悪の場合サーバーがダウンします。

そのため while 文を使う時は、条件の設定に十分な注意を払いましょう!

最後に

本記事では、while 文の基本的な仕組みと使い方について解説しました。以下、まとめになります。

  • while 文は設定した条件を満たすまで、処理を繰り返す構文
  • 条件の設定を誤ると、無限ループになるので注意

このように、条件を設けて繰り返しの処理をしたいような特殊な場合は、 while 文を使いましょう。

それ以外の基本的な繰り返しの処理は、for 文でも十分対応できます。

`for` 文については、以下の記事を参考にしてみてください!
【Python 入門】for 文の使い方を解説!range() 関数も紹介 【Python 入門】for 文の使い方を解説!range() 関数も紹介

もし、動画で while 文の内容を学習したい!という方は、元副社長の動画がおすすめです。


また、Python の特訓動画もあります。Python 勉強中の方は、ぜひチャレンジしてみてください!


以上、while 文の基礎的な使い方でした。この記事が皆様の楽しい Python ライフの一助になれば嬉しいです!

参考リンク

参考 Chainer チュートリアル

大人気コース「Python & 機械学習入門コース」が無料!

現在 e ラーニングプラットフォーム「キカガク」に無料登録すると、これまで多くの方にご受講頂いた、Python の基礎から機械学習の数学やプログラミングまでを学べる大人気コース「Python & 機械学習入門コース」が無料です。

好評である手書きの数学とハンズオン形式のプログラミングを通じて、初学者でも数学の理論から実装まで一から学習できます。また、動画で丁寧に解説しているため、迷うことなく最後まで継続して学習しやすいです。

Python の基礎から機械学習を学習したい方は、ぜひ教材の1つとしてご利用ください!