תנאים של פייתון באמצעות if, elif ו-else

מחבר:
בתאריך:

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

מדריך תנאים של פייתון

כך נראה התחביר של תנאי פשוט:

if [condition]:
    do something

הקוד מורכב משני חלקים: תנאי ובלוק של קוד לביצוע במידה והתנאי מתקיים.

  • את השורה של התנאי נסיים בנקודותיים.
  • את הבלוק לביצוע, נכתוב בתוך שורה מוזחת (מוזזת ימינה).

בהזחה - הזזה פנימה של הבלוק - נקפיד על הכללים הבאים:

  • מומלץ להזיח באמצעות 4 רווחים אבל גם 2 רווחים או לחיצה על מקש ה-Tab יכולים לעבוד.
  • כל שיטה שנבחר לביצוע הזחה תעבוד כל עוד מקפידים להיות עקביים אחרת תגרם שגיאה.

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

x = 2
if x > 1:
 print('Condition is True')
Condition is True

מצד שני, אם ערך המשתנה x יהיה קטן או שווה ל-1, אז הקוד בבלוק לא ירוץ.

בדוגמה הבאה, ערכו של x הוא 1, והתנאי בודק האם הערך גדול מ-1:

x = 1
if x > 1:
 print('Condition is True')
 

התנאי לא התקיים, ולפיכך לא הודפס שום דבר.

 

else – המשלים של if

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

בדוגמה הבאה, אם הערך של x גדול מ-1 אז תודפס הודעה מסוג אחד, אחרת תודפס הודעה שנייה:

x = 1
if x > 1:
 print('Condition is True')
else:
 print('Condition is False')

והתוצאה:

Condition is False

התנאי לא התקיים, ולכן פייתון הריץ את הקוד החלופי הכתוב בבלוק מתחת ל-else.

 

סוגי השוואות בפייתון

עד עכשיו ראינו השוואה של "גדול מ" באמצעות הסימן < .

כדי להשוות בין שני משתנים ולבדוק האם הם שווים, נשתמש בשווה פעמיים:

==

לדוגמה, הקוד הבא בודק האם ערך המשתנה x שווה ל-42:

x = 42
if x == 42:
 print('Bingo!!')

והתוצאה:

Bingo!!

כדי לבדוק האם שני משתנים אינם שווים נשתמש בסימן קריאה ושווה:

=!

הקוד הבא בודק האם ערכו של המשתנה my_lang שונה מ-"python":

my_lang = "Python"
if my_lang != "python":
 print("It's time to learn!")
else:
 print("Great choice!!")
It's time to learn!

התנאי בודק האם ערך המשתנה שונה מ-python (מתחיל ב-p קטנה) אבל ערך המשתנה מתחיל ב-P גדולה. לכן, התנאי לא מתקיים.

כדי שהתנאי יתקיים נתחיל את המשתנה באות קטנה:

my_lang = 'python'
if my_lang != 'python':
 print("It's time to learn!")
else:
 print("Great!!")

מזה אנחנו יכולים ללמוד שני דברים:

  1. שאפשר להשוות מחרוזות של טקסט ולא רק מספרים.
  2. שפייתון מבחין בין אותיות גדולות לקטנות.

 

קטן שווה וגדול שווה

עוד השוואה שחייבים להכיר מאפשרת לנו לשאול האם ערך הוא קטן או שווה מערך אחר:

x = 6
y = 7

if x <= y:
  print('x is not bigger than y')
else:
  print('x is bigger than y')
x is not bigger than y
  • המשלים של קטן שווה (=>) הוא גדול מ (<).

בדומה, אנחנו יכולים לבדוק האם ערך הוא גדול או שווה לערך אחר:

if x >= y:
  print('x is not smaller than y')
else:
  print('x is smaller than y')
x is smaller than y
  • המשלים של גדול שווה (=<) הוא קטן מ (>).

 

