range関数とfor文を組み合わせて使用する方法について解説します。
非常に簡単なので1分間ほどで理解できます。
range関数の文法
range関数は指定した連続の数値を作成することができます。
range関数の使い方は以下の通りです。
range(start, stop[, step])
第一引数start
から、第二引数stop
までの連続した数値を生成します。
また、第三引数step
を指定することでいくつ刻みの値にするかを指定できます。
返却値にはrangeオブジェクト
を返します。
例を見てみましょう。
なおrangeオブジェクトは下記のような結果になります。
>>> range(1,10)
range(1, 10)
上記のままですと、内容を確認しづらいのでrangeオブジェクトをlist関数に与えて結果をわかりやすくしましょう。
>>> list(range(1,10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1,10,2))
[1, 3, 5, 7, 9]
また、range関数では第一引数start
を省略することができます。その場合、startは0が指定されます。
その場合はstep
を指定できません。
range(stop)
この形式のrange関数の使用例は以下の通りです。
>>> list(range(0,5))
[0, 1, 2, 3, 4]
for文の文法とrange関数の組み合わせ方
for文を使うと、range関数で生成したrangeオブジェクトを順番に処理することができます。
for 変数 in rangeオブジェクト:
処理
具体例は下記のとおりです。
>>> for tmp in range(0, 10):
... print(tmp)
...
0
1
2
3
4
5
6
7
8
9
上記の処理の流れを詳しく解説すると
①rangeオブジェクト(0, 10)が生成される。
②rangeオブジェクトの先頭の値0がtmpに代入され、print(tmp)が実行され、0が出力される
③rangeオブジェクトの次の値1がtmpに代入され、print(tmp)が実行され、1が出力される
④rangeオブジェクトの次の値2がtmpに代入され、print(tmp)が実行され、2が出力される
…中略…
⑪rangeオブジェクトの次の値9がtmpに代入され、print(tmp)が実行され、9が出力される
という流れになっております。