תודה לנגה אוסין על כתיבת התרגילים!
שבוע 4
מחברת 1 – לולאות for
יעקב השחור
אתם בבלאג’יו, משחקים במשחק הקלפים “יַעֲקֹב הַשָּׁחֹר”, לא בהגינות רבה. בכל סיבוב אתם שולפים קלף, ואתם מבינים שככל שהקלף שנשלף נמוך יותר – כך הסיכוי לשלוף קלף גבוה יותר עולה.
כתבו פונקציה אשר מקבלת כפרמטר את רשימת ערכי הקלפים שנשלפו, וקובעת אם כדאי להשתתף גם בסיבוב הבא או לא.
הפונקציה פועלת לפי החוקיות הבאה:
- רשימת הקלפים שנשלפו תהיה מיוצגת על־ידי ערכם המספרי בלבד. למשל, נסיך יהיה 11 ומלך יהיה 13. המשחק לא כולל ג’וקר.
- אם ערכו של הקלף הוא בין 2 ל־6 כולל, מד הסיכון ירד בנקודה אחת (כי עכשיו החבילה מכילה קלפים טובים יותר).
- אם ערכו של הקלף הוא בין 10 ל־13 כולל, או שערכו שווה 1 (“אס”), מד הסיכון יעלה בנקודה אחת.
- המספרים 7–9 הם ניטרליים, ולא מוסיפים למד סיכון או גורעים ממנו.
- אין חשש לבעיות קלט.
על הפונקציה להחזיר True
אם מד הסיכון קטן מאפס, או False
אם מד הסיכון גדול או שווה לאפס.
דוגמאות:
- עבור קלט של
[1]
, הפונקציה תחזיר False. - עבור קלט של
[1, 2, 3, 4, 5, 6, 7, 8, 9]
, הפונקציה תחזיר True. - עבור קלט של
[10, 2]
, הפונקציה תחזיר False.
אתגר: ייצגו את קלפי משפחת המלוכה כמחרוזות; קרי “J” עבור נסיך, “Q” עבור מלכה ו־“K” עבור מלך. ממשו זאת ללא שימוש ב־or, וללא הגדרת if או elif בעבור כל אחד מהקלפים בנפרד.
צפנת פענח
לפניכם רשימה של רשימות. כל תת־רשימה מכילה אותיות וספרות שלמות וחיוביות:
puzzle_input = [
['s', '1', 't', '9'], ['b', '2', '5'], ['u','3', '7', 'y'],
['c', '4', 'a', '6'], ['g', '5'], ['c', '6', '3', '5'], ['c', '7', '3'],
['x', '8', '3'], ['e', '9', '1'], ['s', '2', '2', '6'], ['m', '12', '9'],
['s', '8', '2', 'j'], ['!', '9', '1'], ['?', '9', '2']
]
כתבו פונקציה (תוכלו לקרוא לה foo, אם תרצו) אשר תרכיב מילה המסתתרת בתתי־הרשימות, לפי החוקיות הבאה: אם סכום המספרים בתת־רשימה מסוימת שווה ל־10, דִגמו ממנה את האות הראשונה. הפונקציה תחזיר את המילה שהתקבלה מצירוף כל האותיות בזו אחר זו.
מחברת 2 ו־3 – מילונים
טחינה
לפניכם גרסה עדכנית של ספר בישול מהולל (או לכל הפחות, הכותרות של מתכוניו).
cookbook = {
'pasta': {'origin': 'italy', 'prep_time': 25, 'calories': 400},
'curry': {'origin': 'india', 'prep_time': 60, 'calories': 250},
'chraime': {'origin': 'morocco', 'prep_time': 40, 'calories': 350}
}
לאחרונה גיליתם דבר נפלא: כל דבר הוא טעים יותר לאחר שמוסיפים לו טחינה. רק דקת הכנה נוספת, ופי 2 קלוריות!
עדכנו בהתאם את ספר הבישול: הוסיפו דקה אחת של הכנה עבור כל מאכל, והכפילו את הקלוריות.
מחברת 4 – פריקה
כוהף
ממשו פונקציה אשר מקבלת מספר זוגי ולא ידוע של פרמטרים. הפונקציה תחזיר רשימה אשר חצייה הראשון “הוחלף” עם חצייה השני.
לדוגמה:
- עבור הקלט 4, 3, 2, 1 – יתקבל [2, 1, 4, 3].
- עבור הקלט ‘banana’, ‘nana’ – יתקבל [‘nana’, ‘banana’].
- עבור הקלט 66, 55, 44, 33, 22, 11 – יתקבל [33, 22, 11, 66, 55, 44].
השתמשו ב־slicing וב־unpacking.
רטינה יומית
בעקבות המצב סיגלתם לעצמכם שגרת אימונים ביתית. כל הכבוד! לאחר כל אימון, רשמתם כמה ימים עברו מאז שהתחלתם, וכמה תרגילים עשיתם מכל סוג. הרישום נראה כך:
daily_routine = (
{'day': 1, 'capability': {'pushups': 8, 'squats': 20, 'pullups': 2}},
{'day': 2, 'capability': {'pushups': 13, 'squats': 39, 'pullups': 2}},
{'day': 3, 'capability': {'pushups': 21, 'squats': 51, 'pullups': 3}}
)
חשבו את סכום התרגילים שעשיתם בכל יום, ואת ממוצע התרגילים שביצעתם סה"כ (ללא תלות בסוג התרגילים).
השתמשו ב־kwargs.
(בחנו את עצמכם: הממוצע אמור להיות 53.)
מחברת #5 – בילטעינים
- ממשו מילון המציג את חמישה־עשר המספרים האי־זוגיים הראשונים החל מ־100, באופן הבא:
{1: 101, 2: 103, 3: 105, 4: 107, 5: 109, 6: 111, 7: 113, 8: 115, 9: 117, 10: 119, 11: 121, 12: 123, 13: 125, 14: 127, 15: 129}
מחברת 6 – סיכום
ארנב ומזון
הגשמתם חלום ואימצתם שלושה ארנבים: זיגמונד, פרידריך ואִרווין. מזל טוב!
הנחתם לצד הארנבונים כמות שווה של גזר, חסה ובצל ירוק, ולכל אורך היום הראשון צפיתם בהם אוכלים. בכל פעם שראיתם ארנב אוכל דבר מה רשמתם בקצרה את האות הראשונה של שמו ואת האות הראשונה של מה שאכל. בסופו של דבר קיבלתם מחברת מבולגנת למדי, אשר נראית כך:
תקציר
['I l', 'F l', 'I s', 'I l', 'I c', 'Z s', 'Z s', 'I l', 'I s', 'Z c', 'Z l', 'I l', 'I l', 'F c', 'Z c', 'Z c', 'F c', 'I s', 'F c', 'Z c']
על מנת להכיר את ארנביכם טוב יותר, ולדעת מהי כמות האוכל שכדאי לרכוש בפעם הבאה, ענו של השאלות הבאות:
- מיהו הארנב הכי זללן? כלומר, מיהו הארנב שצרך את כמות המזון הגדולה ביותר?
- מהו המזון החביב על הארנב הזללן ביותר?
- איזה מבין המזונות זכה להערכה הרבה ביותר משלושת הארנבים? כלומר, מאיזה סוג מזון נשאר הכי פחות בסוף היום?
הוראות והנחות קלט:
- השתמשו במילונים, unpacking ולולאות for.
- ניתן ליצור אך ורק מילונים ריקים.
- כל מחרוזת ברשימה מכילה שתי אותיות: הראשונה מייצגת את שם הארנב, והשנייה מייצגת את סוג המזון (l עבור חסה, c עבור גזר, ו־s עבור בצל ירוק).
- הניחו כי כל הכמויות שוות בגודלן. מספיק להוסיף 1 לערך הכמותי של כל מאכל בעבור כל פעם שהוא רשום.