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

יש לי גם עוד להוסיף מעבר למה שכבר אמרו:
1. הסיבה לכך שניתן בפייתון להשתמש בתנאים לא בוליאינים בif ו-else זה כי יש שיטת המרה לבוליאני. למקרה שזה מעניין אותך, הנה קישור שמסביר כיצד זה נעשה (אולי אתרגם אם תרצי):
https://docs.python.org/3/library/stdtypes.html#truth-value-testing

2. עובדה מעניינת שלא הרבה יודעים היא שניתן להוסיף else לwhile (גם ללולאת for דרך אגב) ממש באופן דומה לאיך שנוסף else לif. אז מה שיקרה זה שהלולאה תתבצע, ואחרי שהתנאי לא מתקיים יותר אז הגוף של הelse יתבצע. זה בהנחה שהלולאה הפסיקה בגלל שהתנאי לא נכון. אם היא הפסיקה בגלל שהיא הגיעה לחלק של break (פקודה שאומרת ללולאת for או while להפסיק את החזרה על הפעולות שלהן ולעבור לחלק הבא בקוד. זה מעין לדלג על הלולאה ולעבור למה שאחריה) או הגיעה לחלק שבו היא מחזירה ערך, אז הelse לא יתבצע.