如何使用python的内置函数divmod()

2025-10-19 23:44:07

1、divmod()函数可以用来求a对b取余的商和余数。它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。对整型和浮点数都可以操作,这里我们可以看到python对浮点数是近似处理,divmod(5.2,1.2)应该为(4,0.4)

如何使用python的内置函数divmod()

2、那么a到底是一个什么类型呢?用小括号包含着,我猜应该是tuple。

用>>> type(a)

<class 'tuple'>

命令检测一下。果然正确

如何使用python的内置函数divmod()

3、老方法,用>>> help(divmod)

Help on built-in function divmod in module builtins:

divmod(x, y, /)

    Return the tuple (x//y, x%y).  Invariant: div*y + mod == x.

来查询divmod的帮助文档

如何使用python的内置函数divmod()

4、>>> divmod(5.2,2)

(2.0, 1.2000000000000002)

>>> divmod(1+2j,2)

Traceback (most recent call last):

  File "<pyshell#9>", line 1, in <module>

    divmod(1+2j,2)

TypeError: can't take floor or mod of complex number.

>>> 

a和b可以是混合的浮点数和整数,结果为两个浮点数。但是a和b都不能是复数,因为不能对复数取floor和mod。

如何使用python的内置函数divmod()

5、对于混合操作数类型,适用双目算术运算符的规则。对于整数,结果和 (a // b, a % b) 一致。对于浮点数,结果是 (q, a % b) ,q 通常是 math.floor(a / b) 但可能会比 1 小。在任何情况下, q * b + a % b 和 a 基本相等。我们写了一些代码来测试看看。

如何使用python的内置函数divmod()

6、如果 a % b 非零,它的符号和 b 一样,并且 0 <= abs(a % b) < abs(b) 。对于负数这个还蛮考验人的。

如何使用python的内置函数divmod()

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