-->

آخر الأخبار

جاري التحميل ...

مشاركة مميزة

كورس بايثون من البداية للاحتراف مع تمارين كثيرة وبرامج كثيرة وشرح تفصيلي.

 كورس بايثون من البداية للاحتراف مع تمارين كثيرة وبرامج كثيرة وشرح تفصيلي. خطة بايثون المكثّفة: من الأساس للذكاء الاصطناعي في 20 أسبوعاً   ا...

شرح **الدوال (Functions)** في لغة بايثون جزء 3

-1-
-2-







5. مستوى الخبراء (Expert Level): دوال لامدا (Lambda Functions) والـ Scope
أ) دوال لامدا (Lambda / Anonymous Functions)
هي دوال قصيرة جداً بدون اسم تُكتب في سطر واحد، وغالباً تُستخدم لمرة واحدة مع دوال مثل map و filter و sorted.

الصيغة: lambda arguments: expression

Python
# دالة عادية لتربيع الرقم
def square(x):
    return x ** 2

# نفس الدالة بطريقة لامدا في سطر واحد:
square_lambda = lambda x: x ** 2

print(square_lambda(5))  # الناتج: 25
مثال عملي مع الترتيب:

Python
students = [("أحمد", 85), ("سارة", 95), ("علي", 78)]
# ترتيب الطلاب تصاعدياً بناءً على الدرجات (العنصر الثاني في الـ Tuple)
sorted_students = sorted(students, key=lambda x: x[1])
print(sorted_students)
ب) نطاق المتغيرات (Variable Scope)
من أهم مفاهيم الاحتراف هو معرفة أين يعيش المتغير وأين يتم قراءته:

Local Variable (متغير محلي): يُعرف داخل الدالة ولا يمكن رؤيته خارجها.

Global Variable (متغير عام): يُعرف خارج كل الدوال ويمكن الوصول إليه من أي مكان.

Python
x = "متغير عام (Global)"  # عام

def test_scope():
    y = "متغير محلي (Local)"  # محلي
    print(x)  ينجح في قراءة المتغير العام
    print(y)  ينجح

test_scope()
# print(y) -> خطأ! لأن y محلي ولا يراه الكود خارج الدالة.
ج) دالة مولدة للقيم (Generators داخل الدوال باستخدام yield)
بدلاً من إرجاع قائمة ضخمة باستخدام return وتستهلك ذاكرة الجهاز، تستخدم yield لإنتاج قيمة تلو الأخرى عند الطلب.

Python
def count_up_to(max):
    count = 1
    while count <= max:
        yield count  # تعيد القيمة وتتوقف مؤقتاً
        count += 1

# استخدام المولد
for num in count_up_to(3):
    print(num)  # يطبع: 1 ثم 2 ثم 3 بشكل تدريجي وفّر الذاكرة
ملخص سريع لمنهجية كتابة الدوال باحتراف:
سمِّ الدالة اسماً دالاً على فعل (مثلاً: calculate_tax, get_user_data وليس func1).

اجعل الدالة تؤدي مهمة واحدة فقط (Single Responsibility Principle).

استخدم الـ Docstring (شرح بسيط تحت الدالة) لتوثيق ما تفعله الدالة:

Python
def multiply(a, b):
    """هذه الدالة تضرب رقمين ببعضهما وتعيد الناتج."""
    return a * b
-3-
-4-

التعليقات



إذا أعجبك محتوى مدونتنا نتمنى البقاء على تواصل دائم ، فقط قم بإدخال بريدك الإلكتروني للإشتراك في بريد المدونة السريع ليصلك جديد المدونة أولاً بأول ، كما يمكنك إرسال رساله بالضغط على الزر المجاور ...

إتصل بنا

جميع الحقوق محفوظة

مدونة كورس 7

2021