Numbers
int has no size limit. float is a 64-bit binary fraction, so most decimals are stored only approximately.
print(7 / 2) # 3.5, always a float
print(7 // 2) # 3
print(-7 // 2) # -4, rounds down
print(7 % 2) # 1
print(2 ** 100) # exact, however large
print(divmod(7, 2)) # (3, 1)Comparing floats
print(0.1 + 0.2 == 0.3) # False
import math
print(math.isclose(0.1 + 0.2, 0.3)) # Truemath.isclose compares relative to the size of the numbers. Near zero that fails, because nothing is close relative to zero, so pass abs_tol too.
round sends exact halves to the nearest even number: round(2.5) is 2 and round(3.5) is 4. For money, count whole cents in an int or use decimal.Decimal.
Your task
Write split_bill(total_cents, people) returning (share, left_over) in whole cents. Write almost_equal(a, b) using math.isclose with abs_tol=1e-9.
The explanation opens here once every check passes.