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

  • 2020年2月13日
  • 2020年5月7日
  • Python

こんにちは!

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

Python初心者
なんで少数が使えないの〜泣

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

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

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

  • かけ算をして少数を使用する方法
  • 新しい関数を定義して少数を使用する方法
  • arrange()を使用する方法

普通に掛け算する

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

今回は、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

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

あわせて読みたい

こんにちは! 皆さんはリスト内包表記というものを知っていますか? Pythonをしっかりと学習している方なら当たり前だと思いますが、初心者の方や、他言語しか触ったことがないといった方にはあまり馴染みのない言葉かもしれません。 […]

リスト内包表記

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

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という関数を定義しています。この関数を使用して、少数を使えるようにしています。

arange関数を使用する

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

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ライブラリのインストールをしなければなりませんが、簡単に少数を使うことができます。

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

あわせて読みたい

こんにちは! 皆さんは「NumPyライブラリ」をインストールしていますか? NumPyライブラリは、よく使われる数値計算ライブラリで、とても便利なのでインストールしておくべきライブラリです。 そこで今回は、NumPyライ[…]

インストール中

まとめ

今回の記事では、以下の3つの方法を紹介しました。

  • かけ算をして少数を使用する方法
     →少数を掛けて少数を使用できるようにする
  • 新しい関数を定義して少数を使用する方法
     →frange()を定義
  • arrange()を使用する方法
     →NumPyをインストールすると簡単
Python初心者
これで、range関数でも少数を使えるね!

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

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