Coding for KidsCoding for Kids
المستويات الإبداعيةالتحدياتدليل المعلم
صوت للميزات
دورة تطوير بايثون المتقدمة
الفصل
>
المستوى

الدوال المتقدمة
دوال لامبدا

الهدف

استخدم دوال اللامدا لتوثيق بعض المواد الاستهلاكية حتى يمكن جمعها للشحن لاحقاً.

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

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

# Normal Custom Function def calculate(x , y , z) : return( (x+y+z) *2 ) # Lambda Function calculate = lambda x,y,z : (x + y + z) * 2

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

هناك نوعان (2) من العناصر التي يمكن تصنيفها في الحقل: "fruits" و"berries". من بين هذين النوعين (2)، هناك ثلاث (3) فواكه: apples وpears وoranges؛ وهناك ثلاث (3) توات: red وblue وpurple.

ابدأ أولاً بإعداد دالة اللامدا الموضحة أعلاه المسماة calculate، حيث ستتيح لنا الحصول على عدد العناصر المتوقع للموسم عن طريق جمع ثلاثة عناصر وضرب الناتج باثنين (2). أنشئ دالة لامدا أخرى باسم estimate لتقدير العناصر التي سيتم جمعها، كدالة تحدث مخصصة. وأخيراً، أنشئ دالة لامدا باسم total التي تجمع قيمتين معاً وتطرح قيمة ثالثة تسمى loss.

# Calculate items calculate = lambda x,y,z : (x + y + z) * 2 # Estimate items estimate = lambda number , name : player.speak( "I estimate %d %s this season" % (number,name) ) # Total all items total = lambda num1, num2, loss : ( (num1 + num2) - loss)

قم بإنشاء متغيرات لكل من الفواكه الثلاثة (3)، وأضف عدد كل منها الموجود في الحقل. انتقل إلى علامة X الداكنة واستخدم دالة اللامدا calculate() مع المتغيرات الثلاثة للفواكه، وقم بتخزين القيمة في متغير مخصص باسم fruit_number، مثل هذا: fruit_number = calculate(orange,pear,apple). ثم استخدم دالة اللامدا estimate() مع fruit_number كرقم، و"fruits" كاسم، مثل هذا: estimate(fruit_number, "fruits" ).

بعد الانتهاء من الفاكهة، انتقل إلى علامة X الفاتحة وقم بنفس الشيء مع التوت. أنشئ متغيرات للتوت الثلاث (3) مع عدد الشجيرات التي تحتسبها في الحقل، ثم قم بإعداد دالة اللامدا بنفس الطريقة التي فعلت بها مع الفاكهة، مثل هذا: berry_number = calculate(red,blue,purple). استخدم دالة اللامدا estimate مع berry_number و"berries" كوسائط.

هناك ثابت باسم doc يحتوي على تقديرات الشهر الماضي للمنتجات المفقودة. انتقل إلى المخزن، وامشِ نحو علامة X الذهبية واستخدم دالة speak() مع الثابت لقراءة الوثيقة الموجودة على الطاولة لكي تحدد أرقام الشهر الماضي.

بمجرد معرفة أرقام الشهر الماضي، توجه إلى علامة X الداكنة فوق السجادة الأرجوانية، وواجه الطاولة لكي تحدد الإجماليات لهذا الشهر. أنشئ متغيراً باسم season لحساب إجماليات الموسم، واستخدم fruit_number و berry_number كأرقام، واستخدم الرقم الذي استخلصته من الثابت doc كوسيط الخسارة، مثل هذا: season = total(berry_number,fruit_number, number found in doc constant)

أكمل ذلك باستخدام دالة اللامدا estimate() حيث تستخدم المتغير season كرقم و"products" كاسم، لإكمال المستوى.

كتاب الكود