for文

for文の基本的な書式

Pythonのfor文の基本的な書式は,次の通りである。

for 変数 in イテレート可能なオブジェクト:
	処理A
	処理B
	 ・
	 ・
	 ・

イテレート可能なオブジェクトとは,1つずつ順に値(整数や文字列等)を取り出せるようなもので,文字列やリストなどがあげられる。 for文では,inの後ろで指定したイテレート可能なオブジェクトから1つずつ変数に代入されて,ブロックに記述した処理が繰り返し実行される。

たとえば,次のように1月から12月までの各月の陰暦名称(異称,第5回練習問題1)を出力するプログラムをfor文を用いて表現し直してみよう。

H:\prg1\05> python month.py↵
睦月
如月
弥生
卯月
皐月
水無月
文月
葉月
長月
神無月
霜月
師走
# coding: shift_jis
month = ("睦月", "如月", "弥生", "卯月", "皐月", "水無月", 
         "文月", "葉月", "長月", "神無月", "霜月", "師走")
for m in month:
	print(m)

上のプログラムでは,イテレート可能なオブジェクトであるタプルmonthから1つずつ変数mに代入させ, 処理(変数m(陰暦名称)をprint関数を用いて出力)している。 while文を用いて作成したプログラムと比べると,for文の方がすっきりしていることがわかるだろう。


1から100までの整数の和(rangeオブジェクトの利用)

ここで,第4回の授業で学んだ1から100までの整数の和を出力するプログラムをもう一度考えよう。

number = list(range(1, 101, 1))
s = 0
for i in number:
	s = s + i
print(s)

上のプログラムでは,rangeコンストラクタを用いて,1から100までの整数のリスト[1, 2, 3, 4, ......, 100] を生成し,その生成したリストnumberの合計をfor文を用いて算出している。 ここで,rangeコンストラクタの引数は,start,stop,stepの3つあるのだが,startとstepは省略することができる。 省略した場合,startのデフォルト値は0,stepのデフォルト値は1となっている。

単に1から100までの整数の和を求めるだけであれば,次のプログラムのように表現することが多い。

s = 0
for i in range(101):
	s = s + i
print(s)