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です。