פייתון לבית-ספר, או בית-ספר לפייתון
From Python
הי,
זהו חומר ישן יחסית שנכתב ע"י גיא קרן (חוץ מהמפגש האחרון שנכתב ע"י עמית אהרונוביץ')
הוא מובא כאן בצורה גולמית בתקווה שיועיל למישהו.. או שמישהו ירצה לעבד אותו (או לפחות לבצע בו ויקיזציה)
# מפגש 1 - מבוא
1. קצת על תוכנית המפגשים
2. קצת על תוכנה חופשית
* מהי תוכנה חופשית? מה מטרתה של תוכנה חופשית?
* מי כותבים תוכנה חופשית? למה הם עושים זאת?
* איפה משתמשים בתוכנה חופשית? (לא בנפנופי ידיים - דוגמאות!)
3. קצת על תיכנות
* איך חושב המחשב - דיוק בניסוח, ירידה לפרטים, כל דבר קטן צריך להסביר עד הסוף.
* איך נראית שפת תיכנות.
* איך חושב מתכנת.
4. הפסקה
5. מושגי יסוד בשפות תיכנות
1. הערות ותיעוד
2. קבועים ומשתנים
3. פקודות תנאי (אם... אז...)
4. לולאות ומניה
5. פרוצדורות ופונקציות
6. אובייקטים
7. ההבדל בין תוכנית כתובה לתוכנית בדוקה
8. ההבדל בין תוכנית בדוקה לתוכנית בדוקה ממש
# מפגש 2 - תרגול - עבודה בסיסית עם לינוקס, למתכנתים
1. כניסה ללינוקס ויציאה ממנו
2. על חשבונות ומשתמשים
3. ספריית הבית ורשימות קבצים.
4. יצירת ומחיקת תת-ספריות וניווט ביניהן.
5. שימוש בסיסי בעורך טקסטים
# מפגש 3 - פייתון, משתנים ולולאות "כל-עוד"
1. שיעורון א' - פייתון עם חשבון פשוט
1. הפעלת פייתון כתוכנית אינטראקטיבית.
2. ביטויים חשבוניים
3. משתנים ושמות
4. כלי קטן - הדפסה על המסך
5. משחק ראשון - לספור עד עשר "על האצבעות" - כיתבו תוכנית שמדפיסה את כל המספרים מאחד עד עשר. כיתבו תוכנית שניה שמדפיסה את כל המספרים מאחד עד עשרים.
2. שיעורון ב' - לולאות "כל-עוד"
1. כתיבת לולאת "כל-עוד"
2. יישור שורות ליצירת גוף הלולאה
3. לולאות אין-סופיות ולחיצה על Ctrl+c
4. משחק שני - כל-מיני דרכים לספור עד עשר - כיתבו תוכנית שמדפיסה את המספרים מאחד עד עשר. כיתבו תוכנית שמדפיסה את כל המספרים מעשר עד אחד (ספירה לאחור). כיתבו תוכנית שמדפיסה את המספרים הזוגיים בין אחד לעשר.
# מפגש 4 - תירגול - משתנים ולולאות "כל-עוד"
1. כיתבו תוכנית המציירת על המסך ריבוע גדול, הנראה כך:
1111111111111111111111111111111111111111
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1111111111111111111111111111111111111111
שימו לב - ניתן לבצע זאת בכמה דרכים. חישבו על דרכים יעילות (כמה שפחות פקודות).
מי שסיים, ינסה לצייר את הציור הבא:
1234567890123456789012345678901234567890
2 9
3 8
4 7
5 6
6 5
7 4
8 3
9 2
0 1
1234567890123456789012345678901234567890
# מפגש 5 - תנאים ומחרוזות
1. שיעורון ג' - יש לי תנאי
1. פקודת התנאי "אם"
2. אם - אז - אחרת
3. כלי קטן - קריאה מהמקלדת
4. משחק שלישי - נחש את המספר - כיתבו תוכנית שבה המחשב בוחר מספר, ונותן למשתמש לנחש אותו.
2. שיעורון ד' - ממספרים למילים
1. מחרוזות של אותיות
2. שירשור מחרוזות
3. חישוב אורך מחרוזת - הפונקציה len
4. לולאות for - ופרוק מחרוזת לאותיות.
5. כלי קטן - הולכים לישון
6. משחק רביעי - "אל תצעק לי באוזן" (שירשור מילים מסוגנן) - כיתבו תוכנית שלוקחת רשימה של מחרוזות ומשתמשת בהן כדי לצייר ציור אומנותי על המסך, על ידי שימוש בשירשור מחרוזות שונות. איך בדיוק? החליטו לבד.
שימו לב: ניתן להדפיס את המחרוזות ישר, או הפוך, או... ניתן ללכת לישון בין הדפסה אחת לשניה, על-מנת להשיג אפקט דרמטי...
# מפגש 6 - תירגול - תנאים ומחרוזות.
1. כיתבו תוכנית המציגה למשתמש תפריט עם האפשרויות הבאות:
1. הדפסת אות אחת X פעמים.
2. הדפסת מילה אחת X פעמים.
2. הדפסת כל אות של מילה נתונה X פעמים.
3. סיום.
התוכנית תקלוט מהמשתמש את האופציה הרצויה מהתפריט.
עבור אופציה 1, התוכנית תיקלוט מהמשתמש מספר ואות, תוודא שהמספר בין 1 ל-10 והאות היא אות אחת, ותדפיס את האות.
עבור אופציה 2, התוכנית תיקלוט מהמשתמש מספר במילה, תוודא שהמספר בין 1 ל-10, ותדפיס את המילה.
עבור אופציה 3, התוכנית תיקלוט מהמשתמש מספר ומילה, תוודא שהמספר בין 1 ל-10, תפרק את המילה לאותיות, ותציג כל אות מספר פעמים.
עבור אופציה 4, התוכנית תסתיים.
בסיום הטיפול בכל אחת מהאופציות האחרות, התוכנית תציג שוב את התפריט.
# מפגש 7 - פונקציות ומשתנים מקומיים
1. שיעורון ה' - לפונקציה שלי שלוש קריאות...
1. פונקציות על הבוקר
2. פרמטרים וערכים חוזרים
3. כלי קטן - טווחים (range)
4. משחק חמישי - צייר לי משולש, או ריבוע, או משהו... כיתבו תוכנית שמציירת על המסך צורה גאומטרית כלשהי, לפי בחירתכם. למשל:
*
**
***
*****
******
*******
********
*********
שימו לב: השתמשו בפונקציות בכתיבת התוכנית.
2. שיעורון ו' - משתנים מקומיים - מבחוץ ומבפנים
1. המקום של המשתנים
2. איך יש שני "דני"?
3. המשתנים הגלובליים המרושעים...
4. משחק שישי - תוכנית עם הרבה "דני" - תרגיל למבלבלים מתחילים - כיתבו תוכנית שכל המשתנים בה נקראים "דני", ובכל זאת היא עושה משהו שימושי. נראה מי יתבלבל יותר - אתם או המדריכים...
# מפגש 8 - תירגול - פונקציות ומשתנים מקומיים
1. לעשות...
# מפגש 9 - עבודה עם קבצים, ניסוי וטעיה (Exceptions)
1. שיעורון ז' - עבודה עם קבצים
1. קובץ פותחים - אובייקט מקבלים
2. קובץ קוראים - מחרוזות מוחזרות
3. קובץ סוגרים - לנקיון המשתנים
4. כלי קטן - קצת על פרמטרים לתוכנית
5. משחק שביעי - ספור לי את השורות - כיתבו תוכנית שמקבלת שם של קובץ כפרמטר, ומדפיסה את כמות השורות שיש בקובץ (שימו לב - מדפיסה מספר, לא את השורות עצמן!).
2. שיעורון ח' - ניסוי וטעיה (Exeptions)
1. מי בכלל טועה?
2. איך מנסים ואיך תועים?
3. הניסוי והטעיה בפעולה על קבצים
4. משחק שמיני - סופרים קבצים - כיתבו תוכנית שמקבלת רשימת שמות קבצים בשורת הפקודה, ומדפיסה את רשימת השמות כשליד כל שם ירשם האם הקובץ קיים או לא.
# מפגש 10 - תירגול - עבודה עם קבצים, ניסוי וטעיה
1. לעשות...
# מפגש 11 - עבודה עם מחרוזות, מערכים ורשימות
1. שיעורון ט' - משחקי מחרוזות
1. פיצול מחרוזות לחלקים
2. ניקוי רווחים
3. משחק תשיעי - סופרים אותיות ומילים - כיתבו תוכנית המקבל שם של קובץ כפרמטר, ומדפיסה את כמות האותיות והמילים שבקובץ. טפלו בשגיאות כדוגמת הקובץ לא קיים, אין הרשאה לפתוח אותו וכו'.
2. שיעורון י' - רשימות
1. בין משתנה פשוט לרשימה
2. סריקת רשימות
3. הוספת איברים ומחיקתם
4. ממחרוזות לרשימות ובחזרה
5. כלי קטן - החזרת הסמן לתחילת השורה
6. כלי קטן - שיחרור פלט מיידי (flush)
7. משחק עשירי - השלט המסתובב - כיתבו תוכנית הלוקחת מחרוזת ומדפיסה אותה על המסך תוך-כדי "סיבוב האותיות". למשל, אם המחרוזת היא "abc", היא תודפס בהתחלה כ-"abc", אחר-כך כ-"cab" ואחר-כך כ-"bca". כדי שנות את הסדר של האותיות, היפכו את המחרוזת למערך, וסדרו מחדש את המחרוזת בתוך המערך.
# מפגש 12 - תירגול - משחקי מחרוזות ורשימות.
1. לעשות...
# מפגש 13 - האיש התלוי
1. שיעורון י"א-1 - הכנה לאיש התלוי
1. מספרים אקראיים
2. קיצוצי קצות מחרוזות והקטנת/הגדלת אותיות
3. משחק אחד-עשר, חלק א' - בחירת מילה אקראית מקובץ - כיתבו תוכנית שבוחרת מילה אקראית מהקובץ '/usr/share/dict' ומדפיסה אותה על המסך.
2. שיעורון י"א-2 - האיש התלוי
1. אסקי-ארט
2. תנאים מורכבים
3. רעיון קטן - מבנה של משחק מחשב
4. משחק אחד-עשר, חלק ב' - האיש התלוי - כיתבו תוכנית הבוחרת מילה אקראית מהמילון, ונותנת למשתמש לנחש אותה אות אחר אות. המחשב מצייר איש תלוי תוך כדי המשחק - עבור כל ניחוש שגוי של המשתמש, המחשב מצייר עוד חלק. אם המשתמש ניחש את כל המילה הוא ניצח. אם המחשב צייר את הציור השלם לפני כן - המשתמש הפסיד.
# מפגש 14 - תירגול - האיש התלוי
1. סיום כתיבת "האיש התלוי" בכיתה.
2. מי שמסיים מהר - יכול לעבוד על שיפורים בתחום הארטיסטי, או אולי תמיכה ברמזים...
# מפגש 15 - אומנות התנועה וקבלת החלטות
1. שיעורון י"ב - אומנות התנועה
1. "רצפי בריחה"
2. תנאים מורכבים
3. "מבנה המסך הטקסטואלי"
4. משחק שניים-עשר - הכדור המקפץ - כיתבו תוכנית המציגה על המסך כדור המקפץ מעלה-מטה. אם יש זמן - שפרו אותה כך שקצב התנועה יהיה דומה למציאות.
2. שיעורון י"ג - קבלת החלטות
1. ניהול רגיל לעומת טיפול במקרי קצה
2. רעיון קטן - מכונת המצבים הקטנה
3. משחק שלושה-עשר - כדור הפינג-פונג המסתורי - כיתבו תוכנית המציגה על המסך כדור הנע באלכסון, בין ארבעה קירות. בכל פעם שהכדור פוגע בקיר, הוא משנה כיוון בציר אחד (למשל, אם הכדור זז למעלה-שמאלה, ופוגע בקיר העליון, הוא יתחיל לזוז למטה-שמאלה. אם הכדור זז למעלה-שמאלה ופוגע בקיר השמאלי, הוא יתחיל לזוז למעלה-ימינה).
# מפגש 16 - תירגול - אומנות התנועה וקבלת החלטות
1. סיום משחק הפינג-פונג.
2. מי שמסיים מהר - יוסיף שיפורים בתחום הארטיסטי, או אולי תמיכה במכשולים במגרש...
# מפגש 17 - מחלקות ועצמים
1. שיעורון י"ד - מחלקות (Classes) ועצמים (Objects)
1. האובייקט העצמאי
2. בין מחלקה לאובייקט
3. הגדרת מחלקה
4. יצירת אובייקט
5. משחק ארבעה-עשר - קערת הסלט. כיתבו תוכנית המגדירה מחלקת ירקות (או מחלקת פירות, לפי _הטעם_ שלכם), ומגדירה תת מחלקות של ירקות (או פירות) האהובים עליכם. כל אובייקט מסוג ירק (או פרי) יודע להדפיס את השם שלו. הוסיפו מחלקת סלט, שאובייקטים שלה מכילים רשימה של ירקות (או פירות). לסלט יש פונקציה היודעת להוסיף לתוכו ירק (או פרי), פונקציה היודעת להדפיס את תוכנו, ופונקציה היודעת לערבב אותו. כיתבו תוכנית המכינה סלט פירות, מערבבת אותו, ומגישה אותו למסך.
# מפגש 18 - תירגול - מחלקות ועצמים.
1. לעשות...
# מפגש 19 - קלט מיידי וקלט בזמן-אמת
1. שיעורון ט"ו - קלט מיידי
1. כלי קטן - קבלת קלט מיידי
2. משחק חמישה-עשר - הכדור הממושמע - קחו את תוכנית הכדור המקפץ שלכם, ושנו אותה כך שבסוף כל קפיצה, המשתמש יוכל לספק קלט שלפיו הכדור יועבר עמודה אחת שמאלה או ימינה לפני הקפיצה הבאה.
2. שיעורון ט"ז - קלט בזמן-אמת
1. כלי קטן - המתנה מוגבלת לקלט
2. ספירת הזמן והקלט
3. כלי קטן - זיהוי תווי קלט
4. משחק שישה-עשר - תפוס ת'כדור - קחו את התוכנית הקודמת, ושפרו אותה כך שתוכל לקבל קלט תוך כדי שהכדור קופץ, ולהזיז את הכדור מעמודה אחת לשניה תוך כדי קפיצה.
* מפגש 20 - תירגול - קלט מיידי וקלט בזמן אמת.
1. לעשות...
* מפגש 21 - משחקי זמן-אמת.
1. שיעורון י"ז - משחקי זמן-אמת (שיעורון ארוך)
1. איך לגשת לתיכנון משחק
2. ניהול מקבילי של מספר עצמים
3. מפגשים והתנגשויות
4. תצוגה חלקה בעזרת "חציצה כפולה"
5. משחק שבעה-עשר - תופסת - כיתבו תוכנית המאפשרת לשני שחקנים לשחק תופסת: כל שחקן מיוצג על ידי אות שונה, ובאמצעות המקלדת יכול להזיז את האות שלו על המסך לכיוון כלשהו. אם שחקן אחד תופס את השחקן השני, הוא מקבל נקודה, והתפקידים (רודף ונרדף) מוחלפים. אם הנרדף ברח מהרודף במשך חצי דקה - הנרדף מקבל נקודה. הראשון שמגיע לעשר נקודות - מנצח!
שימו לב - כדי לשכלל את המשחק אפשר להחליט שהרודף נע מהר פי שניים מהנרדף - חישבו איך לממש זאת...
* מפגש 22 - תירגול - משחקי זמן-אמת.
1. לסיים את משחק התופסת.
2. מי שמסיים מהר - יוסיף שיפורים בתחום הארטיסטי, או אולי יוסיף מכשולים, או אולי יוסיף את הפרשי המהירויות בין הרודף לנרדף.
* מפגש 23 - הכנה לפרוייקט
1. כיצד בוחרים פרוייקט.
2. כיצד מתכננים פרוייקט. למה כדאי לתכנן?
3. לכתוב הכל בעצמנו, או להעזר במודולים קיימים?
4. בוחרים רעיון
5. תיכנון מחלקות
6. בניה בהדרגה - מלמעלה למטה או מלמטה למעלה?
7. בדיקות
8. ניפוי שגיאות
9. בחירת רעיונות במשותף.
10. תחילת תכנון.
* מפגש 24 - תירגול - הכנה לפרוייקט.
1. לוודא שלכולם יש רעיון לפרוייקט. למי שאין - להציע רעיונות.
2. יאללה, לעבודה!
* מפגש 25 ומעלה - תירגול - עבודה על הפרוייקט.
1. ליווי בשלב התכנון, הכתיבה, הבדיקה.
* מפגש סוף שנה - הצגת פרוייקטים ומסיבת סיום.
1. להביא שתיה, עוגות ומצב-רוח-טוב!
גרסה 1.2
פגישה 3 - פייתון, משתנים ולולאות "כל עוד"
מפרש אינטראקטיבי
* פייתון היא שפה המשמשת לכתיבת תוכניות מחשב, אבל אפשר גם להריץ אותה כתוכנית עצמאית, במוד שנקרא "מפרש אינטראקטיבי" (interactive interpreter).
* במצב זה היא פועלת בדומה לשורת הפקודה שהכרנו במפגש הקודם: האדם כותב פקודה כלשהי, המחשב מבצע ומדפיס את התוצאה על המסך.
* צורת הפעלה זו שימושית במיוחד כאשר רוצים ללמוד, להדגים, או לנסות דברים חדשים. מכיוון שמתכנת טוב תמיד לומד ומנסה דברים חדשים, אז בעצם זה שימושי תמיד.
* איך מפעילים את זה? כותבים python בשורת הפקודה. לאחר הודעת פתיחה קצרה יופיע הסימן >>> (בלעז prompt) - זו דרכה של פייתון להגיד לנו "עכשיו תורך"...
פייתון כמחשבון
* בפייתון, כמו בכל שפה, סוגים שונים של "דברים" שניתן לדבר עליהם. במינוח של שפות מחשב מדברים על טיפוסים (types) של עצמים (objects).
* בניגוד לבני האדם (לפחות לרובם), עבור מחשב, הטיפוס הבסיסי והפשוט ביותר הוא מספר. אז הנה משהו עבור ה"תור שלנו" - ננסה לכתוב למפרש כמה מספרים.
>>> 2
2
>>> 5
5
>>>
* טוב, אז בשביל לחזור על מה שכתבנו כמו "מחשב אחרי בן אדם" לא ממש צריך מחשב נכון? אנחנו רוצים לעשות משהו עם המספרים שלנו.
לכן נוסיף סימנים: הסימנים +, -, * , / - יציינו עבור מספרים את הפעולות החשבוניות, ונשתמש גם בסוגריים (, ) כדי לשלוט על סדר הפעולות.
>>> 2 + 5 * (4 - 1)
17
עכשיו יש לנו מחשבון לכל דבר - וזה כבר יותר שימושי.
* רצף כזה של עצמים וסימנים נקרא ביטוי. בכל מקום בשפה שבו יכול להופיע אובייקט, אפשר לכתוב במקומו ביטוי - המחשב יבצע את הפעולות המתוארות, וישתמש באובייקט שהתקבל בתור תוצאה. לכן כאשר כותבים ביטוי בודד, המחשב מדפיס לנו את תוצאת החישוב.
שמות ומשתנים
* הגיע הזמן שנלמד לכתוב משפט מלא בשפה. הסימן "=" משמש כדי לתת שמות לעצמים. לדוגמה my_number = 5 היא פקודה שמשמעותה "מעתה, כשנגיד my_number נתכוון לאובייקט 5".
* כמובן שאפשר גם כאן לכתוב ביטוי, כמו 2+3 במקום האובייקט המפורש 5.
* מייד לאחר הפקודה הנ"ל, אפשר להכניס my_number בתוך ביטויים. כולל גם ביטויים באגף הימני של פקודה מהסוג שלמדנו, לדוגמה: bigger_number = my_number + 100
* כמו בחיים, אפשר גם "להתחרט", ולהחליט שמעתה my_number יהיה בעצם משהו אחר. בגלל התכונה הזאת המתכנתים אוהבים לקרוא לשמות מסוג זה בשם "משתנים".
* העצם שאליו השם (משתנה) מתייחס כרגע נקרא ה"ערך" של המשתנה (כמו ערך במילון).
* צריך לזכור שקודם כל המחשב מפרש את הפקודה ומחשב את כל הביטויים שמופיעים בה, ורק אח"כ מבצעים אותה. לדוגמה:
מה מבצעת הפקודה my_number = my_number + 1 ?
לקראת תוכנית - הדפסה למסך
* עד עכשיו עבדנו בצורה אינטראקטיבית, ולכן פייתון הדפיס לנו כל תוצאה שהתקבלה. כאשר הוא מריץ תכנית הוא לא עושה זאת אלא אם כן אומרים את מילת הקסם.
* הפקודה השניה שנלמד - פקודת print: משמשת להדפסת נתונים למסך. אפשר להדפיס כמה נתונים, מופרדים בפסיקים, לדוגמה:
>>> print 1, 2+7, 3.5
1 9 3.5
* כל הדפסה תתבצע בשורה נפרדת, אלא אם כן פקודת ההדפסה מסתיימת בפסיק, ואז ההדפסה הבאה תצורף לאותה שורה:
>>> print 4 ; print 5
4
5
>>> print 4, ; print 5
4 5
(הסימן ';' (נקודה פסיק) מפריד בין שתי פקודות פייתון שנכתבו בשורה אחת).
* כדי להריץ את הקובץ שלנו כתכנית "רגילה", נצא לשורת הפקודה ונכתוב python <filename>.
תרגיל ראשון: לספור עד 10 "על האצבעות"
* כיתבו תכנית שמדפיסה את כל המספרים מאחד עד עשר. נסו בשתי שיטות שונות:
1. על-ידי שימוש בפקודת print בלבד.
2. על-ידי ספירה באמצעות משתנה והדפסת ערכו של משתנה זה שוב ושוב.
* כיתבו תכנית שניה שמדפיסה את כל המספרים מאחד עד עשרים.
לולאות "כל עוד"
* לולאה היא דרך לכתוב פקודות פעם אחת, ולהורות למחשב לבצע אותן פעמים רבות.
* לשם כך צריך שני דברים: לסמן את אוסף הפקודות שאנו רוצים לבצע, ולקבוע עד מתי (או כמה פעמים) לחזור עליהן.
* בלולאות "כל עוד" אנחנו נותנים תנאי, והמחשב ממשיך לחזור על הפקודות כל עוד התנאי מתקיים. התנאי הוא ביטוי שאותו מחשבים מחדש בתחילת כל "סיבוב", ותוצאתו יכולה להיות נכון - True, או לא נכון - False.
* על תנאים נלמד יותר בהמשך, בינתיים נסתפק בפעולות השוואה בין מספרים: <, >, <=, >=, ==, != (שימו לב שהסימן '=' תפוס ע"י פקודה שכבר למדנו, לכן משתמשים ב '==' להשוואה). נסו את התנאים הבאים במפרש האינטראקטיבי:
1. 1 > 3
2. 3 >= 1
3. 1 == 1
4. 1 <= 2
* הערה: הערכים True ו-False הם אובייקטים מטיפוס הנקרא "בולאני" (= "בעל שני ערכים אפשריים" - אמת ושקר). אפשר לבצע עליהם פעולות, לתת להם שמות, וגם להשתמש בהם ישירות בשפה.
כתיבת הלולאה
* פקודת while משמשת ליצירת הלולאה, אחריה בא התנאי ונקודותיים.
* הפקודות שעליהן יש לחזור, נקראות גוף הלולאה. הן יכתבו מוזחות לימין מתחת לפקודת ה-while ומיושרות זו מעל זו. מקובל לכתוב אותן בהזזה של 4 תוים יחסית ל-while (בד"כ עורך הקבצים עוזר לנו לעשות זאת בצורה אוטומטית). לדוגמה:
i=0
while i<5:
print "ni!"
i = i + 1
(כל עוד i קטן מ-5, הדפס "כן" ושנה את ערכו של i ל- i+1)
* אם גוף הלולאה מורכב מפקודה אחת - אפשר לכתוב אותה באותה שורה
while False: print 1000
(טוב, לולאה זו לא עושה כלום. יודעים למה?)
* גוף הלולאה יכול להכיל כל מה שרוצים - כולל לולאה נוספת. לדוגמה:
a = 0
while a < 3:
i = 2
while i < 7: i = i + 2
print i, a, a < 3
a = 3
(נסו לנחש מה יודפס כאן)
לולאה אינסופית
* אם נותנים ללולאה תנאי שהוא תמיד נכון, המחשב ימשיך לבצע את הפקודות, מבלי להתיאש, עד שמישהו יכבה לו את החשמל.
* לבני האדם לעומת זאת, יש פחות סבלנות. לכן הם דאגו להשאיר לעצמם אפשרות להתערבות חיצונית ע"י לחיצה על Ctrl+c.
* לדוגמה, נשתמש בפקודה שלא עושה כלום: pass
>>> while True: pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in ?
KeyboardInterrupt
* בתכניות אמיתיות, לולאות אינסופיות נגרמות בדרך כלל בגלל טעות של המתכנת (bug), חשוב לוודא שיש דרך לצאת מהלולאה, ולא נתתם בטעות תנאי שתמיד מתקיים.
תרגיל שני - ועכשיו שהמחשב יספור
* כיתבו תכנית שמדפיסה את כל המספרים מאחד עד עשר.
* כיתבו תכנית שמדפיסה את כל המספרים מעשר עד אחד.
* כיתבו תכנית שמדפיסה את המספרים הזוגיים בין אחד לעשר.
* כיתבו תכנית שמדפיסה את כל הכפולות של 2, עד ל-1024 (2, 4, 8, 16...).