Coding for KidsCoding for Kids
שלבים יצירתייםאתגריםמדריך למורים
הצבע על תכונות
קורס פיתוח מתקדם בפייתון
פרק
>
רמה

פונקציות מתקדמות
פונקציות למבדה

מטרה

השתמש בפונקציות למבדה כדי לתעד כמה פריטים נצרכים כדי שניתן יהיה לאסוף אותם למשלוח בהמשך.

כמה מהפירות וה-berries בשדה כמעט מוכנים לקטיף, כך שניתן יהיה לאחסן, לשלול ולמכור אותם. יהיה רעיון טוב לתעד את הפריטים שכמעט מוכנים כדי שיהיה לך אומדן של כמה מוצרים מהשדה נארזים ונשלחים.

כדי לאופטימיזציה את הקוד שלך, תוכל להשתמש בפונקציות למבדה, זוהי דרך נוספת ליצור פונקציות מותאמות אישית, אך היא מהירה יותר כאשר הפונקציות שאתה יוצר הן פשוטות יותר.

# 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. מתוכם, יש שלושה (3) פירות: apples, pears ו-oranges; ושלושה (3) berries: red, blue ו-purple.

ראשית, הגדר את פונקציית הלמבדה שמודגמת למעלה בשם calculate, הדבר יאפשר לנו לקבל את מספר הפריטים החזוי לעונה על ידי חיבור שלושה פריטים וכפלתם ב-2. צור פונקציית למבדה נוספת בשם estimate על מנת להעריך את הפריטים שייאספו, כלשון-custom speak function. לבסוף, הגדר פונקציית למבדה בשם 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 בהיר ועשה את אותו הדבר עם ה-berries. הגדר משתנים עבור שלושת (3) ה-berries עם כמות השיחים שסופרים בשדה, ואז הגדר את פונקציית הלמבדה באותה צורה שעשית עם הפירות, כך: berry_number = calculate(red,blue,purple). השתמש בפונקציית הלמבדה estimate עם berry_number ו-"berries" כערכים.

ישנו קבוע בשם doc המכיל את אומדני החודש שעבר עבור מוצרים שאבדו. עבור למחסן, לך לסימון X זהוב והשתמש בפונקציה speak() עם הקבוע כדי לקרוא מסמך על השולחן וכך תוכל לקבוע את המספרים של החודש שעבר.

לאחר שהמספרים של החודש שעבר ידועים לך, עבור לסימון X כהה מעל השטיח הסגול, עמוד מול השולחן כדי לקבוע את הסכומים של החודש הזה. צור משתנה בשם season לחישוב סך הכל לעונה, השתמש ב-fruit_number ו-berry_number כערכים, והשתמש במספר שקבעת מתוך הקבוע doc כערך loss, כך: season = total(berry_number,fruit_number, number found in doc constant)

סיים את הרמה בכך שתשתמש בפונקציית הלמבדה estimate() עם המשתנה season כערך המספר ו-"products" כערך השם.

ספר קוד