Python Math ExamplesUse math methods. Review methods like sqrt, math.floor and math.ceil.
Math. In Python we discover many built-in mathematical functions. Consider a square root—we just call math.sqrt. No custom code is required.
Function notes. We can apply floors and ceilings to reduce, and increase, fractional numbers. With sum() and fsum we can add up numbers.
Two common math functions are floor and ceil. Floor removes the digits past the decimal place. In this example it changes 100.7 to 100.
Ceil This rounds the number up to the next highest one. A ceiling is always above us.
Tip When using methods like floor and ceil, consistency is helpful. If some parts of the program use these methods, others should too.
Python program that imports math
# Fractional number.
n = 100.7
# Absolute value.
With sum, we add together the elements in a list. Fsum is a more accurate way to sum floating-point numbers. On integers, the methods are equal. But fsum is better for floats.
Tip Sum and fsum can be used on any iterable collection. This includes the list, tuple and set.
Caution If the iterable contains a non-numeric value, a TypeError will occur. We handle this in an except statement.
Here In this example, the sum() method causes a rounding error to occur. The fsum() method returns a better sum.
Python program that uses sum, fsum
# Input list.
values = [0.9999999
# Sum values in list.
r = sum
# Sum values with fsum.
r = math.fsum
Truncating a number removes everything past the decimal place. This does not round the number. Instead it just eliminates the fractional part.
Note The number before the decimal place is never changed with math.trunc. This is similar to casting to (int) in C-like languages.
Python program that uses math.trunc
# Truncate this value.
value1 = 123.45
truncate1 = math.trunc
# Truncate another value.
value2 = 345.67
truncate2 = math.trunc
Exponentiation multiplies a number by itself a certain number of times. With math.pow we apply this operation. Math.pow is similar to the ** operator.
But When math.pow is applied, the result is always converted to a float. This is not the case with the ** operator.
Tip More examples of using the exponent operator are available on the numbers page.
Python program that uses math.pow
# Use math.pow method.
a = math.pow
# Use operator.
b = 2 **
# Print results.
In most programs, we do not need square roots. But when we do, the math.sqrt method is useful. It receives one argument. It returns the square root (in floating-point form).
Tip If your program often uses square roots, a cache or lookup table may be helpful. You could memoize the result of math.sqrt for speed.
Python program that uses math.sqrt
value1 = 9
value2 = 16
value3 = 100
# Use sqrt method.
Pi, E. You probably know the approximate values of E and pi. And you could specify these directly in a Python program. But with math.e and math.pi, we avoid this hassle.
Python program that uses math.e, pi
# This returns the value of e.
# And this is pi.
This is a built-in function in Python. We invoke it with one argument. Abs returns the absolute value of that argument.
This method rounds a number up or down. We call it with a float argument. We can specify how many digits past the decimal place we want to keep.
Math is used in the real world. Please also check out the compound_interest Python implementation. It uses pow to compute an exponential function.
A summary. It is possible to directly compute mathematical functions. We could add methods that use arithmetic operators. But this adds complexity. It bloats programs.
Instead, we can use built-ins. These are found in the default and math modules. This approach is more effective. It is simpler. It makes programs easier to understand and maintain.