Home
Search
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.
Floor, ceil. 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.
floor
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
import math # Fractional number. n = 100.7 # Absolute value. print(math.floor(n)) print(math.ceil(n))
100 101
Sum, fsum. 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.
Sum
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.
Error
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
import math # Input list. values = [0.9999999, 1, 2, 3] # Sum values in list. r = sum(values) print(r) # Sum values with fsum. r = math.fsum(values) print(r)
6.999999900000001 6.9999999
Truncate. 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
import math # Truncate this value. value1 = 123.45 truncate1 = math.trunc(value1) print(truncate1) # Truncate another value. value2 = 345.67 truncate2 = math.trunc(value2) print(truncate2)
123 345
Pow built-in. 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.
Numbers
Python program that uses math.pow
import math # Use math.pow method. a = math.pow(2, 3) # Use operator. b = 2 ** 3 # Print results. print(a) print(b)
8.0 8
Sqrt. 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.
Memoize
Python program that uses math.sqrt
import math value1 = 9 value2 = 16 value3 = 100 # Use sqrt method. print(math.sqrt(value1)) print(math.sqrt(value2)) print(math.sqrt(value3))
3.0 4.0 10.0
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
import math # This returns the value of e. print(math.e) # And this is pi. print(math.pi)
2.718281828459045 3.141592653589793
Abs built-in. This is a built-in function in Python. We invoke it with one argument. Abs returns the absolute value of that argument.
abs
Round. 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.
Round
Compound interest. Math is used in the real world. Please also check out the compound_interest Python implementation. It uses pow to compute an exponential function.
Compound Interest
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.
Home
© 2007-2021 sam allen.
see site info on the changelog.