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

רשימות מתקדמות
מיון קבוצות

מטרה

סידרו ובשלו ארוחות בעזרת קבוצות למיון ולהרכבת המרכיבים.

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

ישנן שלוש (3) קבועות רשימות, שתיים (2) מהן הן בשרים, בשם: pack1 ו-pack2, ואחת (1) היא חומרים לבישול, בשם ingredients. לכו לסימון X הכהה על השטיח הכתום ופנו למקרר, השתמשו בפונקציה collect() כדי לאסוף את pack1 ו-pack2 מהמקרר, כך: player.collect(pack1).

כאשר הבשרים נאספו, לכו לסימון X הבהיר ופנו ללוח החיתוך. כאן נבדוק את תוכן החבילות באמצעות הפונקציה speak() עם שתי קבועות הרשימות שאספתם. משם נאחד את הפריטים על ידי שימוש בקבוצות כמו ברמה הקודמת. צרו שתי קבוצות בשם set1 ו-set2, ובשימוש בפונקציה set() הקצו להם את pack1 ו-pack2, למשל: set1 = set(pack1).

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

השיטה הראשונה להשגת זאת נקראת systemic_difference, והיא תאפשר לנו להפריד את הפריטים שאינם משותפים בין כל קבוצה. צרו קבוצה בשם unique והשתמשו בשתי הקבוצות להשוואה וזיהוי הפריטים הייחודיים באמצעות systemic_difference, כך: unique = set1.symmetric_difference(set2). השתמשו בפונקציה speak() עם הקבוצה שיצרתם כדי לאשר את תוכנה.

המשיכו במיון על ידי יצירת קבוצה בשם shared והשתמשו בשיטת intersection שנלמדה ברמה הקודמת כדי לזהות את הפריטים הנמצאים בשתי הקבוצות. השוו באמצעות שתי הקבוצות כדי לזהות את הפריטים, כך: shared = set1.intersection(set2). השתמשו בפונקציה speak() עם הקבוצה שיצרתם כדי לאשר את תוכנה.

ולבסוף, השתמשו בשיטה שנקראת difference, שתאפשר לנו להפריד את הפריטים שנמצאים רק באחת מהקבוצות ולא באחרת. צרו שתי (2) קבוצות בשם meat1 ו-meat2, והשוו באמצעות שתי הקבוצות המקוריות כדי לזהות את הפריטים באמצעות difference, כך: meat1 = set1.difference(set2) ו-meat2 = set2.difference(set1). השתמשו בפונקציה speak() עם שתי קבוצות הבשר שיצרתם כדי לאשר את תוכן כל אחת מהן.

בעזרת זאת, הבשרים מוינו. לכו לסימון X הכהה מעל השטיח הכחול, פנו למקרר והשתמשו בפונקציה place() כדי לאחסן את הקבוצה shared שיצרתם, כך: player.place(shared). בדרך זו תסגרו את המרכיבים שאינכם מתכננים לבשל.

לכו לסימון X הזהוב, פנו לארון והשתמשו בפונקציה collect() כדי להשיג את קבועת הרשימה האחרונה בשם ingredients והשתמשו בפונקציה speak() כדי לאשר את תוכנה. העבירו את האלמנטים מ-ingredients לקבוצה חדשה בשם set3. כעת, כיוון שיש בידכם את כל המרכיבים, צרו שתי קבוצות בשם meal1 ו-meal2 באמצעות שיטת union המאחדת את כל האלמנטים הדרושים לבישול.

לmeal1, שלבו את set3 ו-meat1 כך: meal1 = set3.union(meat1). לכו לסימון X הכהה על השטיח הסגול, ובשימוש בקבוצת meal1 השתמשו בפונקציה speak() כדי לאשר את תוכנה ובפונקציה place() כדי לבשל את המנה בסיר.

עבור meal2, חזרו על אותו התהליך, אך במקום זאת השתמשו בשיטת union עם set3 ו-meat2. לכו לסימון X הכהה על השטיח הצהוב, פנו לסיר, והשתמשו בפונקציות speak() ו-place() עם meal2 כדי להשלים את הרמה.

ספר קוד