プログラムの基本的な制御構造(逐次実行、条件分岐、繰り返し)の一つである繰り返しの書き方について説明します。他の多くのプログラミング言語と同様、Pythonでは繰り返しをfor文あるいはwhile文を使って記述します。ここではfor文の書き方について説明します。
基本的なfor文の書き方
基本的なfor文の書式は次の通りです。
1 2 3 4 |
for 変数 in オブジェクト: 実行したい処理1 実行したい処理2 ・・・ |
for文は、in の後に続くリストやタプル、文字列等のオブジェクトの先頭要素を in の前に記述した変数に代入し、その都度インデントをつけて記述された命令ブロックを実行します。次の例は、1から5までの整数のリストについて、繰り返しを使って先頭の要素から順番に表示するプログラムです。
1 2 3 |
numbers = [1,2,3,4,5] for num in numbers: print num |
実行結果
1 2 3 4 5 |
1 2 3 4 5 |
繰り返したい処理(複数行でも可)はインデントをつけて記述します。他のプログラミング言語では、実行させたい処理のまとまりをブロックとして{}等で表しますが、Pythonではブロックをインデントを使って表すことに注意して下さい。オブジェクトの要素を全て取り出すと繰り返しは終了します。つまり、オブジェクトの要素数分だけ処理を繰り返します。
指定回数分処理を繰り返すrange()関数
回数を指定して繰り返しを行う際にはrange()関数とfor文を組み合わせて使います。次の例を見てみましょう。
1 2 |
for i in range(5): print i |
実行結果
1 2 3 4 5 |
0 1 2 3 4 |
range()関数は引数に指定した要素数からなるリスト(0から始まる)を返します。ここでは、range(5)は0,1,2,3,4からなるリストを返しています。返されたリストの先頭の要素から変数iに代入され、その都度 print i が実行されています。
また、要素数だけでなく、要素の範囲を引数で指定することもできます。次のプログラムは2から4を要素とするリストについて、要素の値を先頭から表示する例です。5は表示されない点に注意して下さい。
1 2 |
for i in range(2, 5): print i |
実行結果
1 2 3 |
2 3 4 |