【Python】3分で学ぶwhile文―繰り返し処理と無限ループ

Python

Pythonで繰り返し処理を実装する際に用いるwhile文の使い方を3分で解説します。

初心者向けに、そもそも繰り返し処理とは何か?while文の基本的な構文から、陥りがちな無限ループの罠まで網羅的に解説します。

このページを理解できれば、Pythonでwhile文を自由自在に用いれるようになることを目指します。

このページで学べる内容
  • 【前提】繰り返し処理とは?
  • while文の使い方と構文ルール
  • for文との使い分け
  • 無限ループとは?

Pythonエンジニアを目指す方や、Pythonを用いてプログラミングを行いたいという方であれば、絶対に知っておきたい基本知識です。

是非、最後までご覧ください。

繰り返し処理とは?

繰り返し処理とは、その名の通り同じ処理を複数回繰り返す処理のことです。

例えば、「こんにちは!」という文字を100回表示させたい場合。この場合、本来であれば「こんにちは!」という処理を100個記述しなければなりません。

そんな時に便利なのが繰り返し処理です。

繰り返し処理を用いることで1回のコーディングで複数回の処理を行うことができるようになります。

早速、while文の使い方を解説します。

Python:while文の使い方

while文は、ある特定の条件が「真:true」の場合に指定した処理を繰り返します。

構文ルール:while文

while 条件式:
(繰り返したい処理)

構文ルールとしては、非常に簡易的です。

初心者が唯一陥りがちなのが、条件式の後の「:(コロン)」をつけ忘れてしまう点です。この点だけ、注意して覚えるようにしましょう。

Python:while文のサンプルコード

サンプルコードを確認していきます。

counter = 0
while counter < 3 :
   print("Hello world!")
   print("今は"+str(counter)+"回目の処理です。")
   counter = counter +1


# 結果はこちら
"""
Hello world!
今は0回目の処理です。
Hello world!
今は1回目の処理です。
Hello world!
今は2回目の処理です。
"""
サンプルコードの解説

2行目
「while counter < 3 :」
⇒ 変数"counter" が3以下の場合に処理を行うことを指定

3~4行目
繰り返し処理を記述

5行目
変数"counter" を1増加させる
⇒この処理を行わないと無限ループに陥ります (無限ループについては後述)

注意するべきは、変数"counter" が0から開始されていて、3になった時点で処理を抜けているということ。

1から開始されるわけではない点に注意しましょう。

for文とwhile文の違い

Pythonにおける繰り返し処理は、for文で実現する方法もあります。

for文とは?

for文は指定したオブジェクトから要素を順番に取得し、その要素の数だけ処理を繰り返す文です。

sample_list = ["あいうえお","かきくえこ","さしすせそ"]
for i in sample_list:
    print(i)
# 結果はこちら
"""
あいうえお
かきくえこ
さしすせそ
"""

詳しくはこちらの記事で解説しております。

上記サンプルコードと同様の処理をfor文を使って書くこともできます。

for counter in range(3) :
   print("Hello world!")
   print("今は"+str(counter)+"回目の処理です。")


# 結果はこちら
"""
Hello world!
今は0回目の処理です。
Hello world!
今は1回目の処理です。
Hello world!
今は2回目の処理です。
"""

結果は、どちらも全く同じになります。

では、2つの相違点はというと・・・。

for/while

for文
⇒繰り返しの回数が決まっている場合に向いている

while文
⇒繰り返しの条件が決まっている場合に向いている

for文は、回数を明示的に指定するのに向いています。

ただこれはあくまでも「向いている」という話であって、適切なコーディングをしていればどちらも同じ処理を実現することは可能です。

そのうえで、while文よりはfor文の方が初心者向けだったりするのです。その理由が「無限ループ」です。

while文の罠:無限ループ

while文は、for文と違い無限ループを意識的に注意する必要があります。

無限ループとは、その名の通り処理を無限に繰り返してしまうことです。

先ほどのサンプルコードを少しだけ編集して、無限ループを起こしてみます。

counter = 0
while counter < 3 :
   print("Hello world!")
   print("今は"+str(counter)+"回目の処理です。")
# counter = counter +1 をコメントアウト

「counter = counter +1」をコメントアウトして、変数”counter” を永遠に0のままにしています。

この場合、while文の条件「while counter < 3 :」が永遠に真:trueとなってしまいますよね。すなわち、常に処理が行われるようになってしまうのです。これが、無限ループです。

Hello world!
今は0回目の処理です。
Hello world!
今は0回目の処理です。
Hello world!
今は0回目の処理です。
Hello world!
今は0回目の処理です。
Hello world!
今は0回目の処理です。
Hello world!
今は0回目の処理です。
Hello world!
今は0回目の処理です。
Hello world!
今は0回目の処理です。
Hello world!
今は0回目の処理です。
・・・・・

for文を用いれば、無限ループに入ることはそうそうありません。どうしても、while文を利用したい場合は、無限ループに最大限の注意を払いましょう。

Pythonを1から学習したい方は

Pythonをより実践的に学びたい―。実際にコーディングをしながら学びたい―。独学に限界を感じている―。

そんな方には、無料体験/オンライン完結もあるプログラミングスクールで学ぶのがおすすめです。都度検索しながら知識を補完していくのではなく、1から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。

各プログラミングスクールの特徴をまとめた記事をこちらに記載しておきますので、是非ご覧ください。

タイトルとURLをコピーしました