はじめに
Pythonの超入門記事です。プログラミングで最も簡単な処理の一つである、for文の書き方を解説します。
サンプルコード
for文を利用して、0から4までの数を出力してみましょう。
よくみるパターンは下記の二つかと思います。
方法1
1 | for i in range(5): |
方法2
1 | for i in [0, 1, 2, 3, 4]: |
方法1の解説
次のパターンも見てください。
1 | for i in range(0, 5): |
次のパターンだとどうでしょうか。
1 | for i in range(1, 5): |
range は二つの引数start, stopをとります。
range をfor文で回すことでstart以上、 stop未満の数を順に取り出すことができます。
そして、startは省略した場合は0となるので、方法1のような使い方ができるのです。
方法2の解説
for文はlistに対しても回すことができます。
listは[]記号で括ることで作成できるオブジェクトです。
listオブジェクトは、要素として数以外の変数を取ることもできます
つまり、文字列のlistをfor文で回すことも出来ます。
1 | for i in ['orange', 'apple']: |
要素の型が違っている場合でもOKです。
1 | for i in ['orange', 'apple', 4]: |
方法1(range)と方法2(list)の違い
これらの特徴からfor文を書く際は、
rangeとlistは次のように使い分けると良いでしょう。
- range
- 対象の数を増やしていく場合(スタートは0以外でもOK)
- list
- それ以外
発展
厳密にはどういう条件であれば、for文が回せるのでしょうか。
それは、オブジェクトがイテラブルかどうかによります。
イテラブルなオブジェクトには、例えば次のようなものがあります
- range
- list
- tuple
- set
- dict
- str
イテラブルかどうかは次のようなコードで確認することが出来ます。
1 | hasattr(obj, "__iter__") |
文字列のfor文
先ほどの例に挙げたように、文字列もイテラブルです。
文字列に対してfor文を回すことで、文字を一文字ずつ取得できます。
1 | for s in "Python": |
これは、よく使うので覚えておくと良いでしょう。