תחי ישראל - אין לנו ארץ אחרת

תחי ישראל -אין לנו ארץ אחרת

לולאת 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 כוכבים

 

 

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

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

שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.

המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?

השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.

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

 

 

ענה על השאלה הפשוטה הבאה כתנאי להוספת תגובה:

דג למים הוא כמו ציפור ל...?

 

תמונת המגיב

רון בתאריך: 04.12.2021

הסבר מעולה

תמונת המגיב

חן בתאריך: 06.12.2021

ברור מאד

תמונת המגיב

מתן בתאריך: 07.09.2023

הסברים מעולים ורהוטים - מחכים הרבה מהאתר, תודה.