Pythonの繰り返し処理でカウンターを使う方法!range()やenumerate()の活用法
生徒
「Pythonで繰り返し処理をするときに、回数を数える方法ってありますか?」
先生
「良いところに気づきましたね。繰り返し処理でカウンター(回数)を使いたいときは、range()やenumerate()という便利な関数を使いますよ。」
生徒
「rangeとかenumerateってなんだか難しそう…。初心者でもわかるように教えてください!」
先生
「もちろん!それじゃあ、Pythonのカウンターの基本から、やさしく解説していきましょう。」
1. Pythonの繰り返し処理とは?
まずは、繰り返し処理とは何かを簡単に説明しましょう。繰り返し処理とは、同じ処理を何度も行いたいときに使う仕組みです。たとえば、「同じメッセージを5回表示したい」といった場面で使います。
Pythonでは、for文を使って繰り返し処理を行います。以下は基本の書き方です。
for 変数 in 繰り返したいもの:
実行する処理
2. 繰り返しの回数を指定するrange()関数
カウンターを使って「何回繰り返すか」を決めたいときは、Pythonのrange()関数を使います。これは、連続した数字を自動で作り出す関数です。
たとえば、0から4までの数字を繰り返すには次のように書きます。
for i in range(5):
print("これは", i, "回目のメッセージです")
このコードを実行すると、次のような出力が得られます。
これは 0 回目のメッセージです
これは 1 回目のメッセージです
これは 2 回目のメッセージです
これは 3 回目のメッセージです
これは 4 回目のメッセージです
このように、range(5)は、0から始まり4までの5つの数字を作り出してくれます。
3. range()の引数を変えるとどうなる?
range()には、スタートの数字やステップ(増える間隔)も指定できます。形式は以下のようになります。
range(スタート, ストップ, ステップ)
たとえば、1から10までを2ずつ増やすには次のように書きます。
for i in range(1, 11, 2):
print(i)
1
3
5
7
9
このように、ステップを使えば間引きながら繰り返すことも可能です。
4. カウンターと一緒にデータを扱いたいときはenumerate()
繰り返しの中で、リストなどのデータとカウンターを同時に使いたいときに便利なのがenumerate()です。リストの中身を1つずつ取り出しながら、その番号(インデックス)も一緒に教えてくれます。
fruits = ["りんご", "みかん", "ぶどう"]
for i, fruit in enumerate(fruits):
print(i, "番目の果物は", fruit)
0 番目の果物は りんご
1 番目の果物は みかん
2 番目の果物は ぶどう
このように、enumerate()を使うことで、番号付きでリストを処理できます。
5. 番号を1から始めたいとき
Pythonのenumerate()は通常、0からカウントが始まります。でも、「人間が数えるように1から始めたい」と思うこともありますよね。その場合は、enumerate()のstart引数を使いましょう。
for i, fruit in enumerate(fruits, start=1):
print(i, "個目の果物は", fruit)
1 個目の果物は りんご
2 個目の果物は みかん
3 個目の果物は ぶどう
こうすれば、1からカウントする繰り返し処理が簡単にできます。
6. range()とenumerate()の違いを整理しよう
最後に、range()とenumerate()の違いをまとめておきましょう。
- range(): 回数を数えながら繰り返したいときに使う
- enumerate(): リストの内容と一緒に番号も使いたいときに便利
使い分けのコツとしては、「ただ繰り返すだけならrange()」、「リストの中身も使いたいならenumerate()」と覚えるとわかりやすいです。
まとめ
Pythonのくりかえし処理におけるカウンターの使い方は、プログラムの動きを正確に管理するためにとても大切な考え方です。とくに、回数を明確にしながら処理を進めたい場面や、データの順番を知りながら処理したい場面では、今回学んだrange()やenumerate()といった機能が大活躍します。Pythonはシンプルで直感的な文法を持つ言語ですが、こうした便利な関数を正しく理解して使い分けることで、コードの読みやすさと実行の正確さがぐんと向上していきます。 とくに、range()は数を自動で生成するという特徴があり、「何回くりかえすか」を自由に設定できます。スタート地点や終了地点、増える幅まで調整できるため、細かな条件を必要とする処理でも柔軟に対応できます。また、enumerate()はリストの中身を順番つきで扱う場面でかかせない関数で、データとインデックスを同時に取得できるため、処理の流れがとても理解しやすくなります。 Pythonのくりかえし処理では、単に動けば良いというだけでなく、読みやすく、整理されていて、あとからメンテナンスしやすいコードを書くことがとても重要です。そのためにも、range()やenumerate()が提供する便利なメリットを知り、実際のコードに自然に取り入れていくことは、大きな成長につながります。 さらに、カウンターの値を1から始めたいときの工夫や、データの内容に合わせて処理を最適化する方法など、実務でも役立つテクニックが含まれています。下のサンプルコードでは、range()とenumerate()を組み合わせ、くりかえし処理の基本から応用までを整理した例を掲載しています。日常的なデータ処理、ループを使ったチェック処理、画面表示の管理など、多くの場面で自然に応用できる内容です。
サンプルプログラム
fruits = ["りんご", "ばなな", "みかん", "ぶどう"]
print("▼ range() を使ったくりかえし")
for i in range(1, len(fruits) + 1):
print(i, "こめの処理です")
print("▼ enumerate() を使って番号つきで果物を表示")
for index, fruit in enumerate(fruits, start=1):
print(index, "ばんめのくだものは", fruit)
このように、Pythonのくりかえし処理の中でカウンターを活用する方法を理解しておくと、毎日のプログラミングがとても扱いやすくなり、コードの質も向上します。とくに、複雑なデータを扱うときや、画面に順番つきで表示したいときなど、実際のシステム開発でも欠かせない考え方です。くりかえし処理とカウンターの組み合わせは、Pythonの基礎力を高めるための大事な一歩と言えるでしょう。
生徒
「先生、range()とenumerate()のちがいがやっと分かってきました!同じくりかえし処理でも、それぞれ役わりがあるんですね。」
先生
「その気づきはとても良いですね。Pythonでは、状況に合わせて使い分けることで、より分かりやすいコードが書けるようになりますよ。」
生徒
「たしかに、ただ回数を数えたいだけならrange()だけでいいし、データと番号を同時に使うならenumerate()のほうが便利だと感じました。」
先生
「その通りです。くりかえし処理は毎日のように使うので、こうした基本をしっかり理解しておくと、自信を持ってコードを書けるようになりますよ。」
生徒
「今日はすごく勉強になりました!これからのPython学習でも、range()とenumerate()をたくさん活用してみます。」
先生
「良い心がけですね。これからも一緒に、読みやすくて丁寧なコードをめざして学んでいきましょう。」