17 / 2762%

LESSON 17 ・ ループ

レンジ

連続する数を扱う

前に、0から9999まで順番に表示するコードを書きました。

a = 0
while a < 10000:
    print(a)
    a += 1

0から9999までの値をすべてリストに書くのは大変です。

numbers = [0, 1, 2, ..., 9999]

for number in numbers:
    print(number)

これもリストで書きたいところですが、10000個の要素を書くのは大変です。

レンジを使う

numbers = range(10000)

for number in numbers:
    print(number)

レンジ(range)を使えば簡単にこれを実現できます。range(10000)とすると、0から9999までの範囲の値を持つレンジオブジェクトを作ることができます。レンジからも、リストと同じようにforで値を一つずつ取り出してループすることができます。

for a in range(10000):
    print(a)

inの右側に直接range(10000)のように書くこともできます。

始まりを指定する

for a in range(10, 20):
    print(a)

range(10, 20)のようにして、レンジの始まりを指定することもできます。

範囲の扱い方

r = range(10, 20)
print(r[0])
r[0] = 999  # エラー

レンジもリストと同じようにr[0]のようにして要素にアクセスすることができますが、リストと違って要素を変更することはできません。

PRACTICE

演習問題

コードを自分で書いて実行してから、答えと解説を確認しましょう。

問題1

レンジとforを使って、0から4までの数字を順番に表示してください。

答えと解説を見る

模範解答

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

終わりとして指定した5は含まれないため、0から4までが表示されます。

問題2

始まりと終わりを指定したレンジを使って、10から14までの数字を順番に表示してください。

答えと解説を見る

模範解答

for number in range(10, 15):
    print(number)

始まりを10、終わりを15にします。終わりの15は含まれません。

問題3

レンジとforを使って、1から100までの整数の合計を求め、表示してください。

答えと解説を見る

模範解答

total = 0

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

print(total)

100まで含めるため、終わりには101を指定します。合計は5050です。