第9回|Pythonのfor文入門:range()と繰り返し処理・合計の求め方 | はじめてのPython

当サイトでは、コンテンツの一部に広告を掲載しています。
第9回|Pythonのfor文入門:range()と繰り返し処理・合計の求め方 | はじめてのPython

はじめてのPython | 第9回

目次

1. はじめに

この回では、同じ処理を繰り返すための for 文を学びます。これまでのコードは、必要な処理を1行ずつ順番に書いてきました。

同じ処理を何回も実行したいときに、毎回同じコードを書くのは効率的ではありません。for 文を使うと、決まった回数だけ同じ処理を繰り返せます。

2. この回で学ぶこと

  • for の基本
  • range() の使い方
  • 繰り返し回数の指定
  • カウンタ変数の役割
  • 合計を求める処理の基本

3. 概念の説明

for 文は、同じ処理を繰り返すための書き方です。

基本の形は次のようになります。

for 変数 in range(回数):
    繰り返したい処理

range(回数) は、指定した回数だけ繰り返すために使います。たとえば range(5) は、0 から 4 までの5個の値を順番に取り出します。

for i in range(5):
    print(i)

このコードでは、i に 0、1、2、3、4 が順番に入ります。このように、繰り返しのたびに変わる変数をカウンタ変数と呼びます。

また、for 文は合計を求める処理にもよく使います。最初に合計を入れる変数を 0 にしておき、繰り返しのたびに値を足していきます。

4. サンプルコード

次のコードを見てください。

total = 0

for i in range(1, 6):
    total = total + i
    print("現在の値:", i)
    print("現在の合計:", total)

print("最終的な合計:", total)

このコードでは、1 から 5 までの数を順番に足して合計を求めています。

5. 実行手順

まず、for_sample.py というファイルを作ります。

touch for_sample.py

for_sample.py をエディターで開き、次のコードを書いて保存します。

total = 0

for i in range(1, 6):
    total = total + i
    print("現在の値:", i)
    print("現在の合計:", total)

print("最終的な合計:", total)

保存したら、ターミナルで次のコマンドを実行します。

python3 for_sample.py

実行結果は次のようになります。

現在の値: 1
現在の合計: 1
現在の値: 2
現在の合計: 3
現在の値: 3
現在の合計: 6
現在の値: 4
現在の合計: 10
現在の値: 5
現在の合計: 15
最終的な合計: 15

6. コードの読み方

  • total = 0 は、合計を入れるための変数を 0 で初期化しています。
  • 合計を求める処理では、最初の値を決めておく必要があります。
  • for i in range(1, 6): は、1 から 5 までの値を順番に i に入れながら繰り返します。
  • range(1, 6) では、開始の値は含まれ、終了の値は含まれません。
  • そのため、i には 1、2、3、4、5 が入ります。
  • total = total + i は、その時点の totali を足して、結果をもう一度 total に代入しています。この1行で、合計が少しずつ増えていきます。
  • print("現在の値:", i) は、その回で使っている数を表示しています。
  • print("現在の合計:", total) は、その時点までの合計を表示しています。
  • 最後の print("最終的な合計:", total) は、繰り返しがすべて終わったあとの結果を表示しています。

7. 初学者がつまずきやすい点

  • for の行の最後には : が必要
  • 繰り返す処理はインデントする
  • range(5) は 0 から 4 までで、5 は含まれない
  • カウンタ変数の名前は自由に決められる
  • 合計を求めるときは、最初に変数を 0 にしておく

特に、range(1, 6) が 1 から 6 までだと考えると結果がずれます。終了側の 6 は含まれないことを確認してください。

8. よくあるエラー

1つ目は、: を忘れた場合です。

SyntaxError: expected ':'

たとえば次のような書き方です。

for i in range(5)
    print(i)

2つ目は、インデントが正しくない場合です。

IndentationError: expected an indented block

たとえば次のような書き方です。

for i in range(5):
print(i)

3つ目は、range のつづりを間違えた場合です。

NameError: name 'rnage' is not defined

たとえば for i in rnage(5): のように書くと、Python はその名前を見つけられません。

9. 練習用コード

次のコードを practice_for.py として保存して実行してください。

total = 0

for number in range(1, 11):
    total = total + number

print("1から10までの合計:", total)

実行したあとで、なぜ結果がその数になるかを確認してください。

余裕があれば、range(1, 11)range(1, 6)range(1, 21) に変えて、合計がどう変わるか試してください。

10. この回で理解しておくこと

  • for 文を使うと同じ処理を繰り返せる
  • range() を使うと繰り返し回数や数の範囲を指定できる
  • カウンタ変数には繰り返しごとの値が入る
  • 合計は変数に少しずつ足して求められる
  • range() では終了側の値は含まれない

11. まとめ

今回は、for 文を使った繰り返し処理の基本を確認しました。

繰り返しが使えるようになると、同じ形の処理を短く正確に書けるようになります。

range() の動きと、変数に値を足し続ける書き方は今後も何度も使います。

12. 次回予告

次回は、while 文を使って、条件が成り立つ間だけ繰り返す方法を学びます。for 文との違いも確認します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次