הפקודות else & elif

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

else-elif meme

פקודת else#

נעשה שימוש בפקודת else רק בשילוב עם פקודת if כדי להגדיר בלוק של קוד שיבוצע כאשר התנאי המקורי מוערך לFalse. פקודת else היא אופציונלית ולא חובה להשתמש בה בכתיבת פקודת התנאי.

לדוגמא:

בדוגמה זו, בלוק הif בודק אם x גדול מ-3. מכיוון ש-x שווה ל-2, התנאי מוערך ל-False, והקוד בתוך בלוק else מבוצע. הפלט של התוכנית יהיה: x is less than or equal to 3.
בסוף גם מבוצעת השורה האחרונה בקוד ללא תלות בתנאי, וזה מכיוון שהיא לא נמצאת באף אחד מהבלוקים המוזחים.

פקודת elif#

הפקודה elif (קיצור של המילים else if) היא פקודה נוספת שמתייחסת לתנאים. כמו פקודת else גם הפקודה elif יכולה לבוא רק אחרי פקודת if אבל ההבדל המרכזי הוא שניתן לרשום הרבה פקודות elif אחרי פקודת if אחת.

בואו נראה דוגמאת שימוש שבה נדפיס תוצאה שונה עבור ימים שונים:

שימוש במספר פקודות if עוקבות לעומת elif#

if ו-elif משמשים שניהם להסתעפות מותנית, אך יש הבדל מרכזי בין שימוש במשפטי if עוקבים מרובים לבין שימוש במשפט if בודד עם מספר פסקאות elif.
בעת שימוש במספר פקודות if עוקבות, כל תנאי מוערך באופן עצמאי, ללא קשר אם התנאי הקודם הוערך כ-True או False. משמעות הדבר היא שניתן לבצע מספר בלוקים של קוד, אחד אחרי השני, אם מתקיימים מספר תנאים.
מצד שני, כשמשתמשים במשפט if יחיד עם מספר סעיפי elif, התנאים מוערכים לפי הסדר, אחד בכל פעם. אם תנאי מוערך כ-True, בלוק הקוד המתאים מבוצע, והתוכנית מדלגת על שאר סעיפי ה -elif ועל הבלוק else (אם יש כזה).

דוגמא#

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

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

תרגילים#

תרגיל 1- Weather app#

אתה מפתח אפליקציית מזג אוויר פשוטה.

קלוט שני קלטים מהמשתמש:

  1. הטמפרטורה הנוכחית (בצלזיוס).
  2. אחוז הלחות הנוכחי (0-100).

כתוב תוכנה ש:

  • בודקת אם הטמפרטורה היא מתחת ל-0. אם כן, הדפס: It's freezing outside אחרת, הדפס: It's not freezing outside
  • בודקת את רמת הלחות. אם הלחות היא 80% או יותר, הדפס: It's very humid outside, you might sweat a lot אחרת, הדפס: The humidity level is comfortable

בסיום התוכנה שלך, הדפס תמיד: Have a great day!

דוגמאות לפלט:

Enter the current temperature in Celsius: -5
Enter the current humidity percentage (0-100): 85
It's freezing outside.
It's very humid outside, you might sweat a lot.
Have a great day!
Enter the current temperature in Celsius: 10
Enter the current humidity percentage (0-100): 50
It's not freezing outside.
The humidity level is comfortable.
Have a great day!

תרגיל 2- BMI#

כתוב קוד שמחשב את מדד מסת גוף (BMI) על פי הקלטים של משקל וגובה.

BMI מוגדר בקטגוריות הבאות:

BMI RangeCategory
< 18.5Underweight
18.5 - 25Normal weight
25 - 30Overweight
=> 30Obese

הדפס כתוצאה את הקטגוריה הרלוונטית. הנה דוגמאת הדפסה:

Category: Underweight

כל קוד שמכיל elif & else ניתן לכתוב גם רק עם פקודות if, אבל נסו להשתמש בכל הפונקציות כאן בשביל לפשט את הקוד.