זהו בעצם ההמשך הישיר של השיעור הקודם- פקודת if.
בשיעור הזה נראה שניתן לכתוב פקודה יותר מורכבת שתלויה בתנאים בוליאנים בעזרת מילות המפתח החדשות else
, elif
.
פקודת 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#
אתה מפתח אפליקציית מזג אוויר פשוטה.
קלוט שני קלטים מהמשתמש:
- הטמפרטורה הנוכחית (בצלזיוס).
- אחוז הלחות הנוכחי (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 Range | Category |
---|---|
< 18.5 | Underweight |
18.5 - 25 | Normal weight |
25 - 30 | Overweight |
=> 30 | Obese |
הדפס כתוצאה את הקטגוריה הרלוונטית. הנה דוגמאת הדפסה:
Category: Underweight
כל קוד שמכיל elif & else ניתן לכתוב גם רק עם פקודות if, אבל נסו להשתמש בכל הפונקציות כאן בשביל לפשט את הקוד.