התקדמות השיעור
0% הושלם
מעבדה 1 – לולאת טווח (Range Loop)
נושא: שימוש ב־range
בתוך לולאת for
זמן מוערך: 10–20 דק׳ · דרישות: Python 3, PyCharm.
מטרות
- להבין כיצד לעבוד עם לולאת
for
ופונקצייתrange
. - לקלוט ערך מהמשתמש ולהריץ איטרציה בהתאם.
תרחיש
נכתוב סקריפט שמקבל מהמשתמש גבול עליון ומדפיס סדרת מספרים בהתאם לטווח שהוגדר.
משימות
- פתחו פרויקט חדש ב-PyCharm (או קובץ קיים) בשם לבחירתכם.
- הגדירו קובץ פייתון חדש.
- קלטו מהמשתמש מספר שישמש כגבול העליון של הטווח.
- המרו את הקלט ל־
int
. - צרו לולאת
for
עלrange(1, upper+1)
והדפיסו את הערך בכל איטרציה. - (רשות) נסו לשנות
start
/step
כדי להדפיס רק מספרים זוגיים/אי-זוגיים.
בדיקות מהירות
- קלט:
5
→ פלט:1 2 3 4 5
בשורות נפרדות. - קלט:
3
ו־step=2
→ פלט:1 3
.
קריטריוני הצלחה
- הלולאה מדפיסה סדרה נכונה לפי הקלט.
- הקוד קריא, עם שמות משתנים ברורים.
הרחבות (אופציונלי)
- הוסיפו קליטת
start
ו־step
מהמשתמש. - הדפיסו גם סכום מצטבר בסוף הלולאה.
מעבדה 2 – לולאות ברשימה מקוננת (Nested Lists)
נושא: עבודה עם לולאות מקוננות (לולאה בתוך לולאה) על רשימות מקוננות
זמן מוערך: 15–25 דק׳ · דרישות: Python 3, PyCharm.
מטרות
- להבין כיצד משלבים
for
עםrange
לעבודה על רשימות מקוננות. - ליצור מבנה נתונים דו-ממדי ולמלא אותו באמצעות לולאות.
תרחיש
נבנה רשימה מקוננת שמייצגת כיתות ותלמידים, באמצעות שתי לולאות for
— חיצונית (כיתות) ופנימית (תלמידים).
משימות
- צרו קובץ פייתון חדש בפרויקט.
- הגדירו רשימה ריקה בשם
classroom
. - צרו לולאת
for
עםrange(7)
כדי להוסיף 7 רשימות ריקות (כיתות) לתוךclassroom
. כל איטרציה מוסיפה רשימה ריקה חדשה. - בתוך הלולאה החיצונית, צרו לולאה פנימית שחוזרת מ־1 עד 10 (כולל) וממלאת את הרשימה של אותה כיתה בערכי האיטרציה. (טווח פנימי:
range(1, 11)
) - מחוץ ללולאות — הדפיסו את התוצאה הסופית של הרשימה המקוננת.
בדיקות מהירות
- אורך הרשימה החיצונית הוא 7.
- בכל כיתה (רשימה פנימית) יש 10 איברים:
[1, 2, …, 10]
. - ההדפסה הסופית מציגה 7 רשימות פנימיות מאוכלסות.
קריטריוני הצלחה
- מבנה הנתונים נוצר בדיוק לפי המפרט.
- הטווחים נכונים:
range(7)
לכיתות,range(1, 11)
לתלמידים.
הרחבות (אופציונלי)
- במקום מספרים, הכניסו מחרוזות (“Student 1” וכו׳).
- הדפיסו טבלה מסודרת: “Class #i → [students…]”.
פתרונות (ללא try/except
)
ניתן לשנות שמות משתנים/ניסוח פלט לפי הצורך פדגוגית — העיקר לשמור על הלוגיקה.
פתרון – מעבדה 1 (לולאת טווח)
# range_loop.py
upper_str = input("הזינו גבול עליון (מספר שלם חיובי): ").strip()
# ללא try/except: מניחים קלט תקין או בודקים באופן בסיסי בלבד
if upper_str.isdigit():
upper = int(upper_str)
for i in range(1, upper + 1):
print(i)
else:
print("שגיאה: יש להזין מספר שלם חיובי.")
פתרון – מעבדה 2 (רשימה מקוננת)
# nested_lists.py
classroom = [] # רשימה של כיתות (כל כיתה תהיה רשימה פנימית)
# חיצוני: 7 כיתות
for _ in range(7):
classroom.append([]) # מוסיפים כיתה חדשה (רשימה ריקה)
# פנימי: תלמידים 1..10
for student in range(1, 11):
classroom[-1].append(student)
print(classroom)
# דוגמת פלט: [[1,2,...,10], [1,2,...,10], ... (סה״כ 7 כיתות)]