הלולאה for ב-Python היא פונקציה לדירוג. אם יש לך אובייקט רצף כמו רשימה, תוכל להשתמש בלולאה for כדי לדרוג על הפריטים המכילים בתוך הרשימה.
הפונקציות של הלולאה for אינן משתנות במיוחד ממה שאתה רואה בשפות תכנות אחרות.
במאמר זה, נחקור בדיוק את הלולאה for ב-Python ונלמד לדרוג על רצפים שונים כולל רשימות, טאפלים ועוד. בנוסף, נלמד לשלוט בתהליך של הלולאה באמצעות הצהרות break ו-continue.
תחביר בסיסי של הלולאה for ב-Python
תחביר הבסיס של הלולאה for ב-Python נראה משהו דומה לזה שמוצג למטה.
for itarator_variable in sequence_name:
Statements
. . .
Statements
אני אסביר את תחביר הלולאה for ב-Python בצורה טובה יותר.
- המילה הראשונה בהצהרה מתחילה עם המילה המפתח "for" המסמנת את תחילת הלולאה for.
- אז יש לנו את משתנה האיטרטור המדרוג על הרצף וניתן להשתמש בו בתוך הלולאה כדי לבצע פעולות שונות
- הבאה היא מילת המפתח "in" ב-Python שאומרת למשתנה האיטרטור לעשות לולאה על איברים בתוך הרצף
- וסוף סוף, יש לנו את משתנה הרצפים שיכול להיות או רשימה, או טופל, או כל סוג אחר של מאיץ.
- החלק של ההצהרות בלולאה הוא המקום שבו ניתן לשחק עם משתנה המאיץ ולבצע פעולות שונות
1. הדפסת אותיות יחידות של מחרוזת באמצעות לולאת for
מחרוזת Python היא רצפי תווים. אם באפליקציות התכנות שלך כלשהן תצטרך לעבור על התווים של מחרוזת בנפרד, אפשר להשתמש בלולאת for כאן.
הנה כיצד זה יתקיים עבורך.
word="anaconda"
for letter in word:
print (letter)
פלט:
a
n
a
c
o
n
d
a
הסיבה שבגללה הלולאה פועלת היא מכיוון ש-Python תוחשב ב"מחרוזת" כרצפי תווים במקום לראות במחרוזת כולה.
2. שימוש בלולאת for לעבור על רשימה או טופל ב-Python
רשימות ו-טופלים הם אובייקטים ניתני להרצה. בואו נראה כיצד נוכל לעבור על האיברים באובייקטים אלו כעת.
words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
print (word)
פלט:
Apple
Banana
Car
Dolphin
עכשיו, בואו נמשיך ונעבוד על לולאת איברי טופל כאן.
nums = (1, 2, 3, 4)
sum_nums = 0
for num in nums:
sum_nums = sum_nums + num
print(f'Sum of numbers is {sum_nums}')
# פלט
# סכום המספרים הוא 10
3. הקפצת לולאות בפייתון
כאשר יש לנו לולאה for בתוך לולאה אחרת, נקרא לזה לולאה מקוננת. ישנן מספר יישומים ללולאה מקוננת.
שקול את דוגמת הרשימה לעיל. הלולאה for מדפיסה מילים פרטיות מהרשימה. אבל מה אם נרצה להדפיס את התווים הפרטיים של כל אחת מהמילים בתוך הרשימה במקום?
זהו המקום שבו לולאה מקוננת עובדת טוב יותר. הלולאה הראשונה (הלולאה האב) תעבור על המילים אחת אחרי השנייה. הלולאה השנייה (הלולאה הילד) תעבור על התווים של כל אחת מהמילים.
words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
# לולאה זו משיגה מילה מהרשימה
print ("The following lines will print each letters of "+word)
for letter in word:
# לולאה זו משיגה אות עבור המילה
print (letter)
print("") # ההדפסה הזו משמשת להדפיס שורה ריקה
פלט
4. לולאת Python עם פונקציית range()
פונקציית range() של Python היא אחת מהפונקציות המובנות. כאשר תרצה שהלולאה for תרוץ מספר ספציפי של פעמים, או כאשר יהיה צורך לציין טווח של אובייקטים להדפסה, פונקציית הטווח עובדת מאוד טוב. שקול את הדוגמה הבאה שבה אני רוצה להדפיס את המספרים 1, 2 ו־3.
for x in range(3):
print("Printing:", x)
# פלט
# הדפסה: 0
# הדפסה: 1
# הדפסה: 2
פונקציית הטווח מקבלת גם פרמטר נוסף למעט ההתחלה והסיום. זהו הפרמטר של הצעד. הוא מספר לפונקציית הטווח כמה מספרים לדלג בין כל ספירה.
בדוגמה למטה, השתמשתי במספר 3 כהפרדה וניתן לראות את המספרים בפלט הם המספר הקודם + 3.
for n in range(1, 10, 3):
print("Printing with step:", n)
# פלט
# הדפסה עם הצעד: 1
# הדפסה עם הצעד: 4
# הדפסה עם הצעד: 7
5. break הצהרה עם לולאת for
הצהרת ה-break משמשת לצאת מהלולאה for מוקדם. משמשת לשבור את הלולאה for כאשר נתנה תנאי מסוים.
נניח שיש לנו רשימת מספרים ונרצה לבדוק אם מספר נמצא או לא. אנו יכולים לעבור על רשימת המספרים ואם המספר נמצא, לשבור מהלולאה כי אנו לא צריכים להמשיך לעבור על האיברים הנותרים.
במקרה זה, נשתמש בתנאי if else בפייתון יחד עם הלולאה שלנו.
nums = [1, 2, 3, 4, 5, 6]
n = 2
found = False
for num in nums:
if n == num:
found = True
break
print(f'List contains {n}: {found}')
# פלט
# רשימה מכילה 2: True
6. הצהרת continue עם לולאת for
ניתן להשתמש בהצהרות continue בתוך לולאת for כדי לדלג על ביצוע גוף הלולאה for לתנאי מסוים.
נניח שיש לנו רשימת מספרים ונרצה להדפיס את סכום המספרים החיוביים. נשתמש בהצהרות continue כדי לדלג על הלולאה for למספרים שליליים.
nums = [1, 2, -3, 4, -5, 6]
sum_positives = 0
for num in nums:
if num < 0:
continue
sum_positives += num
print(f'Sum of Positive Numbers: {sum_positives}')
6. לולאת Python עם בלוק else
ניתן להשתמש בבלוק else עם לולאת for של Python. הבלוק else מתבצע רק כאשר ה־לולאה for אינה מסתיימת באמצעות הצהרת השבר.
נניח שיש לנו פונקציה להדפיס את סכום המספרים אם ורק אם כל המספרים הם זוגיים.
ניתן להשתמש בהצהרת השבר כדי לסיים את הלולאה for אם מספר אי־זוגי נמצא. נוכל להדפיס את סכום המספרים בחלק הelse כך שהוא יודפס רק כאשר הלולאה for מתבצעת באופן רגיל.
def print_sum_even_nums(even_nums):
total = 0
for x in even_nums:
if x % 2 != 0:
break
total += x
else:
print("For loop executed normally")
print(f'Sum of numbers {total}')
# זה ידפיס את סכום המספרים
print_sum_even_nums([2, 4, 6, 8])
# זה לא ידפיס את סכום המספרים בשל מספר אי־זוגי ברצף
print_sum_even_nums([2, 4, 5, 8])
# פלט
# הלולאה for בוצעה באופן רגיל
# סכום המספרים הוא 20
מסקנה
הלולאה for ב־Python דומה מאוד ללולאות בשפות תכנות אחרות. ניתן להשתמש בהצהרות השבר וההמשך עם הלולאה for כדי לשנות את הביצוע. אולם, ב־Python, יש לנו גם בלוק else אופציונלי בלולאה for.
I hope you have gained some interesting ideas from the tutorial above. If you have any questions, let us know in the comments below.
Source:
https://www.digitalocean.com/community/tutorials/python-for-loop-example