باستخدام الرياضيات ، وحدة Python القياسية للوظائف الرياضية ، يمكنك حساب الدوال الأسية واللوغاريتمية (اللوغاريتم الطبيعي واللوغاريتم العادي واللوغاريتم الثنائي).
يتم شرح ما يلي هنا ، جنبًا إلى جنب مع نموذج التعليمات البرمجية.
- قاعدة اللوغاريتم الطبيعي (رقم نابيير):
math.e
- قوة::
**
المشغل أو العامل,pow()
,math.pow()
- الجذر التربيعي (الجذر):
math.sqrt()
- دالة أسية (دالة أسية طبيعية):
math.exp()
- دالة لوغاريتمية:
math.log()
,math.log10()
,math.log2()
قاعدة اللوغاريتم الطبيعي (رقم نابيير):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 () المضمنة في Python __pow () __ المحددة لكل نوع.
على سبيل المثال ، يسمح pow () بتحديد الأنواع المعقدة كوسائط ، لكن math.pow () لا يمكنه تحويل الأنواع المعقدة إلى أنواع عائمة ، مما يؤدي إلى حدوث خطأ.
print(pow(1 + 1j, 2))
# 2j
# print(math.pow(1 + 1j, 2))
# TypeError: can't convert complex to float
تسمح وظيفة Python المضمنة pow () أيضًا بوسيطة ثالثة ، pow (x ، y ، z) ، والتي تُعيد باقي (الباقي) من z إلى y-power لـ x. إنه نفس الحساب مثل pow (x ، y)٪ z ، لكن pow (x ، y ، z) أكثر كفاءة.
print(pow(2, 4, 5))
# 1
الجذر التربيعي (الجذر):math.sqrt()
يمكن ضبط الجذر التربيعي (الجذر) على ** 0.5 باستخدام ** أو math.sqrt ().
print(2**0.5)
# 1.4142135623730951
print(math.sqrt(2))
# 1.4142135623730951
print(2**0.5 == math.sqrt(2))
# True
مثل math.pow () ، يحول math.sqrt () الوسيطات إلى أنواع الفاصلة العائمة للمعالجة ، لذا فإن تحديد نوع لا يمكن تحويله إلى نوع عائم سينتج عنه TypeError.
print((-3 + 4j)**0.5)
# (1.0000000000000002+2j)
# print(math.sqrt(-3 + 4j))
# TypeError: can't convert complex to float
أيضًا ، لا يمكن لـ math.sqrt () معالجة القيم السالبة ، مما يؤدي إلى حدوث خطأ في القيمة.
print((-1)**0.5)
# (6.123233995736766e-17+1j)
# print(math.sqrt(-1))
# ValueError: math domain error
لاحظ أنه عند التعامل مع الأرقام المركبة ، فإن المثال الذي يستخدم عامل التشغيل ** يظهر خطأ ، لكن وحدة cmath توفر قيمة أكثر دقة. يمكن أيضًا معالجة القيم السالبة.
- ذات صلة:Python ، أنواع معقدة للعمل مع الأعداد المركبة (القيم المطلقة ، الانحراف ، التحولات القطبية ، إلخ.)
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 كأساس) ، الذي يمثله اللوغاريتم أو 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