スキルUPの道しるべ

本サイトはプロモーションを含みます
上に戻る

【Python】range関数でfloat(浮動小数点数)を使う方法をコード例付きで解説!

この記事では、Pythonにおいて、浮動小数点数を利用してrangeを生成する方法について解説します。
通常、range関数は整数の範囲を生成しますが、浮動小数点数も利用することで柔軟な範囲指定が可能となります。

浮動小数点数を利用したrangeの基本的な使い方

例えば、0から1まで0.1刻みで数値を生成する場合、次のようにrange関数を使います。

for i in range(0, 11):
    print(i / 10)
||,

実行結果:
>|python|
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

浮動小数点数を利用したrangeの注意点

浮動小数点数を使った場合、丸め誤差が生じる可能性があるため、注意が必要です。
例えば、次のコードでは0.3を含めるはずですが、実際にはそのような結果にはなりません。

for i in range(0, 11):
    print(i / 3)

実行結果:

0.0
0.3333333333333333
0.6666666666666666
1.0
1.3333333333333333
1.6666666666666667
2.0
2.3333333333333335
2.6666666666666665
3.0
3.3333333333333335

浮動小数点数を利用したrangeの工夫

浮動小数点数を使ったrangeを用いる場合、丸め誤差を回避するために工夫が必要です。
例えば、次のようにDecimalモジュールを利用することで、正確な演算を行うことができます。

from decimal import Decimal

for i in range(0, 31):
    print(Decimal(i) / Decimal(10))

実行結果:

0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3

このようにして、正確な浮動小数点数の範囲指定が可能となります。

おすすめ書籍

Pythonプログラミングを手を動かしながら学びたい方に、『独習Python』がおすすめです。
この書籍は、プログラミング初心者向けにわかりやすく丁寧に解説がされており、独習用に使用することができます。
Pythonの基本から標準ライブラリ、オブジェクト指向構文、モジュールまで幅広く解説されており、サンプルプログラムを例示しながら丁寧に説明されています。
初心者から再入門者、学生など、Python言語をしっかり身につけたい方にお勧めの一冊です。

まとめ

Pythonのrange関数を浮動小数点数と組み合わせることで、柔軟な範囲指定が可能となります。
ただし、誤差には注意が必要です。また、Decimalモジュールを利用することで、正確な演算が行えます。
是非、これらのテクニックを活用して、Pythonプログラミングの幅を広げてみてください。