Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【Python・制御構文】~while~①


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます!Shotaです。今日も早速、Pythonにまつわる記事を書いていきます!今日はwhileの構造について説明します。

 

【目次】

 

while文

基本的な使い方

Pythonにあるもう一つの繰り返し構文はwhile文です。while文は「繰り返すための条件」を持った構文です。条件をチェックして、蹴っっかに応じて繰り返すかどうかを決定します。以下のように記述します。

 

while 条件:

  ---繰り返す処理---

 

while文は非常にシンプルな構造をしています。whileの後に繰り返すための条件が用意されています。whileではまずこの条件を確認し、結果がTrueであればその後にある繰り返す処理の部分を実行します。この処理部分は必ず右にインデントして記述します。

実行した後、またwhile文に戻って条件をチェックしてTrueならまた繰り返します。このようにして条件の確認と処理を何度も繰り返しているうち、条件がFalseになれば繰り返しを抜けて次へと進みます。

whileの条件はbool型(真偽値)です。これはifの条件とまったく同じです。if文と同じく、条件は比較演算の式を使うのが原則です。

実際に以下のコードを書いてみましょう。

    n = 1
    while n < 5:
       print(f'{n}番目の処理')
    n += 1

 

▼実行結果

f:id:ShotaNukumizu_1000:20210425075231p:plain

 

whileはコンテナとは全く関係なく条件式で繰り返しを行います。データの処理以外のことで繰り返し処理を行うようなものにも使えます。

このコードは変数nに1をそのまま代入して、whileで「nが5未満のとき」は以下の処理を繰り返すという意味になります。nが5に達した際は繰り返しから抜け出すという仕組みになっています。

コマンドプロンプトに出力すると、数字が出力されていることがわかります。

 

無限ループの恐怖

サンプルを見ればわかることですが、whileでは繰り返すごとに条件式や変数の値などが変化していきます。これは非常に重要です。毎回少しずつ変化しているので、最終的に条件式の値がTrueからFalseに変化するので構文を抜け出すことが出来ます。

まったく変化しない条件を設定しまったらプログラムが終了しません。

 

print('開始')
num = 0
while num == 0:
    print('処理')

 

このようにサンプルを実行してみると、すると、コマンドプロンプトには「処理」と表示されたっきり実行されません。このコードでは、「num == 0」という条件を設定していますが、whileでこの条件を設定しているのでいくら繰り返しても「num == 0」はFalseとして認識されないのです。

このように、「永久に抜け出せない繰り返し」を一般に「無限ループ」と言います。forではコンテナのデータを順番に取り出してなくなればおしまいなので無限ループに陥ることはないでしょう。しかし、whileは処理の内容と条件文次第では無限ループに陥る可能性があります。

whileを利用する際には、「繰り返すごとに条件がどのように変化するのか」を確認しましょう。whileでは繰り返し処理の中で条件が変化することが重要です。まったく条件が変化しないと途端に無限ループに陥るので注意しましょう。

 

まとめ

【本日のまとめ】

  •  whileでは、条件に設定した値がTrueの間、処理を繰り返し続ける。繰り返す処理部分は右にインデントする。
  • whileを利用する際には、「繰り返すごとに条件がどのように変化するのか」を確認することが重要である。
  • whileを使う際には条件を事細かに変化させることが重要

 

 

本ブログでは、こんな感じでPythonにまつわる情報や基本的な知識、Pythonの操作方法やニュースをたくさん紹介していきます。毎週日曜日に、普段とは趣向を変えて有名な自己啓発本・ビジネス書を要約・考察するブログを書いていきます。

この記事がいいと思った人はSNSにシェアしてくれると非常に嬉しいです!

明日はwhile文で扱う文法について紹介していきます。

今日も最後まで読んでくださりありがとうございました!

 

 

【参考図書】

gihyo.jp