Pythonを学び始めると必ず登場するのが「for文」と「while文」です。しかし、この二つのループ構文をどう使い分ければよいのか迷う人も多いでしょう。この記事では、両者の違いや実際の使い分け方を具体例とともに解説します。
for文とwhile文の基本的な違い
まず、for文とwhile文の根本的な違いを整理しておきましょう。for文は「決められた範囲や要素に対して順番に処理を行う」ために使われます。一方、while文は「ある条件が満たされる限り繰り返す」ときに利用します。つまり、for文は回数が決まっている繰り返しに強く、while文は条件次第で回数が変わる繰り返しに向いています。
for文の基本的な使い方
for文はリストやrange関数などの反復可能オブジェクトを順番に処理する際に便利です。さらに、インデックスを意識せずに要素を取り出せるため、シンプルで読みやすいコードになります。
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print(fruit)
このように書くと、リストの要素を一つずつ取り出して処理できます。また、数値の繰り返しには range()
を使うのが定番です。
for i in range(5):
print(i) # 0から4まで出力
このように、回数が明確に決まっている処理ではfor文を使うのが一般的です。
while文の基本的な使い方
while文は条件式がTrueの間、処理を繰り返します。つまり、繰り返しの終了条件が決まっていないときに有効です。例えば、ユーザーの入力が「exit」となるまで処理を続けるといったケースです。
text = ""
while text != "exit":
text = input("文字を入力してください(終了はexit):")
この例では、ユーザーが「exit」と入力するまで繰り返されます。for文では書きにくい、条件依存の処理に適しています。
for文とwhile文の使い分けの具体例
それでは、どのように使い分ければよいのでしょうか。一般的なルールは以下のとおりです。
- 繰り返す回数があらかじめわかっている → for文
- 条件によって繰り返す回数が変わる → while文
例えば、配列の要素を順番に処理するときはfor文が自然です。しかし、ユーザー入力やセンサーからの値に応じて処理を続ける場合はwhile文が適しています。
breakとcontinueを活用した制御
さらに、for文やwhile文を柔軟に使うために「break」と「continue」も覚えておきましょう。breakはループを強制的に終了し、continueはその回の処理をスキップします。
for i in range(10):
if i == 5:
break
print(i) # 0〜4で終了
for i in range(5):
if i == 2:
continue
print(i) # 0,1,3,4
このように制御文を組み合わせると、より柔軟なループ処理が可能になります。
応用テクニック:無限ループの安全な書き方
while文は条件次第で無限ループになりやすいため注意が必要です。しかし、あえて無限ループを作りたい場合もあります。その場合は、必ず終了条件やbreak文を入れておきましょう。
while True:
command = input("コマンドを入力してください:")
if command == "exit":
break
このように、無限ループを使うときは必ず「脱出方法」を用意することが重要です。
よくあるエラーと注意点
ループ処理ではいくつかの典型的なエラーに注意が必要です。例えば、for文でインデックスを誤って範囲外にアクセスすると IndexError
が発生します。また、while文では条件を正しく設定しないと無限ループに陥ります。
さらに、初心者がやりがちなのは while count <= 10:
のように終了条件を間違えて設定することです。そのため、デバッグするときはprintで変数の状態を確認しながら進めると安心です。
Pythonの公式リファレンスで確認しよう
もっと詳しく学びたい場合は、Python公式ドキュメントを参考にするとよいでしょう。条件式やループの仕組みについて詳細に解説されています。
また、海外の学習サイトも参考になります。例えば、W3Schoolsのfor文解説 では例題が豊富に掲載されています。
Python初心者におすすめのサービス
「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、
テックアカデミーがおすすめです。
AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。
さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。
また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。
書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。
また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。
こちらのリンクから詳細をチェックしてみてください。
まとめ
Pythonのfor文は「回数が決まっている処理」に適しており、while文は「条件に依存する処理」に適しています。両者を正しく使い分けることで、コードがシンプルかつ効率的になります。ぜひ状況に応じて使い分けてみましょう。
さらに理解を深めたい方は、【初心者向け】PythonでAPIを叩く方法!使い方と実践例を解説も合わせて読むと実際にエンジニアが行っている業務と近しいことが学べます。
コメント