プログラミングを実行する際に、特定の処理を繰り返し実行したいケースがあると思います。
Pythonには、繰り返し処理を実行するための構文がいくつか用意されていますが、その中の1つに while文が存在します。
今回は、Pythonで while文を使用する方法について解説したいと思います。
基本的な使用方法から応用方法、他の繰り返し処理構文との違いについてなど、詳しく説明していきたいと思いますので、ぜひ参考にしてみてください。
Pythonのwhile文とは?
while文は、繰り返し処理(ループ処理)を行うための構文の一種です。
同じく、繰り返し処理を実行するための構文の1つに for文がありますが、for文と while文では、繰り返し処理を行う上での継続条件がそれぞれ異なります。
for文は、ループする回数を条件式で指定し、その回数に到達したか否かで処理を継続するかどうかを判断します。
一方、while文の場合は決まったループ回数はなく、指定の条件が満たされなくなる (Falseになる) まで処理を繰り返し続けます。
回数を基準にする必要がないため、for文よりも条件式の内容を柔軟に指定できるのが特徴です。
while文の使い方
それではさっそく、while文の使い方について確認していきましょう。
基本構文
while文を使用する際の基本構文は、以下のように記述します。
while 条件式:
処理内容指定した条件式の結果が Trueの場合に、ブロック内に記述した処理内容が実行され、Falseになった段階でループが終了します。
以下のサンプルコードで、実際の動きを見てみましょう。
num = 0
while num != 5:
num = random.randint(1, 10)
print(num)4
6
7
4
3
5上記の例では、1 ~ 10の範囲でランダムに整数を生成し、その数値が5であるかどうかを基準にループを実行しています。
5以外の数値が出た場合はTrue、5の場合は Falseとなる条件式のため、5の数が生成されるまで処理が継続されているのが結果からも分かりますね。
これが、while文の基本的な動作となります。
while文とif-else文を組み合わせる
while文のブロック内で、if文を使用することもできます。
ループ処理の継続条件に幅があるため、処理をさらに詳しく条件分けしたい場合に便利です。
num = 0
while num != 5:
if num < 5:
print(str(num) + ': 5よりも小さい数値です')
else:
print(str(num) + ': 5よりも大きい数値です')
num = random.randint(1, 10)0: 5よりも小さい数値です
6: 5よりも大きい数値です
9: 5よりも大きい数値です上記のサンプルでは、生成した数値が5より大きいかどうかによって、実行する処理内容を条件分けしています。
このように、if-else文などと組み合わせることで、複雑な処理内容にも対応することができます。
break文を使用してwhileブロックから抜ける
while文は基本的に、条件式の結果が Falseになるまで処理が実行され続けます。
ただし、break文を使用することで、処理を途中で抜け出すこともできます。
num = 1
while num != 5:
if num % 2 == 0:
break
num = random.randint(1, 10)
print(num)3
7
2上記の例では、while文の条件式で指定した内容の他に、生成した数値が偶数であった場合にも処理を中断するよう if文で条件分けしています。
実行結果を見てみると、処理の途中で偶数である2が生成されているため、5の数でない場合でもループ処理が終了しているのが分かりますね。
このように、if文と break文を組み合わせることによって、特定の条件下でのみループを中断するよう指定することができます。
処理が無限ループに陥った場合の対処法
既に解説したように、while文は、条件式の結果が Falseになるまでループ処理を実行し続けます。
裏を返せば、結果が Trueにしかならない条件式を指定した場合に、処理が終了することなく永遠に実行され続けるということになります。
この現象のことを、一般的に 「無限ループ」 と呼びます。
実際の動作で無限ループが起きてしまう可能性は、決して少なくはありません。
万が一、コードの記述ミスや想定外の動作などによって無限ループが起きてしまった場合には、「Ctrl + C」 でプログラムを強制終了させることができます。
(WindowsとMacのどちらにも有効です)
また、ケースによってはわざと条件式に Trueを指定し、if文と break文の組み合わせで終了条件を指定する場合もあります。
num = 1
while True:
if num % 2 == 0:
break
num = random.randint(1, 10)
print(num)7
5
1
9
4状況に応じて、必要な対処方法を選択するといいでしょう。
まとめ
いかがでしたか?今回は、Pythonで while文を使用する方法について解説しました。
for文や while文などの繰り返し処理構文は、実際の開発でもよく使用される構文の1つとなっています。
それぞれの構文によって得意とする条件も異なってくるので、それぞれの動作の特徴をしっかりと把握し、状況に応じた適切な使い分けができるようにしておきましょう。
Pythonの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。