לולאת for - במקום לחזור על עצמך תריץ לולאה

מחבר:
בתאריך:

אחד היתרונות של שימוש במחשב הוא שהוא יכול לבצע את אותה הפעולה אינסוף פעמים (כמעט) בלי לקטר, בלי להתייאש ובלי לטעות. כדי לבצע את אותה הפעולה אפשר לכתוב את אותו קוד מספר פעמים אבל למה להתאמץ. עדיף להשתמש בלולאה בתוכה נריץ את אותו קוד כמה פעמים שנרצה.

במדריך זה נלמד אודות לולאת for.

מדריך לולאת for בפייתון

בדוגמת הקוד הבאה הרשימה list מכילה רשימה של חברות לייצור רכבים ולולאת for שרצה על הרשימה מדפיסה את השמות כל אחד בשורה נפרדת:

list = ['BMW', 'Audi', 'Mercedes', 'Tesla', 'Volvo', 'Ferrari']

for item in list:
  print("current item: ", item)
current item:  BMW
current item:  Audi
current item:  Mercedes
current item:  Tesla
current item:  Volvo
current item:  Ferrari
  • הרשימה list כוללת שמות של 6 חברות רכב.
  • הלולאה רצה על הרשימה מספר פעמים השווה לאורך הרשימה.
  • בכל פעם שהלולאה רצה המשתנה item מקבל את הערך של הפריט לפי סדר הרשימה.
  • בתוך הלולאה ישנו קוד שמדפיס את ערך הפריט הנוכחי ברשימה.

ריצה אחת של הלולאה מכונה איטרציה.

בדוגמה שלנו, אורך הרשימה הוא 6 אז הלולאה רצה שש פעמים, ובכל פעם הערך של item הוא אחד הפריטים לפי סדר ההופעה ברשימה. בפעם הראשונה הערך הוא 'BMW', בפעם השנייה 'Audi', וכיו"ב עד לפריט האחרון ברשימה.

נסכם. התחביר של לולאת for הוא:

for [item] in [list]:
   # do something
  • list - היא הרשימה שעליה רצה הלולאה
  • item - בכל פעם שהלולאה רצה המשתנה מקבל את הערך התורן על פי סדר הרשימה.
  • בתוך הלולאה ישנו קוד המופעל בכל פעם שהלולאה רצה.

 

לולאות ואינדקסים

ספרת אינדקס מציינת את מיקומו של פריט לפי הסדר בו הוא מופיע ברשימה. לדוגמה:

models = ['BMW', 'Audi', 'Mercedes', 'Tesla', 'Volvo', 'Ferrari']

הפריט הראשון 'BMW' יקבל אינדקס 0, השני אינדקס 1, וכיו"ב.

פייתון לא נותן לנו גישה קלה למספרי האינדקס.

כדי לגשת למספרי האינדקסים נעטוף את הרשימה בתוך הפונקציה enumerate, כדי לקבל את המשתנים של ערך ואינדקס בכל פעם שהלולאה רצה:

for index, model in enumerate(models):
  print(index, model)
0 BMW
1 Audi
2 Mercedes
3 Tesla
4 Volvo
5 Ferrari

 

לולאות וטווחים

הפונקציה range מאפשרת לנו לייצר רשימה של מספרים:

for num in range(6):
  print("num = ", num)
num =  0
num =  1
num =  2
num =  3
num =  4
num =  5
  • הלולאה רצה מ-0 ועד למספר האחד לפני המספר האחרון אותו הגדרנו בטווח.

נעביר פרמטר נוסף כדי להגדיר את הערך שממנו הלולאה תתחיל לרוץ:

for num in range(2, 6):
  print("num = ", num)
num =  2
num =  3
num =  4
num =  5
  • הלולאה רצה מהערך הנמוך עד שהיא מגיעה לערך האחד לפני אחרון בטווח.

 

מילות המפתח שחובה להכיר: break ו-continue

יש שתי מילות מפתח שחובה להכיר כשעובדים עם לולאות: break שמפסיקה את הרצת הלולאה ו-continue שמדלגת לאיטרציה הבאה.

אם אנחנו מעוניינים שהלולאה תרוץ עד שתיתקל בערך מסוים ואז תפסיק אז נשתמש במילת המפתח break:

models = ['BMW', 'Audi', 'Mercedes', 'Tesla', 'Volvo', 'Ferrari']
 
for index, item in enumerate(models):
 print(item)
 if index == 2:
   break
BMW
Audi
Mercedes
  • הלולאה רצה על פריטי הרשימה ומדפיסה אותם כל עוד ערך האינדקס נמוך מ-2.
  • כשהלולאה מגיעה לאינדקס 2 ה-break לוקח פיקוד, ופייתון מפסיק להריץ את הלולאה.

אם אנחנו רוצים לדלג על אחד הערכים ולא להדפיס אותו אז נשתמש במילת המפתח continue:

for index, item in enumerate(models):
  if index == 2:
    continue
  print(item)
BMW
Audi
Tesla
Volvo
Ferrari
  • הלולאה רצה עד שהיא הגיע לאינדקס 2 ברשימה, שם פקודת ה-continue גרמה לה לדלג על האיטרציה.
  • כתוצאה מכך פריט הרשימה שהאינדקס שלו 2 (Mercedes) לא הודפס.

 

לולאות ומחרוזת

כפי שניתן להריץ לולאה על רשימה, אפשר להריץ גם על מחרוזת:

for letter in 'abcd':
  print('letter = ', letter)
letter =  a
letter =  b
letter =  c
letter =  d

בגלל שמחרוזת כמו רשימה היא iterable כלומר אפשר לעבור עליה באמצעות לולאה.

 

לולאה מקוננת - לולאה בתוך לולאה

ניתן להכניס לולאה אחת בתוך לולאה אחרת, זה נקרא קינון (מלשון קן). לדוגמה:

for letter in 'abc':
 for num in range(1,4):
   print(letter, ' ', num)
a   1
a   2
a   3
b   1
b   2
b   3
c   1
c   2
c   3
  • בכל פעם שהלולאה החיצונית מתקדמת במשתנה אחד, הלולאה הפנימית רצה את כל הטווח.

ניתן לקנן יותר מלולאה אחת. לדוגמה, מערך של 3 לולאות מקוננות:

for x in ['a', 'b', 'c']:
 for y in range(1,3):
   for z in 'hello':
     print(x, y, z)

במדריך הבא נלמד עוד סוג של לולאה - לולאת while.

לכל המדריכים בסדרה ללימוד פייתון

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

הוסף תגובה חדשה

 

= 8 + 3