לולאת 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 כוכבים
המדריכים באתר עוסקים בנושאי תכנות ופיתוח אישי. הקוד שמוצג משמש להדגמה ולצרכי לימוד. התוכן והקוד המוצגים באתר נבדקו בקפידה ונמצאו תקינים. אבל ייתכן ששימוש במערכות שונות, דוגמת דפדפן או מערכת הפעלה שונה ולאור השינויים הטכנולוגיים התכופים בעולם שבו אנו חיים יגרום לתוצאות שונות מהמצופה. בכל מקרה, אין בעל האתר נושא באחריות לכל שיבוש או שימוש לא אחראי בתכנים הלימודיים באתר.
למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.
שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.
המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?
השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.