欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > python编程-内置函数range(),round()详解

python编程-内置函数range(),round()详解

2025/2/8 14:33:32 来源:https://blog.csdn.net/qq_37481709/article/details/145504490  浏览:    关键词:python编程-内置函数range(),round()详解

一、range()函数

用于生成一系列连续的整数。它常用于循环结构中,如for循环,来指定循环的次数或迭代的范围。

函数语法
range()函数可以接受一个、两个或三个参数:

‌一个参数‌:range(stop)

生成从0到stop-1的整数序列。
示例:range(5)生成[0, 1, 2, 3, 4]。

‌两个参数‌:range(start, stop)

生成从start到stop-1的整数序列。
示例:range(2, 7)生成[2, 3, 4, 5, 6]。

‌三个参数‌:range(start, stop, step)

生成从start到stop-1的整数序列,步长为step。
示例:range(1, 10, 2)生成[1, 3, 5, 7, 9]。
参数说明
‌start‌:序列的起始值,默认为0。
‌stop‌:序列的结束值(不包含该值)。
‌step‌:序列中每个元素之间的差,默认为1。
使用示例

# ‌1、简单范围生成‌
for i in range(5):print(i)
# 输出: 0 1 2 3 4‌# 2、自定义起始值和结束值‌
for i in range(2, 7):print(i)
# 输出: 2 3 4 5 6# ‌3、自定义步长‌
for i in range(0, 10, 2):print(i)
# 输出: 0 2 4 6 8# ‌4、生成递减序列‌
for i in range(5, 0, -1):print(i)
# 输出: 5 4 3 2 1

注意事项
range()函数返回的是一个range对象,这个对象是一个不可变的序列类型,可以用于迭代。
在Python 3中,range()返回的是一个可迭代对象,而不是列表。如果需要得到列表,可以使用list(range(...))进行转换。
range()函数常与for循环结合使用,非常适合执行循环固定次数的任务。

二、round() 函数用于对数字进行四舍五入。
round(number, ndigits=None)
参数说明
number: 要四舍五入的数字,可以是整数或浮点数。
ndigits: 可选参数,指定要保留的小数位数。默认为 None,即返回最接近的整数。
返回值
返回四舍五入后的数值,类型与输入的 number 相同。

# 示例 1: 四舍五入到最近的整数
print(round(3.5))  # 输出: 4
print(round(3.2))  # 输出: 3
print(round(3.6))  # 输出: 4
# 示例 2: 四舍五入到指定的小数位数
print(round(3.14159, 2))  # 输出: 3.14
print(round(3.14159, 3))  # 输出: 3.142
print(round(2.675, 2))     # 输出: 2.67(此例子会引发混淆,见后文解释)

Python的round()函数遵循的是“四舍六入五成双”的规则,也称为“银行家舍入”规则。具体来说:

‌四舍‌:当小数部分小于0.5时,直接舍去。
‌六入‌:当小数部分大于或等于0.6时,进位。
‌五成双‌:当小数部分恰好为0.5时,看5的前一位:
如果前一位是奇数,则进位。
如果前一位是偶数,则舍去。
这种规则旨在减少舍入误差的累积,特别是在金融和统计领域。

在Python中,浮点数是以二进制形式存储的,而某些十进制小数(如2.675)在二进制中无法精确表示,因此会存在微小的舍入误差。当这个误差与round()函数的舍入规则结合时,就可能导致看似意外的结果。

为了获得更高的精度,建议使用 decimal 模块来进行精确的浮点数运算。

from decimal import Decimalnum = Decimal('2.675')
result = num.quantize(Decimal('0.00'))
print(result)  # 输出: 2.68


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com