שאלה לגבי התרגיל חתכת עוגה במחברת 2

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

3 לייקים

לא הבנתי את השאלה… 20…

הפונקציה אמורה לקבל 3 פרמטרים:
הראשון הוא מילון של רכיבים עם מחיר ל-100 גרם
השני אופציונלי - רכיבים שלא צריך
השלישי - כל שאר הרכיבים עם הכמויות שצריך.

אני שואל למה צריך את האיבר השני?
אפשר ישר “לגשת” לאיבר השלישי ולפיו לבדוק את המחיר הסופי

לפי איך שהבנתי , גם אם אחד האופציונליים נמצא ברכיבים בסוף - נתעלם ממנו.
למשל כאן נתעלם מeggs :

get_recipe_price({‘chocolate’: 18, ‘milk’: 8,“eggs”:20}, optionals=[‘milk’,“eggs”],eggs=200, chocolate=300)

לייק 1

הבנתי. תודה רבה! 2020

לייק 1

מצטרף לשאלה.
ברור לי מה הפונקציה צריכה לעשות ואיך היא צריכה לעבוד, אבל למה בכלל להעביר לה משהו ב-optionals? אם אני לא רוצה לקנות חלב או ביצים אני פשוט לא אעביר אותם כארגומנט עם כמות.
בדוגמה של יוסף למעלה למשל, אפשר פשוט לא לרשום ‘eggs’ כארגומנט וזהו, בנוסף העובדה שיש ‘milk’ בתוך optionals לא משפיעה על הריצה של הפונקציה, ככה זה גם בדוגמה שבמחברת.
אני מבין את מטרת התרגיל ולמה הסעיף הזה קיים, אבל בכל זאת מנסה למצוא בו הגיון מבחינת הפונקציה ולא מצליח.

בהערה נפרדת, בתרגיל כתוב “עבור כל רכיב שהועבר ב־ingredients” אבל ingredients לא הוזכר לפני כן. הבודק האוטומטי לא היה מעביר את זה בשקט. :stuck_out_tongue_closed_eyes:

לייק 1

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

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

  1. כי יש לך כבר
  2. כי אתה אלרגי
  3. כי בא לך להחליף את זה באפרסקים
  4. וכו …

אז אתה רוצה לדעת כמה יעלו לך המצרכים בלי התותים :slight_smile:

4 לייקים