לולאת for
בדומה לשפות אחרות, גם בפייתון יש לולאת for. בפייתון, לולאת for עובדת על רשימות ,
שהן כמו שראינו, טיפוס נתונים יעיל מאוד. בכך שונה הלולאה for בפייתון מלולאות for בשפות אחרות, ומזכירה
יותר לולאות foreach.
>>> li = ['a', 'b', 'e']
>>> for s in li:
... print s
a
b
e
>>> print "\n".join(li)
a
b
e
העבירו את העכבר על שורות הקוד המסומנות כדי לקבל
הסברים
התחביר של לולאת for דומה
לתחביר של הכללת
רשימות
. Li היא רשימה, ו-s תקבל את ערכו
של כל איבר ברשימה לפי התור, החל מהאיבר הראשון.
בדומה למבנה if, for היא פקודה מורכבת . הבלוק המוזח שלאחר שורת ה-for עצמה יכול להכיל כל מספר של שורות החל
מ-1.
שורה זו מבצעת את אותה הפעולה כמו לולאת ה-for שמעליה. זו דוגמה הממחישה שלולאות for אינן שכיחות בפייתון, שכן ישנם מבנים רבים פשוטים
ואלגנטים המבצעים את מרבית הפעולות שהיא מאפשרת.
מונים פשוטים
>>> for i in range(5): ... print i
0
1
2
3
4 >>> li =
['a', 'b', 'c', 'd', 'e']
>>> for i in range(len(li)):
... print li[i]
a
b
c
d
e
העבירו את העכבר על שורות
הקוד המסומנות כדי לקבל הסברים
for מאפשרת ביצוע לולאה "מונה", כפי ש-for מבצעת בשפות אחרות כגון C. Range מחזירה, כזכור,
רשימה של מספרים שלמים, שעל גביה פועלת לולאת ה-for.
זו דוגמה מה אסור לבצע – זו פעולה מיותרת. For מאפשרת ביצוע איטרציה על פני הרשימה בלי
שימוש באינדקסים.
איטרציה על מילון באמצעות לולאת
for
>>> for k, v in os.environ.items():
... print "%s=%s" % (k, v)
USERPROFILE=C:\Documents and Settings\mpilgrim
OS=Windows_NT
COMPUTERNAME=MPILGRIM
USERNAME=mpilgrim
[...snip...]
>>> print "\n".join(["%s=%s" % (k, v) for k, v in os.environ.items()])
USERPROFILE=C:\Documents and Settings\mpilgrim
OS=Windows_NT
COMPUTERNAME=MPILGRIM
USERNAME=mpilgrim
[...snip...]
העבירו את העכבר על שורות
הקוד המסומנות כדי לקבל הסברים
os.environment הוא מילון המחזיק את משתני
הסביבה המוגדרים כרגע במערכת ההפעלה. os.environment.items() מחזירה רשימה של רשומות.
לולאת ה-for מבצעת איטרציה על פני הרשימה הזו. בכל סיבוב, הלולאה
מקצה את הערך הראשון ברשומה למשתנה k ואת הערך השני למשתנה v.
בעזרת השמה מרובת משתנים, והכללת רשימות ניתן להחליף את לולאת
ה-for כולה בביטוי יחיד. הבחירה בין האפשרויות
היא עניין סגנוני.
|