לוגיקה בוליאנית boolean
קשה לדמיין שפת תכנות בלי להשתכשך בלוגיקה בוליאנית שהתוצרים שלה הם נכון או לא נכון True או False והן נכתבות עם אותיות רישיות גדולות, ללמד על מעמדן המיוחד בפייתון.
x=2**3
print (x is 8)
>>>
True
בהתחלה אנו מציבים ב x את הערך 8 (2 בחזקת 3) ולאחר מכן שואלים את התוכנה האם x הוא 8 והתשובה הלא מפתיעה שלה היא שההיגד הזה (x is 8 ) הוא נכון True.
x=2**3
print (x == 7)
>>>
False
ההיגד x שווה ל- 7 אינו נכון ולכן נקבל False .
פייתון יודעת גם להתייחס בהקשר המתאים ל- True כ- 1 ול – False כ- 0 –
print (True * 5)
>>>
5
וקצת נתחכם -
print (0==False)
>>>
True
print (0 is False)
>>>
False
למעלה אנו יכולים לראות את האבחנה בין is ל- ==. אפס שווה מתמטית לערך של false אבל הם טיפוסים שונים ולכן אין זהות ביניהם.
אחד השימושים הוא יצירת לולאה אינסופית באמצעות הביטוי while True שתופסק בהמשך באמצעות רק באמצעות תנאי ופקודת break -
n=0 while True: if n==5: break else: print (n) n+=1
>>>
0
1
2
3
4
ראשית יצרנו משתנה n מחוץ ללולאה אשר בכל סיבוב גדל ב- 1. לאחר מכן יצרנו לולאה אינסופית שנשברת רק כאשר n שווה ל- 5.
הניסוח שלמעלה מבלבל מעט – כי הפירוש המילולי של while True הוא "כל זמן שנכון" אז... – מה נכון ? כל זמן שהביטוי True הוא נכון (והוא תמיד נכון מכוח הגדרתו) הלולאה תמשיך לרוץ, כלומר לנצח אם לא יהיה משהוא אחר שיעצור אותה כמו break.