Trong hướng dẫn này, ta sẽ học về các hàm logarit từ module math. Python cung cấp 4 biến thể hàm logarit. Cả bốn đều có trong module math. Hãy tìm hiểu từng cái.
math.log(number, [Base])
Phương thức math.log(number, [Base]) dùng để tính logarit của number với cơ số Base bất kỳ. Nếu không chỉ định base, mặc định lấy e.
Lưu ý − Sẽ gặp ValueError nếu truyền số âm.
Ví dụ
Xem một số ví dụ.
# import math module import math # logarit cơ số 3 print(math.log(15, 7))
Kết quả
Nếu chạy chương trình trên, ta được kết quả sau.
1.3916625094004957
Bạn có thể chỉ định bất kỳ cơ số nào. Xem ví dụ không có base. Cơ số mặc định là e.
Ví dụ
# import math module import math # logarit cơ số e (mặc định) print(math.log(15))
Kết quả
Nếu chạy mã trên, ta được kết quả sau.
2.70805020110221
Ví dụ
Xem gì xảy ra nếu truyền số âm cho math.log().
# import math module import math # logarit với số âm print(math.log(-15))
Kết quả
Nếu chạy chương trình trên, ta được kết quả sau.
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-6-b686fcb806c6> in <module> 3 4 # logarit với cơ số e(mặc định) ----> 5 print(math.log(-15)) ValueError: math domain error
math.log2(number)
Nếu muốn tính logarit cơ số 2, dùng math.log2(). Tương tự phương thức trên. Xem ví dụ.
Ví dụ
# import math module import math # logarit cơ số 2 print(math.log2(15))
Kết quả
Nếu chạy mã trên, ta được kết quả sau.
3.9068905956085187
Tương tự math.log, sẽ lỗi nếu truyền số âm cho math.log2.
Ví dụ
# import math module import math # logarit cơ số 2 & số âm print(math.log2(-15))
Kết quả
Nếu xem đầu ra, lỗi giống như trước.
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-3-8019b45e571f> in <module> 3 4 # logarit cơ số 2 & số âm ----> 5 print(math.log2(-15)) ValueError: math domain error
math.log10(number)
Ta có thể tìm logarit cơ số 10 bằng math.log10. Tương tự math.log2. Xem ví dụ.
Ví dụ
# import math module import math # logarit cơ số 10 print(math.log10(15))
Kết quả
Nếu chạy chương trình, ta được đầu ra sau.
1.1760912590556813
Thử truyền số âm cho math.log10. Sẽ gặp lỗi tương tự.
Ví dụ
# import math module import math # logarit cơ số 10 & số âm print(math.log10(-15))
Kết quả
Nếu xem đầu ra, ta gặp lỗi sau.
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-5-52ac56b802ca> in <module> 3 4 # logarit cơ số 10 & số âm ----> 5 print(math.log10(-15)) ValueError: math domain error
math.log1p(number)
Phương thức math.log1p(x) tính log(1 + x) với cơ số e. Nó tính logarit của số cho trước bằng cách cộng 1 vào nó. Xem ví dụ.
Ví dụ
# import math module import math # logarit print(math.log1p(15)) # tương đương math.log(16)
Kết quả
Nếu chạy chương trình, ta được kết quả sau.
2.772588722239781
Thử truyền số âm cho math.log1p. Chắc chắn sẽ gặp lỗi như trước.
Ví dụ
# import math module import math # logarit print(math.log1p(-15))
Kết quả
Ta sẽ gặp lỗi sau do số âm truyền vào.
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-15-26016884cb23> in <module> 3 4 # logarit ----> 5 print(math.log1p(-15)) ValueError: math domain error
Kết luận
Ta đã xem tổng cộng 4 phương thức logarit từ module math. Sẽ gặp lỗi nếu truyền số âm cho bất kỳ phương thức nào. Cũng có thể truyền số thực (float). Hãy thử chạy ví dụ trong hướng dẫn với số thực.