תחי ישראל - אין לנו ארץ אחרת

תחי ישראל -אין לנו ארץ אחרת

תנאים של פייתון באמצעות 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 כוכבים

 

 

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

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

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

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

השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.

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

 

 

ענה על השאלה הפשוטה הבאה כתנאי להוספת תגובה:

איך אומרים בעברית אינטרנט?

 

תמונת המגיב

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

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

תמונת המגיב

מתלמד בתאריך: 04.01.2021

ההסבר מאד יפה וברור!
רק את הפסקה האחרונה (ב) לא הבנתי.

תמונת המגיב

יוסי בן הרוש בתאריך: 04.01.2021

הי מתלמד,
תנסה עם ובלי סוגריים ותראה מה אתה מקבל

תמונת המגיב

נתי בתאריך: 11.04.2021

האם יש הגבלה לכמות end באותו בלוק כאשר יש לי מספר תנאים לבדוק? נניח 5 תנאים

תמונת המגיב

שי חי שמואל בתאריך: 18.10.2021

אני חכם יאוו

תמונת המגיב

רביד בתאריך: 18.11.2021

הסבר פשוט רהוט ומעולה !! תודה רבה

תמונת המגיב

אלי בתאריך: 22.11.2021

הסבר ממש מועיל ! קל להבנה תודה רבה !

תמונת המגיב

אביאל בתאריך: 27.01.2022

יופי של הסבר תודה !

תמונת המגיב

יעל בתאריך: 17.03.2024

הסברים מצויינים

תמונת המגיב

ליאה בתאריך: 25.08.2024

תודה רבה על ההסבר הברור והדוגמאות , ממש עזרת לי

תמונת המגיב

מאור בתאריך: 03.10.2024

תודה רבה עזרת לי מאודד