※さらに30日間返金保証ありなので、実質リスクゼロ。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
皆さんは今までpythonの勉強をしてきて、range()という 関数 を何度も目にしてきたと思います。
よく分からずにスルーしていた人やなんとなく飛ばし読みしていた人達のために以下ではrange関数の基礎的なところから解説していきます。
range関数とは?
range関数とは連続した数値を生成する関数です。
例えば1~100の数字を リスト に格納したい時、手動でリスト内に1~100を入れているとめちゃくちゃ面倒くさいです。
こんな時、range関数を使えば一気にこの処理を行うことができます。
range関数はpythonの組み込み関数(標準で使用できる関数)で、特に何かライブラリをインポートしたりしなくてもいつでも使用することができます。
range関数の基礎的な使い方
それではrange関数の基礎的な使い方について見ていきましょう。
range関数で引数を2つ指定する
range関数の引数(かっこの中身)は、range( start, end )という形で指定していきます。
この時、startの数値からendの直前の数値までがrange関数によって生成されます。
以下で例を見ていきましょう。
>>>for i in range(0,5): ... print(i) 0 1 2 3 4
for文では繰り返し処理をしてくれます。
ここではrange関数から数値を1つずつ取り出してiに入れて、for文内の処理を実行してくれます。
よって第1引数である0から、第2引数である5の直前の数値、4まで順に出力されています。
また、この場合、第1引数をとる必要はありません。第1引数を省略すると勝手に0から開始してくれるため、上の例では、range(5)と書けば同じような結果が得られます。
range関数で3つ目の引数(step)を指定する
range関数では最初と最後の数値を指定するだけではなく、stepという第3の引数を指定することができます。
stepをしていすると、step文字ごとに最初の数値から最後の数値の1個手前までの連続した数値を生成してくれます。
以下で例を見ていきましょう。
>>>for i in range(0,5,2): ... print(i) 0 2 4
上の例では第3引数に2(step)を指定したため、最初の数値(0)から、最後の数値の直前(4)まで2文字ごとに連続した数値が出力されています。
stepはデフォルトでは1になっているので、指定しない場合は完全に連続した数値が得られます。
ちょっと変わったrange関数の使い方
range関数は上で挙げたような例が最も一般的な使い方ですが、他にも変わった使い方が存在します。以下ではいくつかそのような例について説明していきます。
逆順に数値を得る
ここまではstepでは正の数を指定してきましたが、負の数を指定すると逆順で数値を並べることができます。
以下で例を見ていきましょう。
>>>for i in range(5,0,-1): ... print(i) 5 4 3 2 1
第1引数の5から第2引数の直前1までの数値が逆順で出力されています。
第3引数(step)を-2にするとどうでしょうか。
>>>for i in range(5,0,-2): ... print(i) 5 3 1
stepが正の時と同じように数値が2文字ごとに現れているのが分かると思います。
range関数を使って小数の連続値を得る
range関数では引数に小数をとることができません。
よって以下のように少数の連続値を出力します。
>>>for i in range(0,5): ... print(i*0.1) 0.0 0.1 0.2 0.3 0.4
print文の中でrange関数から取り出した整数に0.1をかけてあげます。
また、リスト内包表記を使う場合は以下のようにもできます。
>>>list = [i*0.1 for i in range(0,5)] ...print(list) [0.0, 0.1, 0.2, 0.3, 0.4]
リスト内包表記についてよく分からない人は以下の記事を参考にしてください。
ここではrange関数から取り出した(forの直後の)iに入れられた数値に0.1がかけられて、リスト内に入れられています。
まとめ
今回はpythonにおけるrange関数について学んでいきました。
引数であるstart(最初の数値)、end(最後の数値+1)、step(step文字ごとに数値を得る)の3つを理解し、range関数の基本を押さえることができたと思います。
また、range関数で逆順の数値を得たり、小数の出力を得るといった使い方もたまにする時があるので、是非覚えておいてください。
今後も定期的にコンピュータ系の記事を発信していくので是非、興味のある人はブックマークして見にきてくれると嬉しいです!!
※さらに30日間返金保証ありなので、実質リスクゼロ。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル