לימוד פייתון לאיש הפשוט/לספור עד 10

לולאת while עריכה

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

a = 0
while a < 10:
    a = a + 1
    print a

והנה הפלט המופלא של ההרצה:


1
2
3
4
5
6
7
8
9
10

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

אז מה התוכנית עושה? תחילה היא רואה את השורה a = 0 ומאתחלת את a להיות בערך אפס. ואז המחשב יראה :while a < 10 ולכן יבדוק האם נכון ש a < 10 . בפעם הראשונה המחשב רואה כי a שווה לאפס, כך שזה נכון והוא פחות מ 10. במילים אחרות, כל עוד a הוא פחות מעשר המחשב יפעיל את ההוראות שנמצאות תחת ההתניה כלומר מוכנסות קצת פנימה. בסופו של דבר a שווה לעשר (על ידי הוספת אחד a שוב ושוב), ולכן while a < 10 אינו נכון יותר . ברגע שמגיעים לנקודה זו בתוכנית השורות המוכנסות פנימה לא יורצו יותר.

זיכרו תמיד לשים נקודתיים ":" אחרי "while"!

הנה עוד דוגמה לשימוש ב while:

a = 1
s = 0
print 'Enter Numbers to add to the sum.'
print 'Enter 0 to quit.'
while a != 0:
    print 'Current Sum:', s
    a = input('Number? ')
    s = s + a
print 'Total Sum =', s
Enter Numbers to add to the sum.
Enter 0 to quit.
Current Sum: 0
Number? 200
Current Sum: 200
Number? -15.25
Current Sum: 184.75
Number? -151.85
Current Sum: 32.9
Number? 10.00
Current Sum: 42.9
Number? 0
Total Sum = 42.9

שימו לב שהדפסת סה"כ הסכום print 'Total Sum =', s רצה רק בסוף. while משפיע רק על השורות המוכנסות פנימה ע"י רווח. הסימן != מייצג אינו שווה כלומר :while a != 0 עד אשר a יהיה אפס, ימשיכו לרוץ השורות השייכות לתנאי אלו המוכנסות ברווחים פנימה.

לולאות אינסופיות עריכה

דוגמאות עריכה

תרגילים עריכה

כתבו תוכנית

הקודם: מי שם?      הנוכחי: לספור עד 10      הבא: לספור עד 10