for文

広告

繰り返し処理の1つであるfor文について確認します。書式は次のようになっています。

for 変数 in オブジェクト:
  実行する処理1
  実行する処理2

「for」文はシーケンス型のオブジェクトから要素を順に変数に代入し、要素の数だけ繰り返しを行います。例えば文字列が指定された場合は文字を1文字ずつ変数に代入しながら繰り返しを行いますし、リスト型のオブジェクトを指定した場合はリストの要素を先頭から順に変数に代入しながら繰り返しを行います。結果的にオブジェクトに含まれる要素の数だけ繰り返しが行われることになります。

「for」文も複合文の1つです。繰り返しが1回行われる度にブロック内の処理を実行します。

次のような例で考えてみます。

for num in [4, 3, 12]:
  print "num = " + str(num)
print "End"

実際の実行される流れは次のようになります。

 1) 変数「num」にシーケンスの最初の要素「4」を代入
 2) 変数「num」の値を出力
 3) ブロックの最後まで達したので再度「for」文の先頭へ移動
 4) 変数「num」にシーケンスの2番目の要素「3」を代入
 5) 変数「num」の値を出力
 6) ブロックの最後まで達したので再度「for」文の先頭へ移動
 7) 変数「num」にシーケンスの3番目の要素「12」を代入
 8) 変数「num」の値を出力
 9) ブロックの最後まで達したので再度「for」文の先頭へ移動
10) 要素が最後まで達したので「for」文を終了
11) 「End」を出力

このように要素の数だけ繰り返しが行われます。

シーケンス型のオブジェクトであればリストの他にタプルや文字列なども指定可能です。

for str in "Hello":
  print str
print "End"

今度のサンプルでは「Hello」と言う文字列から文字を1文字ずつ変数「str」に代入しながら繰り返しを行います。今回の場合は文字の数だけ繰り返しが行われえるので回数は5回となります。

サンプルコード

では実際に試してみます。

#coding: UTF-8

for num in [4, 3, 12]:
  print "num = " + str(num)
print "End"

for str in "Hello":
  print str
print "End"

上記を「test3-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。

for文

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)