1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

Python超入門その10〜繰り返したい処理はループで実行しよう〜

Pocket

はじめに

何度も繰り返したい処理はありませんか?

前回は制御構造としてif文を紹介しましたが、制御構造にはループ制御もあります。

つまり繰り返し処理のことです。代表的なループ構文にはwhileとforの2つがあり、異なる特徴を持っています。

このため、特徴を理解して使い分ける必要があります。

この記事では、Python初心者の方向けに、Pythonのループ構文についてお伝えしていきます。

用途に応じて、適切なループ構文を使い分けましょう。

基本的なwhile文の使い方

まずは、while文から説明していきます。while文は、主にループ回数が事前にわからない場合に使用するループ構文です。

たとえば、特定の状態になるまで繰り返す場合や同じ処理を永遠と繰り返す場合です。

while構文は、次のようになります。

例:

 

この例では、数値numが1000以上になるまで、numを2倍してコンソールに出力します。

注意しなければならないのは、if文とは違い継続条件を指定することです。

つまり、条件が成立している(Trueと判定される)間だけ処理が実行されるということです。

継続条件の判定はループ開始前に行われるため、条件によっては1度も処理が実行されません。

そして、ループの度に継続条件が判定されます。終了条件と継続条件を間違わないようにしましょう。

基本的なfor文の使い方

次は、よく使われるfor文を説明していきます。

for文は、リストやタプル、セット、ディクショナリなどのシーケンスをループ処理するための構文です。

プログラムではシーケンスの要素を個別に処理することが多々ありますので、しっかり覚えておきましょう。
まずは、リストを扱う場合のfor文からみていきます。

例:

 

for文で最初に指定する変数(例ではitem)は任意の名前にできます。

それから、in句の後にループさせるリストを指定します。
この例ではリテラル値を指定していますが、リスト変数でもOKです。

ここで指定したリストの要素数だけループが回され、各ループで変数に要素が割り当てられますので、ループ内でなんらかの処理を行います。

次は、タプルの場合です。

例:

 

タプルの場合も、リストを扱う場合と特段変わりありません。

また、セットの場合も同様です。

例:

 

セットの場合は順序がないため、ループ順が変化することに注意して下さい。
最後にディクショナリの場合をみてみましょう。ディクショナリにはキーと値があるため、それぞれループ方法が異なります。
まず、キーをループする場合です。

例:

 

キーの場合はセットの場合と同様です。一方、値の場合は次のように少し異なります。

例:

 

値をループする場合には、例のようにディクショナリのvaluesメソッドを呼び出して値のセットを取得する必要があります。

また、キーと値を同時にループさせる場合には次のようにします。

例:

 

キーと値を同時にループする場合には、例のように2つの変数をカンマ区切りで指定する必要があります。

さらに、ディクショナリのitemsメソッドを呼び出さなければいけません。

他のシーケンスについても同様の方法でループ処理できます。

応用的なループ制御について

ときにはループを途中で終了したり、次のループに移ったりしたい場合があります。

ループを途中で終了したい場合には、次のようにします。

例:

 

ループを途中で終了するには、breakを使います。

一般的にif文と組み合わせて使い、特定の条件でループを終了するにようにします。

例では、4回目のループで終了します。
次は、ループ処理をスキップする方法をみてみましょう。

例:

 

現在のループをスキップして、次のループに進むにはcontinueを使います。

例では偶数のループがスキップされ、奇数のみ出力されます。

どちらの方法もwhile文でも同様に使えます。

まとめ

while文とfor文の2つのループ構文について理解できましたか?
while文はループ回数が決まっていない場合に使い、for文はシーケンスの要素を処理するために使います。

for文ではシーケンスをインデックスとしてループするなど、汎用的な使い方もできますので、いろいろ工夫してみましょう。

シーケンス要素のループはよく行いますので、しっかり覚えておいて下さい。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

プログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る