اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

مرحبا,
كل من lambda , def يستخدم لتعريف تابع في بايثون ولكن يتم استخدام lambda لإنشاء توابع صغيرة وغير معقدة في حين تستخدم def في إنشاء توابع اكثر تعقيدا او بسيطة, كذلك التوابع المعرفة باستخدام lambda ليس لها اسم على عكس التوابع المعرفة باستخدام def

#تابع لجمع عددين باستخدام def
def add_numbers(a, b):
    return a + b
#تابع لجمع عددين باستخدام lambda
add_numbers = lambda a, b: a + b

تابع ايضا اجابات السؤال التالي لتتعرف على lambda اكثر

  • 0
نشر

الفرق الرئيسي بين Lambda و def في لغة البرمجة بايثون هو أن Lambda عبارة عن دالة مجهولة، بينما def عبارة عن دالة محددة,

دالة lambda ليس لها اسم ولا تعريف وتحتوي علي تعبير واحد فقط .

بينما دالة def دالة محددة لها اسم ولها تعريف وتحتوي علي اكثر من تعبير.

مثال علي دالة lambda :-

add_two = lambda x: x + 2

print(add_two(10))

#الناتج 12

مثال علي دالة def :-

def add_two(x):
    return x + 2

print(add_two(10))

#الناتج 12

 

  • 0
نشر

في بايثون، هناك نوعان من الدوال:

  • الدوال العادية، والتي يتم تعريفها باستخدام الكلمة الأساسية def.
  • الدوال المجهولة، والتي يتم تعريفها باستخدام الكلمة الأساسية lambda.

الفرق الأساسي بين Lambda و def هو أن Lambda هي دالة مجهولة، أي أنها لا تحتوي على اسم.

أي في lambda  نقوم ببناء الدالة كالتالي:

lambda arguments: expression	

و عدد العبارات هو عبارة واحدة.

أمثلة على الدوال المجهولة:

# دالة مجهولة تضيف 1 إلى الرقم المدخل
lambda x: x + 1

# دالة مجهولة تتحقق مما إذا كان الرقم الزوجي
lambda x: x % 2 == 0

# دالة مجهولة تطبع الرقم المدخل
lambda x: print(x)

بينما في def نقوم ببناء الدالة كالتالي:

def function_name(arguments): body

بينما هنا عدد العبارات هو أي عدد من العبارات في جسم الدالة.

أمثلة على الدوال العادية:

# دالة عادية تضيف 1 إلى الرقم المدخل
def add_one(x):
    return x + 1

# دالة عادية تتحقق مما إذا كان الرقم الزوجي
def is_even(x):
    return x % 2 == 0

# دالة عادية تطبع الرقم المدخل
def print_number(x):
    print(x)

متى تستخدم Lambda؟

  • عندما تحتاج إلى دالة بسيطة يتم استخدامها مرة واحدة فقط.
  • عندما تحتاج إلى دالة يتم استخدامها كتعبير في دالة أخرى، مثل map() أو filter().
  • عندما تحتاج إلى دالة يتم تمريرها كمعامل إلى دالة أخرى.

تعابير lambda في بايثون

 

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...