专业编程基础技术教程

网站首页 > 基础教程 正文

Python之divmod函数和round()函数

ccvgpt 2024-08-08 13:00:19 基础教程 10 ℃

divmod(a,b)

以两个(非复数)数字为参数,在作整数除法时,返回商和余数。若操作数为混合类型,则适用二进制算术运算符的规则。对于整数而言,结果与 (a // b, a % b) 相同。对于浮点数则结果为``(q, a % b)``,其中 q 通常为 math.floor(a / b),但可能比它小 1。在任何情况下,q * b + a % b 都非常接近 a,如果 a % b 非零,则结果符号与 b 相同,并且 0 <= abs(a % b) < abs(b)。

Python之divmod函数和round()函数

>>> divmod(5,2) #表示5除以2,返回了商和余数
(2, 1) 
>>> divmod(9,2)
(4, 1) 
>>> divmod(5.0,2) 
(2.0, 1.0)

内建函数divmod()返回的是两个值,这两个值在一个圆括号内,圆括号内的数字第一个表示商,第二个表示余数。

round(number[, ndigits])

返回 number 舍入到小数点后 ndigits 位精度的值。 如果 ndigits 被省略或为 None,则返回最接近输入值的整数。

对于支持 round() 方法的内置类型,结果值会舍入至最接近的 10 的负 ndigits 次幂的倍数;如果与两个倍数同样接近,则选用偶数。因此,round(0.5) 和 round(-0.5) 均得出 0 而 round(1.5) 则为 2。ndigits 可为任意整数值(正数、零或负数)。如果省略了 ndigits 或为 None ,则返回值将为整数。否则返回值与 number 的类型相同。

对于一般的 Python 对象 number, round 将委托给 number.__round__。

>>> round(1.234567, 2) 
1.23 
>>> round(1.234567, 3) 
1.235 
>>> round(10.0/3, 4) 
3.3333

对浮点数执行 round() 的行为可能会令人惊讶:例如,round(2.675, 2) 将给出 2.67 而不是期望的 2.68。 这不算是程序错误:这一结果是由于大多数十进制小数实际上都不能以浮点数精确地表示。

最近发表
标签列表