Python وظيفة abs(): أمثلة على القيمة المطلقة

⚡ ملخص ذكي

Python الدالة abs() هي دالة مدمجة تُعيد القيمة المطلقة لعدد، أي بُعده عن الصفر دون الإشارة. تقبل هذه الدالة الأعداد الصحيحة، والأعداد العشرية، والأعداد المركبة، وتُعيد القيمة المطلقة للأعداد المركبة.

  • 🔢 القيمة المطلقة: تقوم الدالة abs() بإزالة إشارة الرقم وإرجاع المسافة بينه وبين الصفر، لذا فإن abs(-25) و abs(25) تعطيان 25.
  • 🧮 أنواع الأرقام: قد يكون الوسيط الوحيد عددًا صحيحًا أو عددًا عشريًا أو عددًا مركبًا، ويتطابق نوع الإرجاع مع المدخلات.
  • 🔟 الحجم المركب: بالنسبة لعدد مركب مثل (3+10j)، فإن الدالة abs() تُرجع مقداره، وهو الجذر التربيعي للأجزاء الحقيقية والخيالية المربعة.
  • 📋 القوائم: تتعامل الدالة abs() مع رقم واحد في كل مرة، لذا فإن التعبير مثل [abs(n) for n in nums] يطبقها على كل عنصر.
  • 🇧🇷 abs() مقابل math.fabs(): تحتفظ الدالة abs() المدمجة بنوع الإدخال وتدعم الأعداد المركبة، بينما تقوم الدالة math.fabs() دائمًا بإرجاع عدد عشري وتحتاج إلى وحدة الرياضيات.
  • 🤖 مساعدة الذكاء الاصطناعي: تقوم أدوات الذكاء الاصطناعي مثل GitHub Copilot بإنشاء استدعاءات abs() و NumPy np.abs() لمهام مثل متوسط ​​الخطأ المطلق من خلال موجه قصير.

Python وظيفة القيمة المطلقة ().

Python القيمة المطلقة ()

Python القيمة المطلقة () هي وظيفة مدمجة متوفرة في المكتبة القياسية لـ Pythonتُعيد هذه الدالة القيمة المطلقة للعدد المُعطى. القيمة المطلقة هي قيمة العدد دون النظر إلى إشارته. يمكن أن يكون العدد عددًا صحيحًا، أو عددًا عشريًا، أو عددًا مركبًا. إذا كان العدد المُعطى مركبًا، فستُعيد الدالة مقداره.

بناء الجملة

يُوضح الشكل التالي صيغة الدالة abs():

abs(value)

المعلمات (القيمة)

قيمة الإدخال التي يجب إعطاؤها لـ abs() للحصول على القيمة المطلقة. يمكن أن تكون عددًا صحيحًا أو عددًا عشريًا أو عددًا مركبًا.

قيمة الإرجاع:

تقوم الدالة abs() بإرجاع القيمة المطلقة للرقم المعطى.

  • إذا كان المدخل عددًا صحيحًا، فستكون القيمة المُعادة أيضًا عددًا صحيحًا.
  • إذا كان المدخل عددًا عشريًا، فستكون القيمة المُعادة أيضًا عددًا عشريًا.
  • إذا كان الإدخال عبارة عن رقم مركب، فستكون قيمة الإرجاع هي مقدار الإدخال.

أمثلة

توضح الأمثلة التالية تطبيق دالة abs() على القيم الصحيحة والعشرية والمركبة.

Code مثال 1: عدد صحيح وعدد عشري

للحصول على القيمة المطلقة لعدد صحيح وعدد عشري، راجع هذا الكود:

# testing abs() for an integer and float
  int_num = -25
  float_num = -10.50
  print("The absolute value of an integer number is:", abs(int_num))
  print("The absolute value of a float number is:", abs(float_num))

الإخراج:

The absolute value of an integer number is: 25
The absolute value of a float number is: 10.5

مثال 2: العدد المركب

للحصول على القيمة المطلقة لعدد مركب، استخدم هذا الكود:

# testing abs() for a complex number
complex_num = (3+10j)
print("The magnitude of the complex number is:", abs(complex_num))

الإخراج:

The magnitude of the complex number is: 10.44030650891055

كيفية إيجاد القيمة المطلقة لقائمة في Python

تعمل الدالة abs() على رقم واحد، لذا فإن تمرير قائمة كاملة إليها يُسبب خطأً من نوع TypeError. لتطبيقها على كل عنصر في القائمة، استخدم بنية قائمة تستدعي الدالة abs() على كل عنصر.

numbers = [12, 30, -33, -22, 77, -100]
abs_numbers = [abs(num) for num in numbers]
print(abs_numbers)

الإخراج:

[12, 30, 33, 22, 77, 100]

يحافظ التعبير على الترتيب الأصلي ويعيد قائمة جديدة من القيم الموجبة. يمكنك تحقيق النتيجة نفسها باستخدام دالة map() المدمجة، على سبيل المثال. list(map(abs, numbers))، والذي يطبق الدالة abs() على كل عنصر دون كتابة حلقة تكرار صريحة.

  • استخدم فهم القوائم عندما تريد أيضًا تصفية القيم أو تحويلها.
  • استخدم الدالة map() لإجراء استدعاء قصير وسهل القراءة يقوم بتطبيق الدالة abs() مباشرةً.
  • بالنسبة لمجموعات البيانات الرقمية الكبيرة، يكون استخدام مصفوفة NumPy مع دالة np.abs() أسرع من... Python عقدة.

