Log functions in Python Program

In this tutorial, we are going to learn about the logarithmic functions from math module. We have four variants of logarithmic functions. Pythons' provides all of them in the math module. Let's learn about them one by one.
The math.log(number, [Base]) method is used to compute the logarithm of any Base. If we didn't specify any base value, then it will take e as default base.
Note − You will get ValueError if you pass a negative number to the method.
Let's see some examples.
 Live Demo
# importing math module
import math
# logarithm with base 3
print(math.log(15, 7))
If you run the above program, you will get the following result.
1.3916625094004957
You can specify any base value you want in the above program. Let's see the same example without any base value. Default base value is e.
 Live Demo
# importing math module
import math
# logarithm with base e(default)
print(math.log(15))
If you run the above code, you will get the following results.
2.70805020110221
Let's see what happens if we pass negative number to the math.log() method.
 Live Demo
# importing math module
import math
# logarithm with negative number
print(math.log(-15))
If you run the above program, you will get the following results.
---------------------------------------------------------------------------
ValueError                   Traceback (most recent call last)
<ipython-input-6-b686fcb806c6> in <module>
      3
      4 # logarithm with base e(default)
----> 5 print(math.log(-15))
ValueError: math domain error
If you want to compute logarithm for base 2 value, then we can use math.log2() method. It's similar to the above method. Let's see some examples.
 Live Demo
# importing math module
import math
# logarithm with base 2
print(math.log2(15))
If you run the above code, you will get the following results.
3.9068905956085187
Similar to the math.log method, we will get an error if we pass a negative number to the math.log2 method. Let's see it with the example.
 Live Demo
# importing math module
import math
# logarithm with base 2 & negative number
print(math.log2(-15))
If you see the output of the program by executing it, then you will find that the error we got now and before is the same.
---------------------------------------------------------------------------
ValueError                               Traceback (most recent call last)
<ipython-input-3-8019b45e571f> in <module>
      3
      4 # logarithm with base 2 & negative number
----> 5 print(math.log2(-15))
ValueError: math domain error
We can find the logarithm with base 10 using the math.log10 method. It's similar to the above math.log2 method. Let's see some examples.
 Live Demo
# importing math module
import math
# logarithm with base 10
print(math.log10(15))
If you execute the above program, you will get the following output.
1.1760912590556813
Try to pass a negative number to the math.log10 method. You will get an error similar to the above methods.
 Live Demo
# importing math module
import math
# logarithm with base 10 & negative number
print(math.log10(-15))
If you see the output you will get the following error.
---------------------------------------------------------------------------
ValueError                            Traceback (most recent call last)
<ipython-input-5-52ac56b802ca> in <module>
      3
      4 # logarithm with base 10 & negative number
----> 5 print(math.log10(-15))
ValueError: math domain error
The method math.log1p(x) will compute log(1 + x) with base e. It computes logarithm of given number by adding 1 to it. Let's see some examples.
 Live Demo
# importing math module
import math
# logarithm
print(math.log1p(15)) # similar to math.log(16)
If you execute the above program, you will get the following results.
2.772588722239781
Try to pass a negative number to the math.log1p method. I'm sure that you will get an error as we have seen before.
 Live Demo
# importing math module
import math
# logarithm
print(math.log1p(-15))
# importing math module import math # logarithm print(math.log1p(-15))
We'll get the following error because of the negative number that we passed to the method.
---------------------------------------------------------------------------
ValueError                      Traceback (most recent call last)
<ipython-input-15-26016884cb23> in <module>
      3
      4 # logarithm
----> 5 print(math.log1p(-15))
ValueError: math domain error
We've seen a total of four logarithm methods from the math module. We'll get an error if we pass negative number to any of the logarithmic methods seen in the tutorial. And you can pass floating numbers to the methods as well. Try to execute the examples seen in this tutorial with floating numbers.