Python for ループ
1. Python For ループ
for ループは、シーケンス(リスト、タプル、辞書、セット、または文字列)を反復処理(イテレーション)するために使用されます。
これは他のプログラミング言語の for キーワードとは異なり、オブジェクト指向言語で見られる「イテレータ」メソッドに近い働きをします。for ループを使用すると、リストやセットなどの各アイテムに対して一連のステートメントを一度ずつ実行できます。
1.1 リストのループ処理
リスト内の各アイテムを出力する例です。
fruits = ["リンゴ", "バナナ", "チェリー"]
for x in fruits:
print(x)for ループでは、あらかじめインデックス用の変数(カウンター)を定義しておく必要はありません。
2. 文字列のループ処理
文字列もイテラブル(反復可能)なオブジェクトであり、一連の文字で構成されています。そのため、文字列内の各文字をループで処理することが可能です。
2.1 文字列のイテレーション例
"banana" という単語の各文字をループで出力します。
for x in "banana":
print(x)3. break ステートメント
break ステートメントを使用すると、ループがすべてのアイテムを処理し終える前であっても、ループを途中で停止させることができます。
3.1 break の使用例(出力後)
x が "バナナ" のときにループを抜けます。
fruits = ["リンゴ", "バナナ", "チェリー"]
for x in fruits:
print(x)
if x == "バナナ":
break3.2 break の使用例(出力前)
出力の前に break を置くことで、"バナナ" 自体を出力せずにループを終了させます。
fruits = ["リンゴ", "バナナ", "チェリー"]
for x in fruits:
if x == "バナナ":
break
print(x)4. continue ステートメント
continue ステートメントを使用すると、現在のイテレーションを中断し、次のイテレーション(ループの次のステップ)へ進めることができます。
4.1 continue の使用例
"バナナ" のときだけ処理をスキップする例です。
fruits = ["リンゴ", "バナナ", "チェリー"]
for x in fruits:
if x == "バナナ":
continue
print(x)5. range() 関数
特定の回数だけコードをループさせたい場合は、range() 関数を使用します。range() 関数は、デフォルトで 0 から始まり、1 ずつ増加し(これもデフォルト)、指定した数値の直前で終了する一連の数値を返します。
5.1 range() の基本
0 から 5 までの数値を出力します(6 は含まれません)。
for x in range(6):
print(x)注意: range(6) は 0 から 6 までの数値ではなく、0 から 5 までの数値(計 6 個)を生成します。5.2 開始値の指定
range(2, 6) のように引数を 2 つ渡すことで、開始値を指定できます。この場合は 2 から始まり 6 の直前までとなります。
for x in range(2, 6):
print(x)5.3 ステップ値(増加量)の指定
デフォルトでは 1 ずつ増加しますが、3 つ目の引数を追加することで増加量をカスタマイズできます。
# 2 から始まり 30 の直前まで、3 ずつ増加させる
for x in range(2, 30, 3):
print(x)6. For ループ内の Else
for ループにおける else キーワードは、ループが正常に終了した(すべてのアイテムの処理が終わった)ときに実行されるコードブロックを指定します。
6.1 else ブロックの実行
ループ完了後にメッセージを表示する例です。
for x in range(6):
print(x)
else:
print("処理が正常に完了しました!")注意: ループが break ステートメントによって停止された場合、else ブロックは実行されません。
6.2 break 発生時の else の挙動
x が 3 のときに break するため、else ブロックはスキップされます。
for x in range(6):
if x == 3: break
print(x)
else:
print("正常終了しました")7. ネストされたループ (Nested Loops)
ループの中に別のループを入れることができます。
外側のループの 1 回のイテレーションごとに、内側のループが 1 周(完了まで)実行されます。
7.1 入れ子構造のループ例
形容詞と果物を組み合わせる例です。
adj = ["赤い", "大きな", "甘い"]
fruits = ["リンゴ", "バナナ", "チェリー"]
for x in adj:
for y in fruits:
print(x, y)8. pass ステートメント
for ループは空のままにすることはできません。しかし、ロジックが未定などで中身がないループを記述する必要がある場合、pass ステートメントを入れることでエラーを回避できます。
for x in [0, 1, 2]:
pass # 将来的にここにコードを書く予定