פעולת range
פעמים רבות משלבים את פקודת for עם פקודה אחרת בשם range ו ונראה מה פקודה זו מבצעת (הגם שהמונח פקודה הוא לא מדויק בהמשך נלמד מה בדיוק היצור הזה) –
for num in range(5):
print (num)
>>>
0
1
2
3
4
ניתן להתייחס אל פקודת ה- range כאובייקט מיוחד המייצר בכל פעם מספר אחד בטווח המספרים מ- 0 ועד למספר שנקבנו בו בפקודת ה- range (לא כולל את המספר עצמו) – תכונה זו נקראת iteration ופקודת rang מייצרת איטרטור (iterator -אני לא אחראי לשמות). ניתן לקבוע מהיכן תתחיל הספירה, מתי היא תפסיק ובאלה קפיצות –
for num in range(1,10,2):
print (num)
>>>
1
3
5
7
9
בתוכנית למעלה ביקשנו להדפיס את המספרים החל מהמספר 1 (לא מאפס) ועד 10 (לא כולל 10) בקפיצות של 2.
אפשר לעשות דברים יותר מורכבים –
lista=["a","b","c","d"]
for i in range (len(lista)):
print (lista[ i ])
>>>
a
b
c
d
התוכנית למעלה מבצעת לולאת for יחד עם פקודת range שבמקום פרמטר מספרי הכנסנו ל- range את אורך הרשימה (len(lista שהוא במקרה הזה שווה ל – 4 וכך הצלחנו לגרום לתוכנית להדפיס את איברי הרשימה, החל מ- lista[0] ועד lista[3] . כעת גם אם נוסיף איברים לרשימה ואורכה יתארך, התוכנית עדיין תעבוד.
אפשר להשתמש בפקודת range בשילוב עם הפקודה list על מנת לייצר רשימות מספרים מהירות –
lista=list(range(10))
print (lista)
>>>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]