divmod(a, b)
该函数接收两个数字类型(非复数)参数,返回由这两个数值相除的商和余数组成的元组。
说明
如果参数 a 与 参数 b 都是整数,函数返回的结果相当于 (a // b, a % b)
。
如果其中一个参数为浮点数时,函数返回的结果相当于 (q, a % b)
,q 通常是 math.floor(a / b)
,但也有可能是 1 ,比小,不过 q * b + a % b
的值会非常接近 a。
如果 a % b
的求余结果不为 0 ,则余数的正负符号跟参数 b 是一样的,若 b 是正数,余数为正数,若 b 为负数,余数也为负数,并且 0 <= abs(a % b) < abs(b)
示例
>>> divmod(6, 5)
(1, 1)
>>> 6 // 5
1
>>> 6 % 5
1
>>> divmod(6, 3)
(2, 0)
>>> divmod(6, -2)
(-3, 0)
>>> divmod(6, -2.5)
(-3.0, -1.5)
>>>
>>> divmod(6, 2.6)
(2.0, 0.7999999999999998)
>>> import math
>>> math.floor(6/2.6)
2
>>> 6%2.6
0.7999999999999998
>>>
>>> divmod(6, 7)
(0, 6)
>>> 6 / 7
0.8571428571428571
>>> math.floor(6/7)
0
>>>
>>> divmod(-6, 7)
(-1, 1)
>>> divmod(-6, -7)
(0, -6)
>>> -6/7
-0.8571428571428571
>>> math.floor(-6/7)
-1