在这篇文章中,我将向您解释如何用python生成一系列浮点数。我已经用python写了几个示例,演示了如何在自定义range()函数的start,stop和step参数中使用浮点数来打印一系列浮点数。
在这篇文章中提到的例子适用于python的所有版本即python3和python2。
在举例之前先去了解一下现有的range()函数处理浮点值的局限性吧。
Python的一系列浮点数
内容列表
1.python的range()函数的局限性
2.在Python中使用numpy的arange()函数去生成一系列浮点数
3.不使用任何的库或模块用Python生成一系列浮点数
3.1.frange()函数来返回两个浮点数之间的一系列浮点值
4.使用Python Generator生成一系列浮点数
4.1.使用生成器生成一系列仅正浮点数的程序
4.2.使用生成器生成一些列仅负浮点数的程序
5.在range()函数的step参数中使用浮点数
6.在range函数中使用浮点数的其它实例
6.1.使用Scipy生成一系列浮点数
6.2.Python中使用迭代工具生成一系列浮点数
python的range()函数的局限性
你必须知道Python range()函数和它的使用方法。Python的range()函数最普遍的用法是在给定的开始整型数到结束整型数之间生成数字。
Python的range()函数的局限性主要是它只适用于整型数。
Python的range()函数不支持浮点类型即我们不能在它的任何参数中(即start,stop,step)使用浮点数或者非整型数。
举个例子,让我们来看下面的源代码。在这个代码中,我们尝试去在python使用打印两个浮点数之间的一系列数字。
如果你尝试执行上面的代码,Python将引发一个类型错误:"float" object cannot be interpreted as an intege。即python的range()函数中浮点数不能解释为一个整数。
那么如何在python中生成一系列浮点数呢?
有多种多样的方法去实现。让我们一一举例说明。
在Python中使用numpy的arange()函数去生成一系列浮点数。
你可以使用Python编程语言的numpy模块来打印一系列浮点数。
· NumPy库有许多数值函数和数学函数来处理多维数组和矩阵。
· NumPy不是python标准库的一部分(即它不会伴随python默认安装)但是相对容易安装和使用。
那么numpy库的哪些函数能生成一系列非整型数字?
NumPy拥有arange()函数来得到开始和结束两个浮点数之间的浮点数。
arange()函数具有和python range()函数一样的语法和功能。
此外,他的所有参数还支持浮点数。即我们可以给start,stop和step参数传递浮点数。
Numpy的arange()函数的语法:
你需要使用pip安装numpy模块以使用这个函数。
让我们用下面这个实例演示一下。
输出:
你也可以使用numpy的lincespae()函数来实现相同的功能。
但是主要问题是numpy是一个第三方库并且增加了依赖性管理、存储方面的开销(对于软件包本身),尤其是当你想要去使用arange()函数时。
因此一些人不想仅仅为了这个用numpy或者其它库。你可以编写自己的的函数来生成一系列浮点数。我已经举了这样的例子。
不使用任何的库或模块用Python生成一系列浮点数
我已经使用简单的逻辑写了一个代码样品来生成一系列浮点数。这个代码正浮点数和负浮点数都适用。
这个程序分为2部分。第一部分包括函数frange()。另一部分包括用下面的方法使用浮点数测试frange()函数。
1.在range()的参数中使用正浮点值。
2.在range()的参数中使用负浮点值。
3.在frange()参数中使用正数和负数步长值。
4.用相反的顺序显示一系列浮点数。
我们使用for循环来迭代一系列浮点数。
frange()函数来返回两个浮点数之间的一系列浮点值
输出:
在执行完上面提到的所有代码后你应该得到下面的输出。
使用Python Generator生成一系列浮点数
你可以像python的range()函数一样定义一个生成器即range(start, stop, step)接受浮点数或者分数并且输出数字。在这个例子中我为正值使用+或者。
我为正浮点数步长和负浮点数步长创造了两个单独的函数frange()。
使用生成器生成一系列仅正浮点数的程序
输出:
使用生成器生成一系列仅负浮点数的程序
输出:
在range()函数的step参数中使用浮点数
像整数的step值一样,我们可以在我们定制的range()函数中使用浮点数step值。我们可以使用浮点数step生成一个特殊间隔的浮点数。让我们用一个例子看一下如何在pyhton的range()函数中使用浮点数step。在这个例子中,step值为2.5。
你应该得到下面的输出:
在range函数中使用浮点数的其它实例
下面的代码对于不太熟悉python的同学很有用。
让我们运行上面的代码来得到一系列正小数和负小数。
输出:
用Scipy生成一系列浮点数
Scipy有一个内建函数arange(),它泛化了Python的range()构造器去处理浮点数。实际上你可以发现它和numpy的arange()函数一样准确。
Python中使用迭代工具生成一系列浮点数
输出:
英文原文:https://pynative.com/python-range-for-float-numbers/
译者:嘉兴
领取专属 10元无门槛券
私享最新 技术干货