الثانوية العامة 2026الاستعلام عن النتيجةاعرف الكليات المناسبة لمجموعكتنسيق 2026

الحاسب الآلي · الصف الثالث الإعدادي · الترم الأول

الدوال ذات المعاملات في لغة Python

تعريف الدالة في Python باستخدام def، والمعاملات والوسائط، وإرجاع القيم بـ return، والقيم الافتراضية للمعاملات، ونطاق المتغيرات، مع أمثلة لدوال تعيد استخدام الكود.

آخر تحديث: · كيف نراجع المحتوى

أهداف التعلم

  • أن تعرّف دالة في Python وتستدعيها.
  • أن تميز بين المعامل (Parameter) والوسيط (Argument).
  • أن تعيد قيمة من الدالة باستخدام return.
  • أن تستخدم القيم الافتراضية للمعاملات.
  • أن تفرق بين المتغير المحلي والمتغير العام.

شرح الدرس

لماذا الدوال؟

  • إعادة الاستخدام: نكتب الكود مرة ونستخدمه مرات.
  • التنظيم: نقسم البرنامج الكبير إلى أجزاء صغيرة مفهومة (تطبيق لمهارة التحليل في التفكير الحاسوبي).
  • سهولة التعديل: إصلاح الخطأ في مكان واحد يصلحه في كل الاستدعاءات.

وقد استخدمت بالفعل دوالًا جاهزة مثل print() وlen() وinput().

تعريف دالة واستدعاؤها

def greet():
    print("Welcome to Python!")

greet()   # الاستدعاء
  • def كلمة محجوزة لتعريف الدالة، يليها اسمها وقوسان ونقطتان.
  • جسم الدالة يُكتب بإزاحة (مسافة بادئة) ثابتة.
  • الدالة لا تنفذ إلا عند استدعائها.

المعاملات والوسائط

def greet(name):          # name معامل
    print("Hello, " + name)

greet("Omar")             # "Omar" وسيط
greet("Salma")
  • المعامل: المتغير المكتوب في تعريف الدالة.
  • الوسيط: القيمة الفعلية التي نمررها عند الاستدعاء.

ويمكن أن تأخذ الدالة أكثر من معامل، وتُمرر الوسائط بالترتيب نفسه:

def rectangle_area(length, width):
    print(length * width)

rectangle_area(5, 3)   # 15

إرجاع قيمة بـ return

return تعيد نتيجة إلى المكان الذي استُدعيت منه الدالة، فيمكن تخزينها أو استخدامها في عملية أخرى، وتنهي تنفيذ الدالة فورًا:

def rectangle_area(length, width):
    return length * width

a1 = rectangle_area(5, 3)
a2 = rectangle_area(2, 4)
print(a1 + a2)   # 23

استدعاء rectangle_area(5, 3) يمرر الوسيطين 5 و3 إلى المعاملين length وwidth في تعريف الدالة، وتعيد return النتيجة إلى مكان الاستدعاء فتُخزَّن في a1

الفرق: print تعرض القيمة على الشاشة فقط، أما return فتعيدها للبرنامج.

القيم الافتراضية للمعاملات

def power(base, exponent=2):
    return base ** exponent

print(power(5))      # 25   (استُخدمت القيمة الافتراضية 2)
print(power(2, 3))   # 8

المعاملات ذات القيم الافتراضية تُكتب بعد المعاملات التي بلا قيم افتراضية.

نطاق المتغيرات

المتغير الذي يُنشأ داخل الدالة محلي، لا يُعرف خارجها:

def calc():
    result = 10
    return result

calc()
print(result)   # خطأ NameError: المتغير محلي داخل الدالة

أما المتغير المعرف خارج كل الدوال فهو عام يمكن قراءته داخلها.

أمثلة وتطبيقات

مثال: دالة تعيد تقدير الطالب حسب درجته:

def get_grade(score):
    if score >= 85:
        return "Excellent"
    elif score >= 65:
        return "Good"
    elif score >= 50:
        return "Pass"
    else:
        return "Fail"

for s in [92, 70, 45]:
    print(s, get_grade(s))

المخرجات: 92 Excellent ثم 70 Good ثم 45 Fail.

مثال: دالة تستقبل قائمة وتعيد متوسطها:

def average(numbers):
    return sum(numbers) / len(numbers)

print(average([10, 20, 30]))   # 20.0

ملاحظات مهمة

  • عدد الوسائط يجب أن يطابق عدد المعاملات التي بلا قيم افتراضية، وإلا ظهر الخطأ TypeError.
  • الدالة التي لا تحتوي return تعيد القيمة None.
  • اختر أسماء واضحة للدوال تصف ما تفعله، مثل calculate_total.

تطبيق إضافي:

def rectangle_area(length, width):
    return length * width

area = rectangle_area(6, 4)
print(area)  # 24

المعاملان length وwidth يظهران في تعريف الدالة، أما العددان 6 و4 فهما وسيطان أُرسلا عند الاستدعاء. أعادت الدالة القيمة 24 فخُزنت في المتغير area.

خطأ شائع: طباعة الناتج داخل الدالة بدل إرجاعه دائمًا. تستخدم return عندما نحتاج القيمة في حساب آخر؛ أما print فتعرضها فقط ولا تجعلها ناتج الدالة.

المفاهيم الأساسية

  • def name(parameters): لتعريف الدالة، وتُنفذ عند الاستدعاء فقط.
  • المعامل في التعريف، والوسيط في الاستدعاء.
  • return تعيد قيمة وتنهي الدالة.
  • القيم الافتراضية تجعل بعض المعاملات اختيارية.
  • المتغيرات داخل الدالة محلية.

ملخص الدرس

الدالة كتلة كود مسماة نعرفها بـ def ونستدعيها باسمها، وتجعل البرنامج منظمًا وقابلًا لإعادة الاستخدام. نمرر إليها البيانات عبر المعاملات، ونستقبل نتيجتها بـ return، ويمكن إعطاء بعض المعاملات قيمًا افتراضية. والمتغيرات المنشأة داخل الدالة لا تُعرف خارجها.

أسئلة للتدريب

  1. اكتب دالة square(n) تعيد مربع العدد.
  2. ما الفرق بين المعامل والوسيط؟ وضح بمثال.
  3. اكتب دالة is_even(n) تعيد True إذا كان العدد زوجيًا وFalse إذا كان فرديًا.
  4. ما ناتج power(3) إذا عُرفت الدالة بالصورة def power(b, e=3): return b ** e؟
  5. اكتب دالة تستقبل اسمًا وعمرًا وتعيد جملة تعريفية بهما.
حلّ أسئلة هذا الدرساختبر فهمك بأسئلة اختيار من متعدد وأسئلة مقالية مع نموذج إجابة، أو خض اختبارًا تفاعليًا سريعًا
أبلغ عن خطأ في هذا الدرس