Python divmod() function is used to perform division on two input numbers. The numbers should be non-complex and can be written in any format such as decimal, binary, hexadecimal etc.
Python divmod()
Python divmod()
syntax is:
1 2 3 |
divmod(a, b) |
The output is a tuple consisting of their quotient and remainder when using integer division.
For integer arguments, the result is the same as (a // b, a % b).
For floating point numbers the result is (q, a % b), where q is usually (math.floor(a / b), a % b). In any case q * b + a % b is very close to a.
If a % b is non-zero it has the same sign as b, and 0 <= abs(a % b) < abs(b).
Python divmod() example with integers
1 2 3 4 5 6 7 8 9 10 |
# simple example, returns (a // b, a % b) for integers dm = divmod(10, 3) print(dm) x, y = divmod(10, 3) print(x) print(y) dm = divmod(0xF, 0xF) # hexadecimal print(dm) |
Output:
1 2 3 4 5 6 |
(3, 1) 3 1 (1, 0) |
Python divmod() example with floats
1 2 3 4 5 6 7 8 9 |
# floats, returns usually (math.floor(a / b), a % b) dm = divmod(10.3, 3) print(dm) dm = divmod(11.51, 3) print(dm) dm = divmod(-11.51, 3) print(dm) |
Output:
1 2 3 4 5 |
(3.0, 1.3000000000000007) (3.0, 2.51) (-4.0, 0.4900000000000002) |
Notice that in case of floating points, the q * b + a % b
is very close to a
in some cases.
divmod() with complex numbers
If we pass complex numbers as argument, we will get TypeError
.
1 2 3 |
dm = divmod(3 + 2J, 3) |
Output: TypeError: can't take floor or mod of complex number.
Reference: Official Documentation