Python】for文で繰り返し処理を行う【基本講座】
Pythonでもfor分はあります。しかも、Pythonにおけるfor文は重要な役割を持っています。
変数に格納された文字列などを取り出す操作によく使われます。
for文の基本
for文の基本操作 イテラブルなオブジェクトの処理
Pythonのfor文はC/C++と使い方が異なるので切り替えが必要です。
しかし、難しい概念はないのですぐ慣れると思います。
1 2 3 4 5 6 7 |
l = ['a', 'b', 'c', 'd'] for i in l: print(i) # i:変数(NoneType) # l:リスト型変数 |
i は変数ですので、型がありません。lはリスト型で要素が入っています。
この要素をひとつずつ変数iに入れて、printしていく動作になります。
このことより in より後には、イテラブルなオブジェクト、つまりシーケンス型を書きます。
参考書によっては、いてレート可能なオブジェクトと書いてあるところもあります。イテレート(iterate)は、日本語で繰り返し処理するという意味です。
rangeオブジェクトの処理
イテラブルなオブジェクトの仲間で、カウントアップなどに使えるrangeオブジェクトを紹介します。
1 2 3 4 5 6 7 |
for i in range(10): print(i) # i:変数(NoneType) # range([開始,]終了[,ステップ]) # 開始から終了までをカウントするrangeオブジェクトを戻す。 # 最後の引数ではカウントアップするステップ数を指定できる。 |
例えば、「3から30までの3の倍数を表示する。」
という問題があったとしよう。
rangeを使えば数秒で書ける。
1 2 |
for i in range(3, 31, 3): print(i) |
「10から0までのカウントダウンを表示する。」
という問題ならどう書けるだろうか?rangeを使えば同じく簡単に書ける。
1 2 |
for i in range(10, -1, -1): print(i) |
rangeオブジェクトをリストに変換したい
rangeは、range型と呼ばれる型です。つまり、Pythonで作業しているとリスト(list)型に変換したい場面に遭遇するかもしれません。
1 2 3 |
list(range(10)) >> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
list()で囲むだけですので、分かりやすいかと思います。
Pythonおすすめ書籍
最初の2冊は初心者向けです。Effectiv Pythonはこの2冊を終えてから読むとかなりわかりやすく感動できると思います。
|
|
|