next up previous
Next: 関数 Up: プログラミング入門 Previous: if, elif, else

   
リストについてもう少し

リストの長さ(項目数)は, 連結によって増やすことができる:
>>> a = [0, 1, 2]
>>> a = a + [3, 4, 5]
>>> a
[0, 1, 2, 3, 4, 5]
これを用いると, 例えば, 0 から 19 までの整数が順番に並んだリスト を作成することができる.
>>> i = 0
>>> list = []
>>> while i < 20:
...   list = list + [i]
...   i = i + 1
... 
>>> list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
(ここで, 最初に list を空のリストとしている.) 上で述べたような処理は基本的なので, マスターしておきたいものであるが, 実は, Python では, これを行う range() という関数が準備されている:
>>> print range(20)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
range() と for を組み合わせたループの例をみてみよう. N を 1 より大きい数とする. 変数 i が 0 から N - 1 までの値を順にとる間ループを繰り返す プログラムは, 以下のようなものになる:
for i in range(N):
    「ループの本体」
繰り返しの間, i は range(N) の各項目の値をとる. while を用いたループ の場合と異なり, ループの中で i = i + 1 は実行しないことに注意しよう.

例として, $1^2 + 2^2 + \dots + 10^2$ を計算してみよう [*].

>>> sum = 0
>>> for i in range(10):
...   sum = sum + (i + 1)**2
... 
>>> sum
385



Toru Sasaki
2000-08-30