【ITニュース解説】Guia de Python PT-BR #3: Loops (for e while) 🔄
2025年09月17日に「Dev.to」が公開したITニュース「Guia de Python PT-BR #3: Loops (for e while) 🔄」について初心者にもわかりやすく解説しています。
ITニュース概要
Pythonのループは、同じ処理を繰り返すことでコードの重複を防ぐ機能だ。forループは回数が決まっている場合に使い、リストなどの要素を順に処理する。whileループは特定の条件が満たされている間処理を繰り返し、回数が不定の場合に便利だ。無限ループに注意し、breakやcontinueでループの動作を制御できる。
ITニュース解説
Pythonプログラミングにおいて、プログラムに同じような処理を何度も実行させたい場面は頻繁に登場する。例えば、1から100までの数字を順に表示したり、リストに格納されたデータ一つ一つに同じ加工を施したりする場合などだ。このような繰り返しの処理を、プログラムのコードを何行も書き連ねて手動で実行するのは非常に非効率で、ミスも起こりやすい。そこで登場するのが「ループ」という概念である。ループは、特定のコードブロックを繰り返し実行するための仕組みであり、これによりプログラムは簡潔かつ効率的に記述できるようになる。Pythonには主に二つのループの形式、「forループ」と「whileループ」が存在する。
まず「forループ」について説明する。forループは、繰り返し実行する回数が事前にわかっている場合や、リスト、文字列、タプルといったデータの集まり(コレクション)の要素を一つずつ順番に処理したい場合に非常に役立つ。例えば、1から5までの数字を順番に表示したいとき、次のように記述する。for i in range(1, 6): print(f"数字は{i}")。このコードのrange(1, 6)という部分は、1から始まり、5までの連続する整数(6は含まれない)を生成する。この生成された数字が、ループが一周するごとに順番に変数iに代入されていく。そして、print(f"数字は{i}")という行が、iが1のとき、2のとき、...、5のときと、それぞれの値で実行されることになる。このように、forループは、指定した範囲の数値や、コレクション内の各要素に対して同じ処理を行いたい場合に、非常に直感的に記述できるのが特徴だ。例えば、果物の名前が複数入ったリストがあるとして、fruits = ["リンゴ", "バナナ", "オレンジ"]のように定義されている場合、for fruit in fruits: print(f"私は{fruit}が好きです")と書けば、リストの各要素である「リンゴ」「バナナ」「オレンジ」が順番にfruit変数に代入され、それぞれの果物について「私は〇〇が好きです」というメッセージが表示される。forループはデータの繰り返し処理において非常に強力なツールとなる。
次に「whileループ」について解説する。forループが回数が決まっている場合に便利であるのに対し、whileループは、特定の条件が満たされている間、コードの実行を継続したい場合に用いられる。つまり、ループが何回実行されるか事前にわからない場合に適している。例えば、あるカウンター変数が特定の値に達するまで処理を続けたい場合を考える。counter = 1と初期値を設定し、while counter <= 5: print(f"カウント: {counter}"); counter += 1というように記述する。このコードでは、counterの値が5以下である限り、print文が実行される。ここで非常に重要なのは、ループの本体の最後にcounter += 1という行があることだ。これはcounterの値を1ずつ増やしていく処理を意味する。もしこの行がなかったら、counterの値は常に1のままであり、counter <= 5という条件は永遠に真であり続けるため、プログラムは無限に「カウント: 1」と表示し続け、停止しなくなってしまう(これを「無限ループ」と呼ぶ)。whileループを使う際は、ループの条件を最終的に偽にするための処理(この場合はcounterを増やすこと)をループの本体に含めることを忘れてはならない。このように、whileループは条件が真である限り実行されるため、ユーザーからの入力待ちや、特定のイベントが発生するまで待機するような場面で非常に有効な手段となる。
ループの途中で特殊な動作をさせたい場合に便利なコマンドも存在する。「break」コマンドは、ループの実行を即座に中断し、ループの次のコードに処理を移す。例えば、ある条件が満たされたら、残りのループ処理は不要だと判断できる場合などに使用する。一方、「continue」コマンドは、現在のループの繰り返し(イテレーション)をスキップし、次のイテレーションへとすぐに移る。つまり、現在の繰り返しの中での残りのコードは実行せずに、次の繰り返しへと進む。例えば、特定の条件に合致する要素だけは処理をスキップしたい場合などに利用する。
また、Pythonのループには「else」句を付けることもできる。これは、ループがbreakコマンドによって中断されずに、正常に(つまり、forループであればすべての要素を処理し終えたとき、whileループであれば条件が偽になって終了したとき)完了した場合にのみ実行されるコードブロックだ。例えば、for i in range(1, 6): if i == 3: continue; print(i) else: print("ループ終了!")というコードでは、iが3のときにcontinueが実行され、print(i)はスキップされるが、ループ自体は最後まで実行されるため、最後に「ループ終了!」というメッセージが表示される。もし途中でbreakがあった場合はelseブロックは実行されない。
これらのループの概念とコマンドを理解することは、プログラミングの基礎の非常に重要な部分であり、複雑な処理を効率的に記述するために不可欠だ。実際に手を動かして練習問題を解くことは、理解を深める最も良い方法だ。例えば、forループを使って7の段の九九を表示させたり、whileループを使ってユーザーが0を入力するまで数字を合計するプログラムを作成したりする練習は、これらのループの動きを体得するのに役立つ。また、forループとif文を組み合わせ、ユーザーが入力した文章に含まれる母音の数を数えたり、10個の数字の中から偶数だけを表示させたりする問題は、条件分岐とループを組み合わせたより実践的な応用力を養うことができる。 これらの基本的なループ処理を習得した後は、次のステップとして「関数」について学ぶことが推奨される。関数は、特定の処理をまとめて名前を付け、必要なときにその名前を呼び出すだけで実行できるようにする仕組みだ。これにより、コードの整理が進み、同じロジックを繰り返し書く手間が省け、再利用性が高まる。プログラミング学習は、このように一つ一つの要素を積み重ねていくことで、より高度なシステムを構築するための知識とスキルを身につけていくことができる。