Python abs() مقابل math.fabs()

Python يُقدّم هذا البرنامج طريقتين للحصول على القيمة المطلقة: الدالة المدمجة abs() ودالة fabs() الخاصة بوحدة الرياضيات. تبدوان متشابهتين لكنهما تعملان بشكل مختلف.

import math

print(abs(-7))          # 7 (int is unchanged)
print(math.fabs(-7))    # 7.0 (float result)

الإخراج:

7
7.0

تتمثل الاختلافات الرئيسية بين الوظيفتين فيما يلي:

  • نوع الإرجاع: تحافظ الدالة abs() على نوع الإدخال وتعيد عددًا صحيحًا للأعداد الصحيحة، بينما تعيد الدالة math.fabs() دائمًا عددًا عشريًا.
  • استيراد: الدالة abs() متاحة دائمًا، بينما الدالة math.fabs() تتطلب import math.
  • الأعداد المركبة: تقوم الدالة abs() بإرجاع مقدار العدد المركب، بينما تقوم الدالة math.fabs() برفع خطأ TypeError عند إدخال عدد مركب.

التطبيقات العملية لـ Python وظيفة القيمة المطلقة ().

نظرًا لأنها تتجاهل معلومات الإشارة، فإن دالة abs() مفيدة عندما يكون حجم القيمة فقط هو المهم وليس اتجاهها. ومن الأمثلة الشائعة على ذلك إيجاد الفرق بين قراءتين:

temp_morning = 12
temp_night = -5
print("Temperature change:", abs(temp_morning - temp_night))

الإخراج:

Temperature change: 17

تشمل الاستخدامات اليومية للقيمة المطلقة ما يلي:

  • المسافات والاختلافات: قياس الفجوة بين نقطتين أو درجتي حرارة أو طابعين زمنيين بغض النظر عن القيمة الأكبر.
  • مقاييس الخطأ: حساب الخطأ المطلق بين القيمة المتوقعة والقيمة الفعلية.
  • فحوصات التسامح: اختبار ما إذا كانت النتيجة قريبة بما يكفي من الهدف، كما في abs(actual - expected) < 0.01.
  • الاستثمار والتمويل: الإبلاغ عن حجم الربح أو الخسارة دون الإشارة إليه.

مثل دالة التقريب ()، الدالة abs() هي دالة مدمجة يمكنك استدعاؤها مباشرة دون استيراد أي وحدة نمطية.

الأسئلة الشائعة

لا، الدالة abs() تُرجع قيمة جديدة ولا تُعدّل وسيطها أبدًا، لأن الأرقام في Python هي غير قابلة للتغيير. للاحتفاظ بالنتيجة، قم بتعيينها لمتغير، على سبيل المثال positive = abs(number). سيحتفظ المتغير الأصلي بقيمته الأصلية.

لا. تمرير سلسلة نصية يُسبب خطأً من نوع TypeError: bad operand type for abs(): 'str'، لأن الدالة abs() تقبل فقط الأعداد الصحيحة أو العشرية أو المركبة. لقياس سلسلة نصية، استخدم الدالة len() التي تُرجع عدد الأحرف التي تحتويها.

يمكنك حسابها يدويًا. بالنسبة لقيمة x، تُعيد الدالة max(x, -x) القيمة المطلقة، كما أن (x ** 2) ** 0.5 تعمل أيضًا مع الأعداد الحقيقية. مع ذلك، فإن الدالة abs() المدمجة أكثر وضوحًا وسرعة، وتتعامل أيضًا مع الأعداد المركبة.

لا. رمز الخط العمودي |x| هو رمز رياضي، وليس Python بناء الجملة؛ في Python الرمز | هو عامل OR الثنائي. للحصول على قيمة مطلقة، يجب استدعاء الدالة المدمجة abs()، على سبيل المثال abs(-8)، والتي تُرجع القيمة 8.

__abs__ هي الدالة الخفية التي تستدعيها الدالة abs() في الخلفية. عند كتابة abs(obj)، Python يُشغّل obj.__abs__(). يسمح تعريف __abs__ في فئتك الخاصة لـ abs() بالعمل على كائنات مخصصة، مثل متجه أو نوع عملة.

استخدم النسخ المتجهة بدلاً من الحلقات. تُعيد دالة np.abs(array) في NumPy مصفوفة جديدة مع تحويل جميع عناصرها إلى قيم موجبة، كما تُتيح سلسلة البيانات في Pandas دالة Series.abs(). تُطبّق كلتا الدالتين القيمة المطلقة على جميع العناصر دفعة واحدة، مما يُسرّع عملية حساب القيمة المطلقة لمجموعات البيانات الكبيرة.

تُشكّل الدالة abs() أساس مقاييس الخطأ والمسافة. يحسب متوسط ​​الخطأ المطلق (MAE) وخسارة L1 مجموع الفروق المطلقة بين التنبؤات والأهداف، بينما تقيس القيم المطلقة مقدار التدرج. بالنسبة للمصفوفات الكاملة، تُطبّق الدالة np.abs() في NumPy نفس العملية على كل عنصر بكفاءة.

يقترح GitHub Copilot استدعاءات abs()، وعبارات بناء القوائم مثل [abs(n) for n in nums]، وأسطر NumPy np.abs() مباشرةً من تعليق قصير. كما يمكنه إنشاء دالة لحساب متوسط ​​الخطأ المطلق، مما يتيح لك التحقق من المنطق بدلاً من كتابة التعليمات البرمجية المتكررة.

تلخيص هذه التدوينة بـ: