Python入門|for文で繰り返し処理を使いこなそう【レッスン2-5】

ながみえ

一つ前のLessonでは条件分岐(match文)について学習しました。

今回は繰り返し処理(for文)について見ていきます。

Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子を理解しよう
・Lesson2-2:条件分岐(if-else文)を理解しよう
・Lesson2-3:条件分岐(if-elif-else文)を理解しよう
・Lesson2-4:条件分岐(match文)を理解しよう
・Lesson2-5:繰り返し処理(for文)を理解しよう ◁今回はココ
・Lesson2-6:繰り返し処理(while文)を理解しよう
・Lesson2-7:繰り返しの制御を理解しよう
・Lesson2-8:エラーメッセージを読めるようになろう
・Lesson2-9:例外処理の基礎を理解しよう
・練習問題2-1:ハイアンドロー ゲームを作ろう
・練習問題2-2:数字当てゲームを作ろう
・練習問題2-3:簡単なじゃんけんゲームを作ろう
Lesson3:関数とスコープ編
Lesson4:データ構造編
Lesson5:オブジェクト指向編
次のステップ:Pythonを用いたアプリ開発

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson2-4 条件分岐(match文)を理解しよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson2-6 繰り返処理の制御を理解しよう

for文とは?指定回数の繰り返し処理を簡単に実装する方法

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

【Python】勉強猫がノートパソコンを前にして学習を始める様子。記事内の学習スタート用イラスト

プログラミングにおいて繰り返し処理は同じ動作を何度も実行する際に非常に便利であり、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】勉強猫がノートパソコンに向かい、練習問題に挑戦する様子。記事内の休憩用イラスト

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

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

問題の詳細条件

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

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

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

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

問題の答え合わせと解説

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

一つの正解例

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

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

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

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

正解例の詳細解説

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

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

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson2-4 条件分岐(match文)を理解しよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson2-6 繰り返処理の制御を理解しよう

FAQ|for文の基本と応用

Q
Q1. Pythonのfor文で逆順に繰り返すにはどうすればいいですか?

range()関数にステップを指定して逆順にできます。たとえば range(10, 0, -1) とすれば10から1まで繰り返せます。

Q
Q2. for文で複数のリストを同時に処理できますか?

zip()関数を使えば、複数のリストを同時にループ処理することが可能です。for a, b in zip(list1, list2): のように記述します。

Q
Q3. for文でインデックス番号も一緒に取得したい場合は?

enumerate()を使うとインデックスと要素を同時に取得できます。例:for i, value in enumerate(my_list):

質問用コンタクトフォーム

この記事はAIを用いて書いた記事です。

人間の目による確認も行っていますが、もし間違い等ありましたらご指摘頂けると大変助かります。

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

記事URLをコピーしました