Pythonのforループは反復する機能です。 listのようなシーケンスオブジェクトがある場合、forループを使用してリスト内のアイテムを反復処理できます。
forループの機能は、他の多くのプログラミング言語で見られるものとあまり変わりません。
この記事では、Pythonのforループを詳しく説明し、リスト、タプルなどの異なるシーケンスを反復処理する方法を学びます。さらに、breakおよびcontinue文を使用してループのフローを制御する方法も学びます。
forループを使用するタイミング
コードのブロックを固定回数繰り返す必要がある場合にいつでも使用します。繰り返し回数がわからない場合は、代わりに「whileループ」ステートメントを使用します。
Pythonのforループ構文
Pythonのforループの基本的な構文は、以下に示すものと似ています。
Pythonのforループ構文の詳細
- 文の最初の単語は、forループの開始を示すキーワード “for”で始まります。
- 次に、イテレータ変数が続き、この変数はシーケンスを反復処理し、ループ内でさまざまな機能を実行するために使用できます。
- 次に、Pythonの“in”キーワードがあり、これはイテレータ変数にシーケンス内の要素をループするよう指示します。
- そして最後に、シーケンス変数があり、これはリスト、タプル、または他の種類のイテレータである可能性があります。
- ループの一部として、イテレータ変数を操作し、さまざまな機能を実行できます。
forループを使用して文字列の個々の文字を印刷する
Python文字列は文字のシーケンスです。プログラミングアプリケーションのどこかで文字列の各文字を個別に処理する必要がある場合は、ここでforループを使用できます。
以下にその方法を示します。
出力:
このループが機能する理由は、Pythonが文字列を全体としてではなく、文字のシーケンスとして扱うためです。
Pythonのリストやタプルを繰り返し処理するためのforループの使用方法
リストとタプルは反復可能なオブジェクトです。これらのオブジェクト内の要素をループで処理する方法を見てみましょう。
出力:
さて、ここでタプルの要素をループ処理する方法を見てみましょう。
Pythonのforループを入れ子にする
別のforループの中にforループがある場合、これを入れ子のforループと呼びます。入れ子のforループには複数の応用があります。
上記のリストの例を考えてみましょう。forループはリストから個々の単語を出力します。しかし、リスト内の各単語の個々の文字を出力したい場合はどうすればよいでしょうか?
ここで、ネストされたforループがより適しています。最初のループ(親ループ)は単語を一つずつ処理します。2番目のループ(子ループ)はそれぞれの単語の文字をループします。
出力
A nested loop is structurally similar to nested if
statements
Pythonのrange()関数を使用したforループ
Pythonのrangeは、組み込み関数の一つです。特定の回数だけforループを実行したい場合や、出力するオブジェクトの範囲を指定する必要がある場合に、range関数が非常に役立ちます。
range()
を使用するときには、1から3つの整数引数を渡すことができます。
start
は、シーケンスが始まる整数値を示します。これが含まれていない場合、start
は0から始まります。stop
は常に必要であり、数え上げる整数ですが、これ自体は含まれません。step
が省略されている場合、step
はデフォルトで1になります。
次の例を考えてみましょう。1、2、および3の数字を表示したいとします:
range関数は、開始と停止以外にも別のパラメータを取ります。これがステップパラメータです。これは、範囲関数に次の数をカウントする際にスキップする数を指定します。
以下の例では、ステップとして数字3を使用しました。出力の数字は前の数字+3になっていることがわかります。
また、step
引数に負の値を使用して逆順に反復することもできますが、start
およびstop
引数を適切に調整する必要があります:
ここでは、100がstart
値、0がstop
値、-10
が範囲ですので、ループは100から始まり、0で終わり、各反復で10ずつ減少します。これは出力で行われます:
Output100
90
80
70
60
50
40
30
20
10
Pythonでプログラミングする際、for
ループはしばしば繰り返しのためのパラメータとしてrange()
シーケンス型を使用します。
forループとブレーク文
ブレーク文は、forループを早期に終了するために使用されます。特定の条件が満たされた場合にforループを終了するために使用されます。
たとえば、数値のリストがあるとし、特定の数値が存在するかどうかを確認したいとします。数値のリストを反復処理し、数値が見つかった場合はループを抜け出します。なぜなら、残りの要素を繰り返し処理する必要がないからです。
この場合、Pythonのif else条件をforループと一緒に使用します。
forループとコンティニュー文
特定の条件の場合に、forループ内でコンティニュー文を使用して、forループの本文の実行をスキップすることができます。
リストの数値があり、正の数の合計を出力したいとします。continue文を使用して、負の数のためにforループをスキップすることができます。
elseブロックを持つPythonのforループ
elseブロックをPythonのforループと一緒に使用できます。elseブロックは、forループがbreak文によって終了しない場合にのみ実行されます。
すべての数値が偶数である場合にのみ数値の合計を出力する関数があるとします。
奇数が存在する場合にforループを終了するためにbreak文を使用できます。else部分で合計を出力することで、forループが通常に実行された場合にのみ出力されます。
シーケンシャルデータ型を使用したforループ
リストやその他のデータシーケンス型は、for
ループの反復パラメータとしても活用できます。 range()
を反復処理する代わりに、リストを定義してそのリストを反復処理することができます。
リストを変数に割り当て、そのリストを反復処理します:
この場合、リスト内の各アイテムを出力しています。変数 shark
を使用しましたが、変数名を他の任意の 有効な変数名 にしても同じ出力が得られます:
Outputhammerhead
great white
dogfish
frilled
bullhead
requiem
上記の出力は、for
ループがリストを反復処理し、リストから各アイテムを1行ずつ出力したことを示しています。
リストやその他のシーケンスベースの データ型 、例えば 文字列 や タプル は、反復処理可能なので、ループと一緒に使用されることが一般的です。これらのデータ型を range()
と組み合わせて使用して、リストにアイテムを追加することもできます。例えば:
Output['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']
ここでは、sharks
リストの長さ分のプレースホルダー文字列 'shark'
を各アイテムに追加しました。
また、for
ループを使用してリストをゼロから構築することもできます。
この例では、リストintegers
が空で初期化されていますが、for
ループは次のようにリストを埋めます:
Output[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
同様に、文字列を反復処理することもできます:
OutputS
a
m
m
y
タプルを反復処理する場合は、上記のリストや文字列を反復処理するのと同じ形式で行います。
辞書を反復処理する際には、辞書のキー:値の構造を念頭に置いておくことが重要です。これにより、辞書の正しい要素を呼び出していることを確認できます。以下は、キーと値の両方を呼び出す例です:
Outputname: Sammy
animal: shark
location: ocean
color: blue
辞書をforループと組み合わせる際には、反復変数が辞書のキーに対応し、dictionary_variable[iterating_variable]
が値に対応します。上記の例では、反復変数key
はキーを表し、sammy_shark[key]
は値を表しています。
ループは、順序付けられたデータ型を反復処理して操作するためによく使用されます。
結論
Pythonのforループは、他のプログラミング言語と非常に似ています。forループでは、breakやcontinue文を使用して実行を変更できます。ただし、Pythonでは、forループにオプションのelseブロックを持つこともできます。
I hope you have gained some interesting ideas from the tutorial above. If you have any questions, let us know in the comments below.
ここからは、whileループとbreak、continue、およびpassステートメントに関するチュートリアルを読んで、ループについて学び続けることができます。
プロジェクトでfor
ループを使用するためには、次のチュートリアルに従ってください:
Source:
https://www.digitalocean.com/community/tutorials/how-to-construct-for-loops-in-python-3