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

פונקציות מתקדמות
פונקציות עם ארגומנטים משתנים

מטרה

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

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

ישנן שתי (2) דרכים להוסיף מספר משתנה של ארגומנטים לפונקציה, תלוי במה שאתה מנסה להשיג. השיטה הראשונה היא יצירת רשימת ארגומנטים; במקום להכניס שמות ארגומנטים שונים, יש לשים כוכבית (*) לפני ארגומנט בודד. זה יוצר אוטומטית רשימה.

def custom_function(message,*arguments): player.speak(message) return(arguments) value = custom_function("lalala","one","two","three") # The message "lalala" is printed on screen # Value now returns the list ("one","two","three")

השיטה השנייה היא למקם את הארגומנטים בתוך מילון במקום ברשימה; זה מתבצע באותה דרך כמו בשיטה הקודמת, אך במקום לשים כוכבית אחת, שים שתיים. זה יוצר אוטומטית מילון במקום רשימה.

def custom_function(message,**arguments): player.speak(message) return(arguments) value = custom_function("lalala", one = 1, two = 2, three = 3) # The message "lalala" is printed on screen # Value now returns the dictionary: # {'one': 1, 'three': 3, 'two': 2}

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

def pack_singles(name,*items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items) def pack_multi(name,**items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items)

ישנם ארבעה (4) סוגי פריטים שונים בשטח: "jars", "eggs", "berries" ו-"fruit". אספו את כל הפריטים במחסן והלכו לעבר סימני ה-X שבנתיב המשלוחים. לכו לסימני ה-X הכהים והשתמשו בפונקציה pack_singles לאריזת "jars" ו-"eggs".

עבור "jars" ישנם ארבעה (4) סוגים שתאספו והם מוכנסים כארגומנטים, והם: "white", "purple", "red" ו-"brown". אלה ייארזו במכולה על ידי השטיח הירוק. הקוד נכתב כך: pack_singles("jars", "white", "purple", "red", "brown")

עבור "eggs" ישנם שלושה (3) סוגים שתאספו והם מוכנסים כארגומנטים, והם: "white", "green" ו-"blue". אלה ייארזו במכולה על ידי השטיח הכתום. אותה תבנית משמשת כמו בהגדרה הקודמת.

לאחר מכן, לכו לסימני ה-X הבהירים והשתמשו בפונקציה pack_multi לאריזת "berries" ו-"fruit". עבור "berries" ישנם שלושה (3) סוגים שתאספו והם מוכנסים כארגומנטים, והם: "red", "blue" ו-"purple". אלה ייארזו במכולה על ידי השטיח הכחול. עליכם להוסיף את הכמויות שאתם אוספים עבור כל אחד מהם, כך: pack_multi("berries", red = 3 , blue = 2 , purple = 4 )

עבור "fruit" ישנם ארבעה (4) סוגים שתאספו והם מוכנסים כארגומנטים, והם: "apple", "pear", "orange" ו-"peach". אלה ייארזו במכולה על ידי השטיח האדום. השתמשו באותה תבנית כמו בהזנה הקודמת, וודאו שכל הפריטים נאספים ומאוחסנים להשלמת השלב.

ספר קוד