לולאה מקוננת
חלק מהיחידה יסודות במסלול ה-Python של Coddy. שיעור 41 מתוך 77.
לולאה מקוננת היא לולאה בתוך לולאה אחרת. הלולאה הפנימית משלימה את כל האיטרציות שלה עבור כל איטרציה של הלולאה החיצונית.
נתחיל בלולאה מקוננת פשוטה כדי להבין את הרעיון:
rows = 3
cols = 2
# לולאה חיצונית
for i in range(rows):
print(f"Outer loop iteration: {i}")
# לולאה פנימית
for j in range(cols):
print(f" Inner loop iteration: {j}")כשתריצו את הקוד הזה, תראו:
Outer loop iteration: 0
Inner loop iteration: 0
Inner loop iteration: 1
Outer loop iteration: 1
Inner loop iteration: 0
Inner loop iteration: 1
Outer loop iteration: 2
Inner loop iteration: 0
Inner loop iteration: 1שימו לב שבכל איטרציה של הלולאה החיצונית, הלולאה הפנימית משלימה את כל האיטרציות שלה. לכל לולאה יש מונה משלה: j מתחיל מחדש מ־0 בכל פעם שהלולאה החיצונית פועלת, בעוד ש־rows ו־cols נשארים ללא שינוי ורק מציינים ללולאות מתי לעצור.
עכשיו נראה דוגמה מעשית — הדפסת תבנית פשוטה:
# הדפס מלבן של כוכביות בגודל 2x3
for row in range(2): # 2 שורות
line = ""
for col in range(3): # 3 עמודות
line += "*"
print(line)
# פלט:
# ***
# ***הלולאה החיצונית קובעת כמה שורות נדפיס, והלולאה הפנימית בונה כל שורה באמצעות הוספת כוכביות.
אתגר
קלכתבו קוד שמדפיס תבנית מלבנית של כוכביות (*) באמצעות לולאות מקוננות.
התוכנית שלכם צריכה:
- לקרוא שני מספרים שלמים:
rowsו-cols - להשתמש במבנה של לולאות מקוננות כדי להדפיס את התבנית
- הלולאה החיצונית צריכה לעבור על כל שורה
- הלולאה הפנימית צריכה לבנות כל שורה עם מספר הכוכביות המתאים
- להדפיס כל שורה שהושלמה
לדוגמה: אם הקלט הוא 3 שורות ו-4 עמודות, הפלט צריך להיות:
****
****
****השתמשו במונה חדש לכל לולאה (לדוגמה, i עבור השורות ו-j עבור הכוכביות בשורה) והשוו אותו ל-rows או ל-cols. אל תשנו את rows ואת cols עצמם: כל שורה צריכה שוב את cols.
נסו בעצמכם
# קבלו קלט עבור שורות ועמודות
rows = int(input())
cols = int(input())
# כתבו כאן את הלולאות המקוננות שלכם
# לולאה חיצונית עבור שורות
# לולאה פנימית עבור עמודותהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: קומפיילר Python אונליין