for loop

March 16, 2019

לולאת for

בכל שפת תוכנה קיימת פקודה מסוג זה המאפשרת לולאה (loop), העוברת על סדרה של פריטים בתוך אובייקט מסוים, ומבצעת פעולה או בדיקה לכל אחד ואחד מהפריטים הללו. בתנאי שהאובייקט הוא מסוג iterable המאפשר פעולה על כל אחד ואחד מפרטיו. מחרוזות ורשימות, למשל, הם אובייקטים המאפשרים זאת (iterables). ניתן לראות את מבנה לולאת for הכולל יצירת משתנה זמני לצורך ביצוע הלולאה (בדוגמא למטה נקרא item), איזכור שם האובייקט (מחרוזת רשימה וכו' – בדוגמא למטה נקרא Alphabet) לאחר מכן נקודתיים (:) ובשורה מתחת, שהזחנו ימינה, אנו רושמים את הפעולה שאנו רוצים לבצע -  ונדגים –

 

Alphabet="abcd"

 

for item in Alphabet:

    print (item)

 

>>>

a

b

c

d

 

בתוכנית למעלה יצרנו מחרוזת שקראנו לה Alphabet וביקשנו מהמחשב לעבור כל פריט ופריט (item) בתוך המחרוזת ולהדפיס אותו. המילה item, שהיא משתנה זמני, יכולה להיות כל שם אחר שנבחר, והמשתנה הזה בכל פעם מכיל איבר אחר של המחרוזת, והלולאה for  שיצרנו מדפיסה את אותו ערך שיש באותו רגע במשתנה הזמני (ב- item) עד שהיא מסיימת לעבור על כל המחרוזת ואז מפסיקה.

ולדוגמא נוספת –

lista=[1,2,3,4]

for num in lista:

    print (num**2)

 

>>>

1

4

9

16

 

בתוכנית למעלה יצרנו רשימה המכילה את המספרים מ- 1 עד 4, ביקשנו מהתוכנה באמצעות לולאת for ליצור לולאה העוברת על כל אחד מהפריטים ברשימה lista ולהדפיס את ריבוע כל אחד ואחד מהפריטים ברשימה. שוב, המילה num היא משתנה שבחרנו וניתן לקרוא לו בכל שם (שאינו נמנה על השמות המהווים פקודות בפייתון ואינם ניתנים לשימוש).

כדי להבין היטב איך טכנית פועלת לולאה – נסבך מעט -

 

lista=[1,2,3,4]

for num in lista:

    lista.remove (num)

print(lista)

 

>>>

[2, 4]

 

בתוכנית למעלה היינו יכולים לצפות שבכל פעם ימחק פרט מהרשימה עד שהיא תהיה ריקה, אך הלולאה אינה עובדת כך, תחילה הלולאה מבצעת פעולה על האיבר הראשון ברשימה ומוחקת אותו, כעת הרשימה מכילה את המספרים [2,3,4] בסיבוב הבא הלולאה מוחקת את האיבר השני ברשימה החדשה ולא ברשימה המקורית! ואנו נותרים עם [2,4] כעת אין איבר שלישי ורביעי ולכן פעולת הלולאה מסתיימת.

מה תעשה התוכנית הבאה ?

 

list1=[1,2,3,4]

list2=[ ]

for num in list1:

    list2.append (num*2)

print(list2)

 

>>>

[2, 4, 6, 8]

 

בתוכנית למעלה יצרנו רשימה בשם list1 הכוללת את המספרים מ- 1 עד 4 וגם יצרנו רשימה שנייה ריקה בשם list2. ביקשנו מפייתון לעבור על הפריטים ברשימה הראשונה ובכל פעם להוסיף לרשימה השנייה את תוצאת המכפלה ב- 2 של כל פריט ברשימה הראשונה. לבסוף להדפיס את הרשימה השנייה שהתמלאה, בסוף הלולאה, בארבעה מספרים הכפולים מהמספרים ברשימה הראשונה.

Please reload

Please reload

רעננו את הדף והקליקו למעבר לנושא הבא: