【Python入門】for文の使い方

Pythonの勉強をしていて、このような悩みを抱えていませんか?

forの使い方を教えてください!

この記事では、Pythonのfor文について現役エンジニアが分かりやすく解説していきます。

他にも【Python入門】if文の使い方で「if」について分かりやすく解説しているので、お時間がある方はご確認ください。

また、Pythonをもっと詳しく勉強したいという方は、【超厳選】20代におすすめのプログラミングスクール3選!を参考にしてください。

他にも無料でプログラミングスクールを受講したいという方は、【完全無料】0円で学べるプログラミングスクールを紹介【大学生向け】を参考にしてください。

for文の書き方

Pythonでは繰り返し処理を記述するには「for」文を使用します。

for文の書き方は、以下の通りです。

for 変数 in イテラブルオブジェクト:
    繰り返す処理

それでは、上記の「for文の書き方」に実際の値を当てはめて、for文の理解を深めていきましょう。

まずは、下記のコードをコピペして実行してください。

# イテラブルオブジェクトを定義
list = ["ルフィ", "エース", "サボ"]

# イテラブルオブジェクト(list)の要素数分繰り返す
for i in list:
    # 要素iを出力
    print(i)

すると、次のような出力が得られます。

ルフィ
エース
サボ

それでは、例コードを解説していきます。

解説するために「for文の書き方」を改めておさらいしましょう。

for 変数 in イテラブルオブジェクト:
    繰り返す処理

例コードに当てはめて考えてみると、変数は「i」、イテラブルオブジェクトは「list」、繰り返す処理は「print(i)」となります。

イテラブルオブジェクト(list)の要素を一つずつ変数(i)に代入し、繰り返す処理(print(i))を実行します。

そのため、繰り返す処理(print(i))で出力された値には、イテラブルオブジェクト(list)の要素になります。

break:繰り返し処理を途中で終了

繰り返す処理を途中で終わらせたい時には、「break」を使用します。

break文の書き方は、以下の通りです。

for 変数 in イテラブルオブジェクト:
    if 条件式:
        break
    else:
        繰り返す処理

break文は繰り返す処理を途中で終了するという性質上、if文と併用されることが多いです。

if文の使い方を知りたいという方は、【Python入門】if文の使い方を参考にしてください。

それでは、実際に値を「break文の書き方」に当てはめて見ていきましょう。

# イテラブルオブジェクトを定義
list = ["ルフィ", "エース", "サボ"]

# イテラブルオブジェクト(list)の要素数分繰り返す
for i in list:
    # listの要素が「エース」の場合
    if i == "エース":
        #繰り返し処理を修了
        break
    else:
        # 要素iを出力
        print(i)

例コードを実行すると、次のような出力が得られます。

ルフィ

それでは、例コードを解説していきます。

解説するために「break文の書き方」を改めておさらいしましょう。

for 変数 in イテラブルオブジェクト:
    if 条件式:
        break
    else:
        繰り返す処理

if文の条件式(iが「エース」と等しい)がtrueの時に、break文が実行され、繰り返し処理が終了します。

詳細な流れは以下の通りです。

  1. 変数iに「ルフィ」を代入
  2. 変数i(ルフィ)が「エース」と等しい → false
  3. 変数i(ルフィ)を出力
  4. 変数iに「エース」を代入
  5. 変数i(エース)が「エース」と等しい → true
  6. breakを実行 → 繰り返し処理終了

continue:特定の処理をスキップ

繰り返し処理をスキップしたい時には、「continue」を使用します。

continue文の書き方は、以下の通りです。

for 変数 in イテラブルオブジェクト:
    if 条件式:
        continue
    else:
        繰り返す処理

continue文は特定の処理をスキップするという性質上、if文と併用されることが多いです。

if文の使い方を知りたいという方は、【Python入門】if文の使い方を参考にしてください。

それでは、実際に値を「continue文の書き方」に当てはめて見ていきましょう。

# イテラブルオブジェクトを定義
list = ["ルフィ", "エース", "サボ"]

# イテラブルオブジェクト(list)の要素数分繰り返す
for i in list:
    # listの要素が「エース」の場合
    if i == "エース":
        #処理をスキップ
        continue
    else:
        # 要素iを出力
        print(i)

例コードを実行すると、次のような出力が得られます。

ルフィ
サボ

それでは、例コードを解説していきます。

解説するために「continue文の書き方」を改めておさらいしましょう。

for 変数 in イテラブルオブジェクト:
    if 条件式:
        continue
    else:
        繰り返す処理

if文の条件式(iが「エース」と等しい)がtrueの時に、continue文が実行され、処理がスキップされます。

詳細な流れは以下の通りです。

  1. 変数iに「ルフィ」を代入
  2. 変数i(ルフィ)が「エース」と等しい → false
  3. 変数i(ルフィ)を出力
  4. 変数iに「エース」を代入
  5. 変数i(エース)が「エース」と等しい → true
  6. continueを実行 → 処理をスキップ
  7. 変数iに「サボ」を代入
  8. 変数i(サボ)が「エース」と等しい → false
  9. 変数i(サボ)を出力

else:繰り返し処理が正常終了時の処理

for文による繰り返し処理が正常に終了した際に、行いたい処理を記述する時には、「else」を使用します。

else文の書き方は以下の通りです。

for 変数 in イテラブルオブジェクト:
    if 条件式:
        break
    else:
        繰り返す処理
else:
    繰り返し処理が正常終了時に実行する処理

else文は繰り返し処理が正常終了時という性質上、break文と併用されることが多いです。

それでは、実際に値を「else文の書き方」に当てはめて見ていきましょう。

# イテラブルオブジェクトを定義
list = ["ルフィ", "エース", "サボ"]

# イテラブルオブジェクト(list)の要素数分繰り返す
for i in list:
    # listの要素が「エース」の場合
    if i == "ガープ":
        #繰り返し処理を修了
        break
    else:
        # 要素iを出力
        print(i)
else:
    print("繰り返し処理正常終了")

例コード①を実行すると、次のような出力が得られます。

ルフィ
エース
サボ
繰り返し処理正常終了

それでは、例コード①を解説していきます。

解説するために「else文の書き方」を改めておさらいしましょう。

for 変数 in イテラブルオブジェクト:
    if 条件式:
        break
    else:
        繰り返す処理
else:
    繰り返し処理が正常終了時に実行する処理

繰り返し処理中にbreakを通らないため、例コード①の繰り返し処理は正常終了になります。そのため、else文が実行されます。

続いて、else文内の処理が実行されない例コード②を見ていきましょう。

# イテラブルオブジェクトを定義
list = ["ルフィ", "エース", "サボ"]

# イテラブルオブジェクト(list)の要素数分繰り返す
for i in list:
    # listの要素が「エース」の場合
    if i == "エース":
        #繰り返し処理を修了
        break
    else:
        # 要素iを出力
        print(i)
else:
    print("繰り返し処理正常終了")

例コード②を実行すると、次のような出力が得られます。

ルフィ

例コード②では、繰り返し処理中にbreak文が実行されます。そのため、繰り返し処理が異常終了となり、else文の処理が実行されません。

【まとめ】for文で繰り返し処理が実行できる

for文の使い方は分かりましたか?

for 変数 in イテラブルオブジェクト:
    繰り返す処理

この記事では、Pythonのforの使い方について紹介しました。

最後になりますが、私の体験談やみなさんの疑問に対して、できる限り分かりやすく記載したつもりです。ですが、もしここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。

最後までお読みいただきありがとうございました。