※この記事にはプロモーションが含まれています。

12. 繰り返し処理(While文)

図解!Pythonでdo whileの実現方法を徹底解説!

更新日:

while文では、条件式が初めからfalseの場合にはブロック内の処理が一度も行われません。一方で、do while文ではブロック内の処理が必ず一度は実行されます。

 
但し、Pythonではこのdo whileという構文が無く、必ず1回は処理を実行したい場合、while Trueとbreakを組み合わせるなど、別の方法を使って記述することになります。

 
このページでは、Pythonにおけるwhile文の様々な使い方の中でも、do while文の実現方法について、具体的な例も交えながら確認していきます。

 
do while文以外のwhile文の詳しい説明は、「図解!Python while文のループ処理を徹底解説!」を参照ください。

 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
発売数8,500本突破を記念して、今だけ期間限定で87%オフの大セール中!!!

Pythonにおけるwhile文の記述方法

まずはwhile文の基本的な記述方法からおさらいしていきましょう。while文とは、for文と同様、繰り返し処理の1つです。

条件式を指定し、その条件式がTrueの間はWhile文のブロック内の処理が繰り返し実行されますが、条件式がFalseになった時にwhile文は終了します。

記述方法は以下のとおりです。

while文に含まれる処理は、インデント(字下げ)して記述します(通常、インデントには半角スペース4つが使われます。)。処理が複数行ある場合も、全てインデントします。

インデントが終わると、while文の一連の処理は終わります。また条件式の後には、必ず :(コロン)を付けてください。

 
for文とwhile文は同じ繰り返し処理ですが、次の点が異なります。

  • for文は回数を指定して、指定した回数分の繰り返し処理を行います。
  • 一方でwhile文は、条件を指定して、その条件がTrueの間は繰り返し処理を行い、Falseになれば繰り返し処理を抜けます。

for文の詳しい説明は、「図解!Python for ループ文の徹底解説」を参照ください。

 
 
それではwhile文の例を見ていきましょう。

 
変数iに0を初期値として代入し、while文の条件としてiが3未満を指定しています。そして、printでiの値を表示し、iに1を加算しています。

0
1
2

iが3になるまでは、指定された条件がTrueですので繰り返し処理を行う事になります。従ってprintで表示されるiの値は、0から2までになります。

 
この基本的な使い方を元に、do while文の実現方法を詳しく確認していきます。

 
 

breakでwhile文のループを抜ける方法

またPythonでdo while文を実現するのに欠かせないbreakの使い方についても、おさらいをしておきましょう。
 
while文の繰り返し処理の途中で特定の条件を満たした場合、繰り返し処理を抜けたい時には、breakを使います。

 
 
変数aに0を代入し、while文でaに1を加算し、変数aの内容をprint()で出力しながら、10になるまで繰り返し処理をします。

 
この処理の途中、if文で変数aを3で割った余りが0、つまり3の倍数になった場合、処理を中止するようbreakを挿入します。

1
2

すると処理結果として、1、2と表示され、3になった時点でループを抜けていることがわかります

 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
発売数8,500本突破を記念して、今だけ期間限定で87%オフの大セール中!!!

Pythonにおけるdo while文の実現方法

他のプログラミング言語ではdo whileという構文があり、例えばC言語では以下のように記述します。
 

この構文では、処理は必ず1回は実行し、最後にwhile文の条件式で判定を行い、条件を満たしていれば、繰り返し処理を実行するというものです。

 
但し、Pythonではこのdo whileという構文が無く、必ず1回は処理を実行したい場合、while Trueとbreakを組み合わせるなど、別の方法を使って記述することになります。

 

while Trueとwhileの条件文にTrueを記述すると、条件が常にTrueになり、無限に繰り返し処理が続くことになります。そこで、実行したい処理に続けてif文とbreakを記述します。すると、if文の条件判定の前に処理があるので、必ず1回は実行されることになります。

 
例えば、次のようなwhile文があるとします。

aは0です。
aは1です。
aは2です。

ここでは、変数aが0から2まで処理が繰り返されています。ここで使われているprint、formatの詳しい説明は、「PythonにおけるPrint、Formatの使い方」を参照ください。

 
 
次に、変数aに代入する値を3に変更すると、while文の処理はスキップされ、処理結果には何も表示されません。

 
 
ここで、最低でも1回は処理を実行したい場合は、while Trueとif文を組み合わせて、次のように記述します。

aは3です。

すると、最初の1回は処理が実行され、その後にif文の条件である変数aが3以上になり、breakでwhileのループを抜けています。

 

ポイント

このようにして、最低限1回は処理をしたい場合、while Trueとbreakを用いて、do whileの代わりとして利用することができます。

 
 
関連記事です。
whileについて、do while文以外の詳しい説明はこちらをご覧ください。

 
 
Pythonに関する重要なトピック全般について学んでいきたいと考えておられる方には、次のリンクをお勧めします。
 

 
 
 
最後に...


Pythonの学習においては、実際に様々なプログラムを書いて試していくことが非常に重要です。Pythonについて、さらに詳しく学ばれたい方は、以下の私のUdemy講座をご検討いただければ幸いです。


Pythonを用いて世界中のWebサイトから自動的にデータ収集する方法を、基礎からていねいに学ぶことができます。Pythonを初めて学ばれた方も、最初に取り組みやすい内容になっています。


>> Pythonによるビジネスに役立つWebスクレイピング
発売数8,500本突破を記念して大セール中!期間限定になりますのでお早めに。
Pythonによるビジネスに役立つWebスクレイピング(BeautifulSoup、Selenium、Requests)講座の画面

既に8,500名以上の方に受講頂き、大変好評です。またコースに満足いただけない場合でも、30日返金保証があるので安心です。

期間限定の割引クーポンは、こちらから!
>> Pythonによるビジネスに役立つWebスクレイピング
   
   





-12. 繰り返し処理(While文)

Copyright© ビジPy , 2024 All Rights Reserved.