math module reference
The everyday math functions on one page. All operate on float and return float unless noted; the integer functions (isqrt, comb, perm, factorial, gcd, lcm) stay exact in int.
Powers, roots, and logarithms
Function
Returns
Example
sqrt(x)
square root (float)
sqrt(16) → 4.0
isqrt(n)
integer square root, floored
isqrt(17) → 4
cbrt(x)
cube root (3.11+)
cbrt(27) → 3.0
pow(x, y)
x ** y as float
pow(2, 10) → 1024.0
exp(x)
ex
exp(1) → 2.718…
log(x[, base])
natural log, or log to base
log(8, 2) → 3.0
log2(x) / log10(x)
log base 2 / base 10
log10(1000) → 3.0
hypot(*coords)
Euclidean norm √(Σx²)
hypot(3, 4) → 5.0
Use the built-in **/pow for integer powers (exact, any size); use math.pow only when you want a float result.
Rounding (return int)
Function
Rounds
Example
floor(x)
toward −∞
floor(-3.2) → -4
ceil(x)
toward +∞
ceil(3.2) → 4
trunc(x)
toward zero
trunc(-3.7) → -3
The built-in round is separate — it rounds half to even and returns the same type. See round numbers correctly .
Combinatorics and integer maths (return int)
Function
Returns
Example
factorial(n)
n!
factorial(5) → 120
comb(n, k)
combinations, n choose k
comb(5, 2) → 10
perm(n, k)
permutations
perm(5, 2) → 20
gcd(*ints)
greatest common divisor
gcd(12, 18) → 6
lcm(*ints)
lowest common multiple (3.9+)
lcm(4, 6) → 12
prod(iterable, start=1)
product of items
prod([1,2,3,4]) → 24
Trigonometry
Angles are in radians . Convert with degrees/radians.
Function
Notes
sin(x), cos(x), tan(x)
basic trig
asin, acos, atan, atan2(y, x)
inverses; atan2 knows the quadrant
degrees(x) / radians(x)
convert between degrees and radians
sinh, cosh, tanh
hyperbolic
Constants
Name
Value
math.pi
3.141592653589793
math.e
2.718281828459045
math.tau
6.283185307179586 (2π)
math.inf
floating-point infinity
math.nan
floating-point not-a-number
Testing and comparing
Function
Returns
isnan(x)
True if x is nan (the only reliable test)
isinf(x)
True if x is ±inf
isfinite(x)
True if neither nan nor inf
isclose(a, b, *, rel_tol=1e-9, abs_tol=0.0)
safe float equality
copysign(x, y)
x with the sign of y
fabs(x)
absolute value as float
fsum(iterable)
accurate sum of floats (tracks error)
fmod(x, y)
C-style remainder (sign of x; differs from %)
For arbitrary precision (beyond float), do the maths in Decimal — it has its own sqrt, ln, log10, and exp methods.