[Python] for文で繰り返し処理を行おう!

皆さんこんにちは。
本日はfor文に関して勉強していきたいと思います。


for文もif文同様、多く利用される構文の一つです。
ぜひ覚えて行ってください!


Today's Contents

  1. for文ってなに?
  2. for文の書き方
  3. for文を実践してみよう!
  4. for文でよく利用されるコード集
    • リスト:[]
    • 辞書:{}
    • インデックス取得:range()
    • リスト+インデックス取得:enumerate()
    • リストの複数変数:zip()
    • 逆順:reversed()

プログラミング言語におけるfor文とは、
“繰り返し処理”を意味します。
同じような動作を一定数繰り返します。
よくあるイメージとしては、自動販売機でジュースを購入する際は
我々は繰り返し処理をしているといって良いでしょう。


思い出してください。
 A:財布の中身を確認する
 B:財布から100円を取り出す
 C:自販機に100円を入れる
 D:財布の中身を確認する
 E:財布から50円を取り出す
 F:自販機に50円を入れる
 G:ほしい商品のボタンを押す
「A~C」で1セット「D~F」で1セットと、
金額は違えど似たような処理を2回行っていますね。
これが繰り返し処理です。

基本的なfor文の書き方は以下です。

for 変数名 in オブジェクト:
   処理

注意点としては、for文に含まれる処理の部分は
インデントでブロックを表現します。
if文のときと同様ですね。

オブジェクトの中には、
・リスト / タプル / 辞書
・関数
などが入ります。

それでは更に詳細を見てみましょう。

前段でお話した自販機の例でfor文を作成してみましょう。
行動をPythonのコードに書き写すと、以下の通りとなります。

money = ['100円', '50円']
for kane in money:
   print('財布の中身を確認する')
   print('財布から' + kane + '円を取り出す')
   print('自販機に' + kane + '円を入れる')
   print('ほしい商品のボタンを押す')

実際に実行してみましょう。

しっかりと飲み物を買うことができました!
簡単なコードの解説です。

まずはfor文で利用するため、moneyというリストで料金の集合を定義します。
その後繰り返し処理を行うfor文を記載しています。
for文ではリストの先頭から処理が行われるため、
kaneという変数に100円が代入されます。
配下の処理ではkaneに100円が代入された状態で処理が進み、
for文最後の自販機まで実行されました。
続いてfor文2度目の処理が走り、次はkaneに'50円'が代入された状態で
同様の処理が進みます。
moneyの最後まで処理が終わったので、
for文を抜け出し、最後のボタンを押すフェーズに移ったという流れです。

最後にfor文でよく用いられるコードをご紹介したいと思います。

【リスト:[]】

リストに格納されたオブジェクトを順番にfor文に代入します。

l = ['saru', 'gorira', 'kirin']
for animal in l:
   print(animal)


【辞書:{}】

辞書に格納されたオブジェクトを指定の方式で抜き出します。
A:キーのみを取り出す

d = {'key1': 'saru', 'key2': 'gorira', 'key3': 'kirin'}
for k in d:
   print(k)


B:バリューのみを取り出す

for v in d.values():
   print(v)


C:キーとバリューの両方を取り出す

for k, v in d.items():
   print(k, v)


【インデックス取得:range()】

実行の番号(0始まり)を取得する

for i in range(3):
   print(i)


【リスト+インデックス取得:enumerate()】

リスト内のオブジェクトを取り出しつつ、インデックス番号も取得する。

l = ['saru', 'gorira', 'kirin']
for i, animal in enumerate(l):
   print(i, animal)


【リストの複数変数:zip()】

複数リストが存在した場合に、対応する順番で双方の要素を取り出す。

l = ['saru', 'gorira', 'kirin']
num = [12, 6, 3]

for annimal, kazu in zip(l, num):
   print(annimal, kazu)


【逆順:reversed()】

対象オブジェクトに対して、逆順に取り出す。

l = ['saru', 'gorira', 'kirin']
for animal in reversed(l):
   print(animal)


本日はここまで。
皆さんお疲れ様でした!

コメント