פייתון/פייתון גרסה 3/לולאת while
< פייתון | פייתון גרסה 3
לולאות "כל עוד" (while)
עריכהלולאה היא פעולה המתבצעת שוב ושוב עד אשר מתקבלת תוצאה רצויה אותה הגדרנו מראש. לדוגמה, פייתון מחברת מספרים אותם מקליד המשתמש עד אשר נרשמת הספרה 10.
יתרונות
עריכה- כתיבה מקוצרת.
- כתיבה כללית ולא פרטנית לכל מקרה המאפשרת לחשב או להעריך תוצאות גם אם איננו יודעים את האיברים המדויקים או מספר האינטרציות.
דוגמה
עריכה>>>num_loop = 1
>>>while num_loop < 11:
>>> print ('ppp')
>>> num_loop= num_loop + 1
המחרוזת מוגדרת:
- מחזורים שקיימים - 1.
- הגדרנו את מספר הלולאות בהם אנו חפצים - 11 לולאות.
- הגדרנו את הפעולה אותה אנו רוצים שתבוצע 10 פעמים (בלולאות המספר האחרון אינו כלול).
- הגדרנו בכמה תגדל הלולאה בכל סיבוב (בלולאה נוספת)
דוגמה שניה
עריכה>>>num_a=0
>>>num_1=float(input('insert a number'))
>>>num_loop = 1
>>>while num_loop <= 10:
>>> num_a=((num_1+num_a)/2)
>>> num_1=float(input('insert a number'))
>>> num_loop = num_loop + 1
>>>print(num_a)
בדגומה זו
- הגדרנו שני נעלמים: ממוצע של מספרים ובמקביל בקשנו מהמשתמש להציב מספרים.
- הגדרנו את מספר הלולאות הקיימות - 1
- הגדרנו את מספר המחזורים שתתבצע הפעולות הבאות - 10 פעמים:
- הגדרנו את הפעולה עליה אנו רוצים שהלולאה תחזור - חיבור המספר החדש שהקליד המשתמש עם הממוצע הקודם וחילוקו בשנים.
- בקשנו שוב מהמערכת לבקש מהמשתמש מספר
- הגדרנו למערכת הלולאות להוסיף לולאה לכל מחזור שהיא מבצעת.
- בקשנו מהמערכת להדפיס את המספר הממוצע שהתקבל.
תרגיל
עריכהרשום קוד לפיו יחזור הסכום של עשרה מספרים.
>>>num_sum = 0
>>>num = int(input('Inser a number : '))
>>>while num != 10:
>>> num_sum = num_sum + num
>>> num = int(input('Inser a number : '))
>>>print(num_sum)
לולאה מקונננת
עריכהלולאה מקונננת (Nested loops) היא לולאה בתוך לולאה. תפקיד הלולאה החיצונית להגדיר כמה פעמים הלולאה הפנימית תחזור על עצמה.
הלולאה הבאה תחזור על עצמה 5 פעמים, כאשר בלולאה הפנימית היא תפגוש את המספר 10. אחרי הפעם החמישית, היא תפסיק הלולאה לחבר את הסכומים. הפלט יהיה חיבור של כל המספרים שהוכנסו.
num_loop = 0
while num_loop < 5:
num_loop = num_loop +1
num_sum = 0
num = int(input('Inser a number : '))
while num != 10:
num_sum = num_sum + num
num = int(input('Inser a number : '))
print(numbers_sum)