😺
[Python]rangeの使い方
よく見るrangeの使い方
よく見る使い方としては、こんなところでしょうか?いちばん基本的な使い方ですね。
for i in range(3):
print(i)
"""出力結果
0
1
2
"""
引数
まずは引数から確認していきます。
公式サイトを参考に、引数名を記載しましたが、使用する際に名前の指定はいりません。引数の数から自動で判断して実行してくれます。
引数に与えられる数値は整数のみです。
引数名 | デフォルト値 | 解説 |
---|---|---|
start | 0 | 開始するときの数値を指定できる。 |
stop | なし(要指定) | どの数値まで取得するかを指定できる。 stopで指定した値自体は含まないので注意 |
step | 1 | startからstopに到達するまでに数値をいくつずつ進めるかを指定できる 例えば、2を指定した場合、(start=0だとして)0,2,4のように進む 数値を減少させたい場合はマイナスを指定する必要がある。 |
基本的な例
引数stopのみ
0からスタートして、1ずつ増加していく、5を含まない(= 4まで含んだ)ところで終了。
>>> list(range(5))
[0, 1, 2, 3, 4]
startを指定する
1からスタートして、1ずつ増加して、5を含まない(=4まで含んだ)ところで終了。
>>> list(range(1,5))
[1, 2, 3, 4]
stepを指定する
0からスタートして、2ずつ増加して、5を含まない(=4まで含んだ)ところで終了。
「奇数」、「偶数」、「特定の倍数のみ」の数値を扱いたい時にstepを使ってやるととても便利ですね。
>>> list(range(0,5,2))
[0, 2, 4]
stepを指定する場合は、startの値が例え0(デフォルト値)であってもを明示的に指定する必要があります。
例えば、以下のように書いてしまうと、start=5
, stop=2
のように認識されてしまうからです。
>>> list(range(5,2))
[]
少し応用した例
数を減少させる(カウントダウン)
基本的にstepを増加させることが多いと思いますが、カウントダウンのように数値を下げたい時があります。そんな時は、stepにマイナスを指定します。
stepにマイナスを指定するということは、startがstopより大きい数値でないと意味がないのでそこは気をつけましょう。
>>> list(range(5,-1,-1))
[5, 4, 3, 2, 1, 0]
偶数のみを表示する
stepをうまく活用すれば、偶数のみを表示するようなプログラムをif文を使わずに書くことができます。
if文で書いた例
for i in range(5):
if(i%2==0):
print(i)
stepを活用した例
for i in range(0,5,2):
print(i)
参考
Discussion