با استفاده از ریاضی، ماژول استاندارد پایتون برای توابع ریاضی، می توانید توابع نمایی و لگاریتمی (لگاریتم طبیعی، لگاریتم معمولی و لگاریتم باینری) را محاسبه کنید.
در اینجا موارد زیر به همراه کد نمونه توضیح داده شده است.
- پایه لگاریتم طبیعی (عدد ناپیر):
math.e
- قدرت::
**
اپراتور,pow()
,math.pow()
- ریشه مربع (ریشه):
math.sqrt()
- تابع نمایی (تابع نمایی طبیعی):
math.exp()
- یک تابع لگاریتمی:
math.log()
,math.log10()
,math.log2()
پایه لگاریتم طبیعی (عدد ناپیر):math.e
پایه لگاریتم طبیعی (عدد ناپیر) به عنوان یک ثابت در ماژول ریاضی ارائه می شود که با math.e نشان داده می شود.
import math
print(math.e)
# 2.718281828459045
قدرت: ** عملگر، pow()، math.pow():**اپراتور,pow(),math.pow()
برای محاسبه توان ها، از عملگر **، تابع داخلی pow() یا math.pow() استفاده کنید.
مجذور y x به صورت زیر به دست می آید
x**y
pow(x, y)
math.pow(x, y)
print(2**4)
# 16
print(pow(2, 4))
# 16
print(math.pow(2, 4))
# 16.0
math.pow() آرگومان را به یک نوع ممیز شناور تبدیل می کند. از طرف دیگر، تابع داخلی پایتون ()pow از __pow()__ تعریف شده برای هر نوع استفاده می کند.
به عنوان مثال، ()pow اجازه می دهد تا انواع پیچیده به عنوان آرگومان مشخص شوند، اما math.pow() نمی تواند انواع پیچیده را به انواع شناور تبدیل کند و در نتیجه یک خطا ایجاد می شود.
print(pow(1 + 1j, 2))
# 2j
# print(math.pow(1 + 1j, 2))
# TypeError: can't convert complex to float
تابع داخلی pow() پایتون آرگومان سوم، pow(x, y, z) را نیز مجاز میکند که باقیمانده (باقیمانده) z را به توان y x برمیگرداند. این همان محاسبه pow(x, y) % z است، اما pow(x, y, z) کارآمدتر است.
print(pow(2, 4, 5))
# 1
ریشه مربع (ریشه):math.sqrt()
ریشه دوم (ریشه) را می توان با استفاده از ** یا math.sqrt() روی **0.5 تنظیم کرد.
print(2**0.5)
# 1.4142135623730951
print(math.sqrt(2))
# 1.4142135623730951
print(2**0.5 == math.sqrt(2))
# True
مانند math.pow()، math.sqrt() آرگومان ها را برای پردازش به انواع ممیز شناور تبدیل می کند، بنابراین تعیین نوعی که نمی تواند به نوع float تبدیل شود منجر به TypeError می شود.
print((-3 + 4j)**0.5)
# (1.0000000000000002+2j)
# print(math.sqrt(-3 + 4j))
# TypeError: can't convert complex to float
همچنین math.sqrt() نمی تواند مقادیر منفی را پردازش کند و در نتیجه ValueError ایجاد می شود.
print((-1)**0.5)
# (6.123233995736766e-17+1j)
# print(math.sqrt(-1))
# ValueError: math domain error
توجه داشته باشید که هنگام برخورد با اعداد مختلط، مثال با استفاده از عملگر ** یک خطا را نشان می دهد، اما ماژول cmath مقدار دقیق تری ارائه می دهد. مقادیر منفی را نیز می توان مدیریت کرد.
import cmath
print(cmath.sqrt(-3 + 4j))
# (1+2j)
print(cmath.sqrt(-1))
# 1j
تابع نمایی (تابع نمایی طبیعی):math.exp()
برای محاسبه توان پایه لگاریتم طبیعی (عدد ناپیر) e از math.exp() استفاده کنید.
math.exp(x) x مجذور e را برمی گرداند.
math.exp(x) معادل “math.e ** x” نیست و math.exp(x) دقیق تر است.
print(math.exp(2))
# 7.38905609893065
print(math.exp(2) == math.e**2)
# False
یک تابع لگاریتمی:math.log(),math.log10(),math.log2()
برای محاسبه تابع لگاریتمی، از math.log(),math.log10(),math.log2() استفاده کنید.
math.log(x,y) لگاریتم x را با y به عنوان پایه برمی گرداند.
print(math.log(25, 5))
# 2.0
اگر آرگومان دوم حذف شود، لگاریتم طبیعی در زیر نشان داده شده است.
لگاریتم
در ریاضیات، لگاریتم طبیعی (لگاریتم با عدد ناپیر e به عنوان پایه)، که با log یا ln نشان داده می شود، می تواند با math.log(x) محاسبه شود.
print(math.log(math.e))
# 1.0
لگاریتم (پایه 10)
لگاریتم معمولی (لگاریتم با پایه 10) را می توان با math.log10(x) محاسبه کرد که از math.log(x,10) دقیق تر است.
print(math.log10(100000))
# 5.0
لگاریتم باینری
لگاریتم باینری (لگاریتم با پایه 2) را می توان با math.log2(x) محاسبه کرد که از math.log(x,2) دقیق تر است.
print(math.log2(1024))
# 10.0