מה עושים כשיש יותר משתי אפשרויות?

מה שלמדנו עד כה הוא מצב שבו יש שתי אפשרויות בלבד: אמת או שקר. True או False. התנאי מתקיים או שאינו מתקיים אבל ייתכנו מקרים שבהם יהיו לנו יותר משתי אפשרויות. בשביל זה המציאו את elif.

כך נראה המקרה הכללי:

if [condition_a]:
    do something
elif [condition_b]:
    do something else
else:
    do the default
  • את התנאי הראשון ניצור באמצעות if .
  • את התנאים הנוספים נוסיף באמצעות elif .
  • וליצירת התנאי האחרון, המהווה ברירת מחדל, נשתמש ב-else .

בדוגמה הבאה, נבדוק האם ערכו של המשתנה model הוא "BMW", "Audi" או "Mercedes". במידה ולא תמצא התאמה, נפעיל את הבלוק ברירת המחדל שנמצא מתחת ל- else:

model = 'sussita'
 
if model == 'BMW':
 print('Yay! BMW')
elif model == 'Audi':
 print('What a great car')
elif model == 'Mercedes':
 print('The best or nothing')
else:
 print('What\'s that?!')

התוצאה היא:

What's that?!

 

מספר תנאים באותו הבלוק

עד כה ראינו מצבים של תנאי אחד בכל בלוק אבל לעיתים נצטרך יותר מתנאי אחד. לדוגמה, לבחור מודל של מכונית ע"פ שם וגם ארץ ייצור או לבחור ע"פ ארץ ייצור או שם. לשם כך יש לנו 2 אופרטורים:

  • and - מבטא יחס של גם (ארץ ייצור וגם שם).
  • or - מבטא יחס של או (ארץ ייצור או שם).

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

model = 'sussita'
country = 'Israel'

if model == 'sussita' and country == 'Israel':
  print('That\'s my car!')
else:
  print('Not my car!')
That's my car!

ואם אני רוצה מכונית שמיוצרת בישראל או בגרמניה:

model = 'BMW'
country = 'Germany'

if country == 'Israel' or country == 'Germany':
  print(model + ' is my car!')
else:
  print('Not my car!')
BMW is my car!

אנחנו לא מוגבלים לאופרטור אחד בכל בלוק. ייתכנו שניים או יותר.

לדוגמה, מרצדס המיוצרת בישראל אחרי 1970:

model = 'Sussita'
country = 'Israel'
year = 1982

if model == 'Sussita' and country == 'Israel' and year > 1970:
  print('What a car!')
What a car!

כשאנחנו משלבים את שני האופרטורים or ו-and אז נצטרך להשתמש בסוגריים כדי לקבל את התוצאה שאליה אנחנו מתכוונים.

לדוגמה, מכונית מסוג מרצדס המיוצרת בגרמניה או בישראל:

model = 'BMW'
country = 'Germany'

if model == 'Mercedes' and (country == 'Israel' or country == 'Germany'):
  print(model + ' is my car!')
else:
  print('Not my car!')
Not my car!

השימוש בסוגריים הוא הכרחי כי הוא מאפשר לפייתון להבחין בין שני מצבים שונים לחלוטין:

א. תנאי שבודק האם המודל הוא מרצדס וגם המדינה היא ישראל או גרמניה.

if model == 'Mercedes' and (country == 'Israel' or country == 'Germany'):
  print(model + ' is my car!')

 ב. תנאי שבודק האם המדינה היא גרמניה או שהמודל שמו מרצדס והמדינה היא ישראל:

if (model == 'Mercedes' and country == 'Israel') or country == 'Germany':
  print(model + ' is my car!')
BMW is my car!

לכל המדריכים בסדרה ללימוד פייתון

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

הוסף תגובה חדשה

 

= 9 + 3

תמונת המגיב

מנדי בתאריך: 09.07.2020

הסבר פצצצצההההה
תודה רבה!!!!!