python基本命令range_Python的Range()函数(指南)(2)

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

Float和range()

您可能已经注意到,到目前为止我们所处理的所有数字都是整数,也称为整数。这是因为range()只能以整数作为参数。

浮点一词:

在Python中,如果一个数字不是整数,那么它就是一个浮点。整数和浮点之间有一些区别。

整数(int数据类型):

·是整数

·不包括小数点

·可以是正数、负数或0

浮点数(浮点数据类型):

·可以是包含小数点的任何数字

·可以是正的也可以是负的

尝试用浮点调用range(),看看会发生什么:

478857be79194a59a3a8c78e7998bd2c.png

你应得到如下错误信息:

a91526d79bf14c19b3911258822c2631.png

如果你需要找到一个可以让你使用浮点的解决方案,那么你可以使用NumPy。

使用NumPy

NumPy是第三方Python库。如果你要使用NumPy,第一步是检查你是否安装了它。

以下是你在REPL做到这一点的方法:

84d0d6a877a647c981fbfd1b0009200d.png

如果你得到了一个ModuleNotFoundError,那么你需要安装它。为此,请转到命令行并输入pip install numpy。

一旦安装完毕,请输入以下内容:

dd130f3732924ca598e4c4673fce0fbd.png

它的返回如下:

fa903ab51b7f4e8e9827653ee28f2372.png

如果要换行打印每个数字,可以执行以下操作:

37243a5ebb8c493ca137282d1f662205.png

输出如下:

30393f3cebe64728971275e69f31cab2.png

0.8999999999999999从哪来的?

计算机在二进制浮点数字中保存十进制浮点数字是困难的。这导致了各种意想不到的数字表示。

注:为了了解为什么有小数的问题,你可以看看这篇文章和Python文档。

您可能还想看一下十进制库,它在性能和可读性方面略有下降,但是允许您准确地表示十进制数。

另一个选择是使用round(),您可以在中了解更多相关内容。请记住,round()有自己的怪癖,可能会产生一些令人惊讶的结果!

这些浮点错误是否对你来说是个问题,取决于你正在解决的问题。误差将存在于第十六位小数处,绝大多数时候这是微不足道的。它们太小了,除非你正在计算卫星轨道或其他东西,否则你不必担心它。

或者,您也可以使用np.linspace()。它本质上是相同的,但是使用不同的参数。使用np.linspace(),可以指定start和end(包含两者)以及数组的长度(而不是step)。

例如,np.linspace(1, 4, 20)给出了20个等距的数字:1.0, ..., 4.0.另一方面,np.linspace(0, 0.5, 51)给出0.00, 0.01, 0.02, 0.03, ..., 0.49, 0.50.

循环前行

现在,你已了解如何使用range()并处理其局限性。您还可以了解Python 2和Python 3之间的这个重要功能是如何演变的。

下一次你需要执行一个特定的次数,胸有成竹!

祝你Python编程玩得开心!

英文原文:https://realpython.com/python-range/

译者:盈韬

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值