החומר במחברת זו הוא מעט תיאורטי. אין סיבה להיות עצובים, במחברות הבאה נעשה בו שימוש רחב.
ודאו שאתם מבינים היטב את החומר במחברת זו כדי לבסס את הידע שלכם כראוי.
ווהו! רק פתחנו מחברת וכבר זרקו עלינו מילים מפוצצות. מה בוליאניים עכשיו?
בכל הנוגע לתחום שלנו, זה הרבה יותר פשוט ממה שזה נשמע.
בתכנות, ביטוי נחשב ביטוי בוליאני אם תוצאתו היא אמת או שקר.
לא הספקתם להתאושש מהבוליאניים האלו וכבר אני מוריד עליכם עוד מכה. קורס חסר רחמים.
אבל גם הפעם זה ממש פשוט: אופרטור הוא בסך הכול סימן שמייצג פעולה כלשהי, כמו שווה או ועוד. אתם אולי אפילו זוכרים את אופרטור ההשמה מהשיעור על מה הם משתנים.
אז מהם אופרטורי השוואה? ובכן, אלו סימנים שעוזרים לנו לבצע השוואות בין איברים שונים, שלהם אנחנו קוראים אופרנדים.
בואו נכיר את אופרטור ההשוואה הראשון שלנו: ==
.
הריצו את הביטויים הבוליאניים הבאים, ונסו לנחש מה הוא עושה.
In [ ]:
5 == 5
In [ ]:
5 == 4
In [ ]:
1 == 1.0
In [ ]:
5 == '5'
In [ ]:
2 + 1 == 3
In [ ]:
2 ** 3 - 1 == 8 - 1
In [ ]:
'a' == 'a'
In [ ]:
'Hello Buya' == "Hello Buya"
In [ ]:
'hello buya' == 'Hello Buya'
הדוגמה הזו מלמדת אותנו 3 דברים מגניבים:
True
או False
.==
והוא משווה בין 2 ערכים בפייתון.float
עם int
), ויש כאלו שלא (float
עם str
או int
עם str
).בתרגיל שלמעלה קיבלנו כתוצאה ערך חדש, שמעולם לא שמענו עליו. בואו נבדוק מאיזה סוג הוא!
In [ ]:
type(True)
In [ ]:
type(False)
ווהו! אז אם התרגלנו עד עכשיו שיש 3 טיפוסים שאנחנו מכירים: str
, int
ו־float
, הכירו את הבחור החדש בשכונה!
bool
הוא טיפוס חביב ופשוט שמייצג רק 2 ערכים אפשריים: True
או False
.
כל אופרטור השוואה שנחיל על שני ערכים, יחזיר תמיד ערך מסוג bool
(חוץ מכשפייתון תתריע על שגיאה).
טעות נפוצה בעת שימוש בערכים בוליאניים היא לא להתחשב ברגישות לאותיות גדולות/קטנות.
לדוגמה: True
יהיה תקין בעוד ש־true
יקפיץ שגיאה.
תוצאה לדוגמה | דוגמה | משמעות בעברית | אופרטור השוואה |
---|---|---|---|
True | 4 == 4 | האם צד שמאל שווה לצד ימין | == |
False | 4 != 4 | האם צד שמאל שונה מצד ימין | != |
True | 5 > 4 | האם צד שמאל גדול יותר מצד ימין | > |
False | 4 > 5 | האם צד שמאל קטן יותר מצד ימין | < |
False | 2 >= 4 | האם צד שמאל גדול או שווה לצד ימין | >= |
True | 4 <= 5 | האם צד שמאל קטן או שווה לצד ימין | <= |
True | 'hell' in 'hello' | האם צד שמאל נמצא ברצף בצד ימין | in |
True
) או שקר (False
).
רשמו בצד את התוצאות של כל אחת מהשורות הבאות.
רק לאחר מכן הריצו ובדקו האם צדקתם בתשובתכם.
בחלק מהסעיפים (בייחוד באלו שקשורים ב־in
) דרושה קצת אינטואיציה.
In [ ]:
5 == 3
In [ ]:
1 != 1
In [ ]:
5 > 3
In [ ]:
5 < 3
In [ ]:
'hello' == 'Hello'
In [ ]:
'MARIO' == 'MARIO '
In [ ]:
1.5 == 1
In [ ]:
1.0 == 1
In [ ]:
1 == 1.0
In [ ]:
5 != 7 - 2
In [ ]:
5 >= 5.0
In [ ]:
'5' > '24' # ראו אזהרה למטה
In [ ]:
'Hell' in 'Hello'
In [ ]:
'hell' in 'Hello'
In [ ]:
'tom' in 'to master'
In [ ]:
'2' in '20'
In [ ]:
2 in '20' # פייתון תתריע על שגיאה. למה?
טעות נפוצה בקרב מתחילים היא לשכוח שבהשוואה בין נתונים מספריים יש להמיר קלט מהמשתמש ל־int
, ורק אז לבצע השוואה.
פייתון לא מתריעה על טעות זו, אבל השוואה שכזו לא תיתן לכם את התוצאה שאליה התכוונתם (ראו דוגמה למעלה).
אנחנו הולכים להגדיר פה כמה משתנים מעניינים:
In [ ]:
price_of_pizza = 100 # NIS
slices_in_pizza = 8
favorite_topping = 'pineapple' # Don't judge!
delivery_time = 30 # In minutes
הריצו את התא שנמצא למעלה: סמנו אותו ולחצו CTRL + ENTER.
מה יהיו התוצאות של הביטויים הבאים? כתבו אותן בצד, ואז הריצו ובדקו האם תשובתכם הייתה נכונה.
In [ ]:
price_of_pizza >= 50
In [ ]:
slices_in_pizza == 6
In [ ]:
favorite_topping != 'olives'
In [ ]:
price_of_pizza / slices_in_pizza > 10
In [ ]:
delivery_time <= 30 # I'm hungry!
In [ ]:
favorite_topping = 'olives' # יש פה מלכודת. נסו להבין מה קורה פה.
In [ ]:
favorite_topping == 'pineapple' # מה זה יחזיר אחרי הרצת השורה הקודמת? מה זה יחזיר אילו לא הייתה רצה?
טעות נפוצה היא להתבלבל בין הסימנים =
ו־==
.
זכרו: סימן שיוויון אחד (=
) מבצע פעולה של הכנסת הערך מימין למשתנה ששמו מופיע משמאל.
סימן שיוויון כפול (==
) היא פעולה אחרת לחלוטין, שבודקת האם הערך מימין זהה לערך משמאל.
במחוז בולילנד השערורייתי, מותר לאכול פיצה רק מגיל 25 ומעלה.
קבלו כקלט את גילו של המשתמש. הדפיסו לו True אם הוא יכול לאכול פיצה בבולילנד, או False אם הוא לא יכול.
לדוגמה: אם דוד הזין שגילו הוא 23, עליכם להציג לו False.
השורה print(1 == 1)
תדפיס למשתמש True.
In [ ]: