【Python】range関数を少数に拡張する方法を3つ紹介!

少数

こんにちは!

皆さんはrange関数で少数を使ってみたいと思ったことはありませんか?

range関数はfor文などでよく使われますが、少数でも使えたら、for文のステップ数に少数を使えるようになりますね。

しかし残念ながらrange関数では少数を使うことはできません。

そこで今回は、range関数を使って,range関数で少数を使用しているような動作をできるようにする方法を3つ紹介します。


1. 普通に掛け算する

値を使用する場所で単純に「少数をかける」ことで少数を使えるようになります。

今回は、0.0から0.9まで0.1刻みで増やしていく動作で少数の使用法を紹介していきます。

では早速見ていきましょう。

以下のプログラムは、0.0から0.9まで0.1刻みで表示するプログラムです。

for i in range(0, 10, 1):
    print(format(i*0.1, '.1f'))

実行結果

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9

formatを使用しているのは、桁数を少数第一位までに抑えるためです。
Pythonでは0.1が正確には0.1ではないので、このようにしています。きになる方は調べてみてください。

単純にrange関数のみを使うだけでは、この結果は出せませんね。

また、この処理はリスト内包表記を使うと簡潔に書くことができます。

以下のプログラムは先ほどのプログラムをリスト内包表記で書いたプログラムです。

[print(format(i*0.1, '.1f')) for i in range(10)]

実行結果

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9

リスト内包表記の使い方がわからない方は以下の記事で確認しておきましょう。




2. 少数を使える関数を定義する

range関数は少数を使えません。

なので、少数を使えるrange関数を定義しましょう。

以下のプログラムは、少数の使えるrange関数を定義して使用しているプログラムです。

def frange(start, end, step):
    list = [start]
    n = start
    while n + step < end:
         n = n + step
         list.append(n)
    return list

for i in frange(0.0, 1.0, 0.1):
    print(format(i, '.1f'))

実行結果

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9

frangeという関数を定義しています。この関数を使用して、少数を使えるようにしています。


3. arange関数を使用する

numpyの「arange関数」を使用すれば、簡単に少数を使用することができます。

import numpy as np
for i in np.arange(0.0, 1.0, 0.1):
    print(format(i, '.1f'))

実行結果

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9

使用するにはnumpyのインストールをしなければなりませんが、簡単に少数を使うことができます。

インストールをしてない方は、以下の記事を参考にしてインストールしましょう。





4. まとめ

いかがでしたか?
range関数で少数を使えるようにする方法について理解できたでしょうか?

今回は3つの方法を紹介しました。

単純に掛け算をする方法
関数を定義する方法
arange関数を使用する方法

どれもそこまで難しくはありません。

自分の使いやすいと思う方法を理解して覚えておきましょう!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です