一、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