for文を使った繰り返し

広告

Python で繰り返し処理を行う時に利用できる for 文の使い方について解説します。 for 文は別途指定したイテラブルなオブジェクトの要素の数だけ要素を 1 つずつ取り出してながら繰り返しを行います。

for文の処理の流れ

for 文は決められた回数だけ、処理を繰り返し実行します。基本的な書式は次の通りです。

for 変数 in イテラブルオブジェクト:
    実行する文

イテラブルオブジェクトから要素を順につ取得しつつ、イテラブルオブジェクトの要素の数だけその後に記述されたブロックの中の文を順に実行します。複数の文を実行させたい場合にはブロック内に記述してください。

なおイテラブルオブジェクトとは要素を順番に取り出すことができるオブジェクトのことで、文字列、リスト、タプル、辞書などがイテラブルオブジェクトです。

for 変数 in イテラブルオブジェクト:
    実行する文1
    実行する文2
    実行する文3

※ Python ではブロックをインデントを使って定義します。詳しくは「Pythonにおけるインデントを使ったブロックの定義」を参照されてください。

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

mylist = ["Orange", "Peach", "Lemon"]
for val in mylist:
    print(val)

print("End")

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

 1) リストを定義し変数 mylist にを代入
 2) mylist から要素を 1 つ取得して val に代入 (val は "Orange")
 3) 変数 val の値を出力
 4) mylist から要素を 1 つ取得して val に代入 (val は "Peach")
 5) 変数 val の値を出力
 6) mylist から要素を 1 つ取得して val に代入 (val は "Lemon")
 7) 変数 val の値を出力
 8) イテラブルオブジェクトから要素をすべて取得したので for 文を終了
 9) "End" を出力

このように for 文で指定したイテラブルオブジェクトの要素の数だけ繰り返しが行われます。

サンプルプログラム

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 sample3-1.py という名前で保存します。

mylist = ["Orange", "Peach", "Lemon", "Apple"]
print(mylist)
for val in mylist:
    print("value:" + val)

print("¥n")

mydict = {"L":"Lemon", "O":"Orage", "G":"Grapes"}
print(mydict)
for mykey, myvalue in mydict.items():
    print("key:" + mykey + ", value:" + myvalue)

その後で、次のように実行してください。

python sample3-1.py

for文の処理の流れ(1)

for 文を使ってリストおよび辞書のオブジェクトから要素を 1 つずつ取得し画面に出力しました。(辞書型で使用できる items メソッドについては「辞書に含まれるすべてのキーと値を取得する」を参照されてください。)

for文の最後に実行される処理を記述する(for..else文)

for 文はイテラブルオブジェクトの要素の数だけ繰り返し処理を行いますが、全ての要素を取得したあとに最後に実行される処理を else 節のあとに記述することができます。

for 変数 in イテラブルオブジェクト:
    実行する文1
    実行する文2
else:
    実行する文1
    実行する文2

これは単に for 文の次に記述した場合と基本は変わりありません。 for 文が終了すると、 for 文の次に記述されている文が実行されるためです。

for 変数 in イテラブルオブジェクト:
    実行する文1
    実行する文2

実行する文1
実行する文2

ただ for 文の中で break 文が実行された場合だけ異なります。 break 文が実行されると else 節のあとに記載されているブロック内の処理は実行せずに for 文の次へ処理が移るためです。 else 節を使わなかった場合は break 文が実行されたかどうかに関わらず for 文の次に記述された処理が実行されます。(break 文については「break文を使った繰り返し処理の強制終了とcontinue文を使った繰り返し処理のスキップ」を参照されてください)。

サンプルプログラム

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 sample3-2.py という名前で保存します。

count = 0
mylist = ["Orange", "Peach", "Lemon", "Apple"]
print(mylist)
for val in mylist:
    print("value:" + val)
    count += 1
else:
    print("要素の数 = " + str(count))

その後で、次のように実行してください。

python sample3-2.py

for文の最後に実行される処理を記述する(for..else文)(1)

else 節を使って for 文の最後に実行される処理を記述しました。

-- --

Python で繰り返し処理を行う時に利用できる for 文の使い方について解説しました。

( Written by Tatsuo Ikura )

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

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。