【Python】レッスン2-05:繰り返し処理(for文)を理解しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:繰り返し処理(for文)

この記事の練習問題で使用する知識:
入力と出力の基本コメントの書き方変数の宣言と代入基本データ型と算術演算子文字列の操作、フォーマット文字列比較演算子と論理演算子条件分岐(if-else文)条件分岐(elif文)条件分岐(match文)繰り返し処理(for文)繰り返し処理(while文)繰り返しの制御、エラーメッセージ例外処理の基礎

<<前の問題 問題集Top 次の問題>>

Pythonの「繰り返し処理(for文)」とは

この章ではPythonにおける「繰り返し処理(for文)」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。



プログラミングにおいて繰り返し処理は同じ動作を何度も実行する際に非常に便利であり、Pythonでは主に「for文」や「while文」が用いられます。

この記事では特にfor文に焦点を当てて解説し、その使い方を学びます。

Pythonにおけるfor文の基本

Pythonのfor文は指定した範囲の要素を順番に処理するために使います。

他のプログラミング言語で見られるようなインデックスを使ってループを制御することもできますが、Pythonでは通常、直接コレクションの要素を取り出して処理するスタイルを取ります。

(コレクションが何なのかは後ほど学びますので、今は丸暗記しましょう。)

構文は以下の通りです。

for 変数 in コレクション:
    実行する処理

このシンプルな構文により、リストや文字列などに対して順次処理を行うことができます。

また、Pythonではインデント(字下げ)が非常に重要です。

インデントとは

プログラミングコードにおいて、コードの一部の行の行頭に半角スペースを4つ入れることをインデントを入れる(字下げする)と言います。

上のコードでは「実行する処理」という文字の前に半角スペースが4つあり、これがインデントです。

Pythonにおいてインデントは、ただコードを見やすくするだけでなくその行がどのブロックに属するかを定義するものであり、非常に重要です。

インデントはどこまでがfor文の中に含まれる処理かを示しており、これがないとエラーが発生するか、意図しない動作になります。

以下の例で確認してみましょう。

for i in range(5):
    print(i)  # ここはfor文の中
print("ループが終了しました")  # ここはfor文の外

この例ではprint(i)がfor文の中に含まれており、インデントによってその範囲が明確に示されています。

for文が終了すると、インデントのないprint("ループが終了しました")が実行されます。

ちなみに同じコードをJAVAで書くと以下のようになります。

for (int i = 0; i < 5; i++) {
    System.out.println(i);
} // ここまでがfor文の中
System.out.println("ループが終了しました"); // ここはfor文の外

Pythonはfor文の中身をインデントで表すのに対して、JAVAは{}で囲います。

初心者にはJAVAの書き方が分かりやすいですが、慣れてくるとPythonの方がシンプルで綺麗なコードになると気付けるはずです。

for文の使用例

それでは実際にPythonでfor文を使った例を見てみましょう。もう一度先ほどのコードを使います。

for i in range(5):
    print(i) # ここはfor文の中
print("ループが終了しました") # ここはfor文の外

このコードはrange(5)が生成する5つの数値(0, 1, 2, 3, 4)を順番にiに代入し、それをprint()関数で出力します。

結果は以下のようになります。

0
1
2
3
4
ループが終了しました。

次に、リスト内の文字列を順番に出力するfor文の例を示します。

※このサイトの1-01から順番に学習している方はまだリストは知らないはずなので、「こういうものもある」と知っておく程度で十分です。上記のrange()を確実にマスターしましょう。

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

この例では、リストfruitsの各要素がfruitに代入され、順に出力されます。

apple
banana
cherry

while文との比較

for文は主に、リストや文字列のようなシーケンスに対して処理を行うのに適しています。

一方while文は、指定した条件がTrueである限り繰り返し処理を行います。(while文はこの次の記事で詳細に扱います)

for文とwhile文は状況に応じて使い分けることが重要です。

まとめ

Pythonのfor文は繰り返し処理を簡潔に書くための非常に便利なツールです。

特に何回繰り返すかが初めから分かっている時に役立つものであり、分からないときに有効なwhile文と使い分けることで、より柔軟な繰り返し処理を実現することができます。

注意点としてPythonのfor文はインデントを正しく使用することが非常に重要です。コードの構造を明確にし、エラーを防ぐためにも注意深く行う必要もあります。

初心者のうちはこのfor文をしっかりと理解し、基本的な繰り返し処理をマスターすることが大切です。ぜひ、実際にコードを書いて試してみましょう!




Python練習問題2-5:指定回数メッセージを表示するプログラムを作ろう

Pythonの繰り返し処理(for文)を使って、指定された回数だけメッセージを表示するプログラムを作成してください。

今回は5回のループを行います。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • for文を使用して、指定された範囲(0から4)を繰り返し処理すること。
  • 各繰り返しごとにフォーマット文字列(f文字列)を使用して「1回目の表示: Pythonを勉強しましょう!」の形式でメッセージを出力すること。
  • 出力されるメッセージは、回数(1, 2, 3…)に応じて変化させること。
  • 繰り返しの回数は5回とすること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

1回目の表示: Pythonを勉強しましょう!
2回目の表示: Pythonを勉強しましょう!
3回目の表示: Pythonを勉強しましょう!
4回目の表示: Pythonを勉強しましょう!
5回目の表示: Pythonを勉強しましょう!

この問題を解くヒント

非常にシンプルな問題のため、ヒントはありません。

難しいと感じる方は上記の解説を見返してみてください。




解答例と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

# 5回、指定されたメッセージを繰り返し表示するコード

# for文を使って0から4までの数を繰り返し処理する
for i in range(5):
    # ループの回数を出力する(iは0から始まるので、i+1で回数を1から表示する)
    print(f"{i+1}回目の表示: Pythonを勉強しましょう!")

# range(5)は0から4までの数を生成し、for文でその数を順番に処理する

正解コードの解説

非常にシンプルなコードのため解説はありません。

難しいと感じる方は上記の用語の説明を見返してみてください。

<<前の問題 問題集Top 次の問題>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Python記事トップへ戻る
    トップページへ戻る