divmod(a, b)
該函數(shù)接收兩個(gè)數(shù)字類型(非復(fù)數(shù))參數(shù)裁奇,返回由這兩個(gè)數(shù)值相除的商和余數(shù)組成的元組。
說明
如果參數(shù) a 與 參數(shù) b 都是整數(shù)撑蚌,函數(shù)返回的結(jié)果相當(dāng)于 (a // b, a % b)
上遥。
如果其中一個(gè)參數(shù)為浮點(diǎn)數(shù)時(shí),函數(shù)返回的結(jié)果相當(dāng)于 (q, a % b)
争涌,q 通常是 math.floor(a / b)
粉楚,但也有可能是 1 ,比小第煮,不過 q * b + a % b
的值會(huì)非常接近 a解幼。
如果 a % b
的求余結(jié)果不為 0 ,則余數(shù)的正負(fù)符號(hào)跟參數(shù) b 是一樣的包警,若 b 是正數(shù)撵摆,余數(shù)為正數(shù),若 b 為負(fù)數(shù)害晦,余數(shù)也為負(fù)數(shù)特铝,并且 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