Skip to content

Commit 4e78afc

Browse files
committed
Add week5 notebooks
1 parent 45711c4 commit 4e78afc

16 files changed

+84634
-0
lines changed

week5/1_Modules.ipynb

Lines changed: 868 additions & 0 deletions
Large diffs are not rendered by default.

week5/2_Functions_Part_2.ipynb

Lines changed: 1526 additions & 0 deletions
Large diffs are not rendered by default.

week5/3_Generators.ipynb

Lines changed: 1277 additions & 0 deletions
Large diffs are not rendered by default.

week5/Summary.ipynb

Lines changed: 263 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,263 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"<img src=\"images/logo.jpg\" style=\"display: block; margin-left: auto; margin-right: auto;\" alt=\"לוגו של מיזם לימוד הפייתון. נחש מצויר בצבעי צהוב וכחול, הנע בין האותיות של שם הקורס: לומדים פייתון. הסלוגן המופיע מעל לשם הקורס הוא מיזם חינמי ללימוד תכנות בעברית.\">"
8+
]
9+
},
10+
{
11+
"cell_type": "markdown",
12+
"metadata": {},
13+
"source": [
14+
"# <p style=\"text-align:right;direction:rtl;\"> תרגילים </p> "
15+
]
16+
},
17+
{
18+
"cell_type": "markdown",
19+
"metadata": {},
20+
"source": [
21+
"## <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">הקדמה</span>"
22+
]
23+
},
24+
{
25+
"cell_type": "markdown",
26+
"metadata": {},
27+
"source": [
28+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
29+
" התרגול השבוע כרוך בהשקעת מאמץ ניכר, ומטרתו לחזור ולחזק את היסודות שנלמדו בשבועות קודמים.<br>\n",
30+
" השבוע ניצב בפניכם אתגר חדש: חזקו את יכולות החיפוש שלכם באינטרנט ובתיעוד של פייתון, ונסו למצוא מודולים שיסייעו לכם בפתרון הבעיות.<br>\n",
31+
" זוהי יכולת חשובה מאוד עבור מתכנתים, וזהו בהחלט חלק נכבד מהאתגר בתרגילים שמופיעים לפניכם במחברת הזו.\n",
32+
"</p>"
33+
]
34+
},
35+
{
36+
"cell_type": "markdown",
37+
"metadata": {},
38+
"source": [
39+
"## <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">מלחמה וזהו?</span>"
40+
]
41+
},
42+
{
43+
"cell_type": "markdown",
44+
"metadata": {},
45+
"source": [
46+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
47+
" פתרו את התרגיל \"מלחמה וזהו\" משבוע 4, הפעם עם הידע החדש שרכשתם.\n",
48+
"</p>"
49+
]
50+
},
51+
{
52+
"cell_type": "markdown",
53+
"metadata": {},
54+
"source": [
55+
"## <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">כלים שלובים</span>"
56+
]
57+
},
58+
{
59+
"cell_type": "markdown",
60+
"metadata": {},
61+
"source": [
62+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
63+
" כתבו פונקציה בשם <code>interleave</code> שמקבלת פרמטר iterable אחד או יותר, ומחזירה רשימה של האיברים שזורים זה בזה.\n",
64+
"</p>"
65+
]
66+
},
67+
{
68+
"cell_type": "markdown",
69+
"metadata": {},
70+
"source": [
71+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
72+
"לדוגמה, עבור הקריאה <code dir=\"ltr\" style=\"direction: ltr; text-align: left;\">interleave('abc', [1, 2, 3], ('!', '@', '#'))</code> יוחזר הערך: <samp dir=\"ltr\" style=\"direction: ltr; text-align: left;\">['a', 1, '!', 'b', 2, '@', 'c', 3, '#']</samp>.\n",
73+
"</p>"
74+
]
75+
},
76+
{
77+
"cell_type": "markdown",
78+
"metadata": {},
79+
"source": [
80+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
81+
" ממשו גרסה של generator ל־interleave.\n",
82+
"</p>"
83+
]
84+
},
85+
{
86+
"cell_type": "markdown",
87+
"metadata": {},
88+
"source": [
89+
"## <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">שובו של קשטן</span>"
90+
]
91+
},
92+
{
93+
"cell_type": "markdown",
94+
"metadata": {},
95+
"source": [
96+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
97+
" בחנות של אדון קשטן ישנו מילון המכיל את כל המוצרים בחנות, ואת המלאי של כל מוצר.<br>\n",
98+
" רשמו פונקציה שמקבלת את המוצרים שהתקבלו במשלוח האחרון, ומעדכנת את המלאי של אדון קשטן בהתאם לכך.\n",
99+
"</p>"
100+
]
101+
},
102+
{
103+
"cell_type": "markdown",
104+
"metadata": {},
105+
"source": [
106+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
107+
"לדוגמה:\n",
108+
"</p>"
109+
]
110+
},
111+
{
112+
"cell_type": "markdown",
113+
"metadata": {},
114+
"source": [
115+
"<ul style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
116+
" <li>עבור הקריאה <code dir=\"ltr\" style=\"direction: ltr; text-align: left;\">add_inventory({'cheese': 2, 'milk': 1}, cheese=3, chocolate=5)</code><br>\n",
117+
" יוחזר המלאי: <samp dir=\"ltr\" style=\"direction: ltr; text-align: left;\">{'cheese': 5, 'chocolate': 5, 'milk': 1}</samp>\n",
118+
" </li>\n",
119+
" <li>עבור הקריאה <code dir=\"ltr\" style=\"direction: ltr; text-align: left;\">add_inventory({'refrigerator': 7, 'goat': 1}, honey=2)</code><br>\n",
120+
" יוחזר המלאי: <samp dir=\"ltr\" style=\"direction: ltr; text-align: left;\">{'honey': 2, 'refrigerator': 7, 'goat': 1}</samp>\n",
121+
" </li>\n",
122+
"</ul>"
123+
]
124+
},
125+
{
126+
"cell_type": "markdown",
127+
"metadata": {},
128+
"source": [
129+
"## <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">הארי רציונלי אבל לא נורא</span>"
130+
]
131+
},
132+
{
133+
"cell_type": "markdown",
134+
"metadata": {},
135+
"source": [
136+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
137+
" הספרן שהיה בדרכו להביא לי את העותק הנחשק של \"<a href=\"https://rationality.co.il/\">הארי פוטר והשיטה הרציונלית</a>\" מעד.<br>\n",
138+
" הספרים התעופפו ופרקי הספרים התפזרו לכל עבר.<br>\n",
139+
" בתיקייה resources מצורף קובץ מכווץ ובו כל פרקי הסיפור, אך למרבה הצער שם הקבצים אינו תואם לתוכן שלהם.<br>\n",
140+
" שנו את שמו של כל קובץ כך ששמו החדש יהיה מספר תלתַ־ספרתי שמתאר את מספר הפרק, ואחריו את שם הפרק.<br>\n",
141+
" לדוגמה: עבור הפרק הראשון, שם הקובץ צריך להיות <samp dir=\"ltr\" style=\"direction: ltr; font-style: italic;\">001 A Day of Very Low Probability</samp>.<br>\n",
142+
" במהלך התרגיל ייתכן שתצטרכו לשלב עבודה עם כמה ספריות, ובהן כאלו שלא למדנו.\n",
143+
"</p>"
144+
]
145+
},
146+
{
147+
"cell_type": "markdown",
148+
"metadata": {},
149+
"source": [
150+
"<ul style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
151+
" <li>פתחו את קובץ ה־zip ידנית לפני תחילת העבודה, וחלצו ממנו את כל הפרקים של הספר.</li>\n",
152+
" <li>כדי לדמות תרגיל מהעולם האמיתי, הושתלו כמה בעיות שבהן תתקלו לאחר שתריצו את התוכנה שלכם. פתרו אותן בעזרת תכנות.</li>\n",
153+
"</ul>"
154+
]
155+
},
156+
{
157+
"cell_type": "markdown",
158+
"metadata": {},
159+
"source": [
160+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
161+
" טיפ: גבו את הקבצים לפני שתתחילו לעבוד עליהם.<br>\n",
162+
" רמז: <span style=\"background: black;\">אפשר לפתוח קובצי html ידנית, כקובצי טקסט.</span><br>\n",
163+
" רמז 2: <span style=\"background: black;\">כיצד משנים שמות של קבצים באמצעות פייתון?</span>\n",
164+
"</p>"
165+
]
166+
},
167+
{
168+
"cell_type": "markdown",
169+
"metadata": {},
170+
"source": [
171+
"## <span style=\"text-align: right; direction: rtl; float: right; clear: both;\">פרדוקס יום ההולדת</span>"
172+
]
173+
},
174+
{
175+
"cell_type": "markdown",
176+
"metadata": {},
177+
"source": [
178+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
179+
" מוצגת להלן אחת מהגרסאות של <a href=\"https://he.wikipedia.org/wiki/%D7%A4%D7%A8%D7%93%D7%95%D7%A7%D7%A1_%D7%99%D7%95%D7%9D_%D7%94%D7%94%D7%95%D7%9C%D7%93%D7%AA\">פרדוקס יום ההולדת</a>:\n",
180+
"</p>"
181+
]
182+
},
183+
{
184+
"cell_type": "markdown",
185+
"metadata": {},
186+
"source": [
187+
"<blockquote style=\"border-left:none !important; position: relative; padding-left: 0.5em; padding: 1.5em; border-right: 3px solid #a93226; background-color: #fbe7e6; direction: rtl; text-align: right; clear: both;\">\n",
188+
" מה הסיכוי שבכיתה שבה 23 תלמידים (חחחחח) יציינו שני תלמידים יום הולדת באותו תאריך?<br>\n",
189+
"</blockquote>"
190+
]
191+
},
192+
{
193+
"cell_type": "markdown",
194+
"metadata": {},
195+
"source": [
196+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
197+
"הנחות המוצא שלנו בפתירת הבעיה הן כדלהלן:\n",
198+
"</p>"
199+
]
200+
},
201+
{
202+
"cell_type": "markdown",
203+
"metadata": {},
204+
"source": [
205+
"<ul style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
206+
" <li>הילודה מפוזרת באופן שווה לאורך השנה (<a href=\"https://en.wikipedia.org/wiki/Birthday#Frequency\">היא לא</a>, אבל נדמיין שכן).</li>\n",
207+
" <li>כשאנחנו אומרים \"תאריך\" אנחנו מתכוונים לצירוף של החודש והיום, ללא התייחסות לשנה.<br>\n",
208+
" מי שנולד ב־1 במאי 1992 הוא בעל תאריך יום הולדת זהה למי שנולד ב־1 במאי 1995.</li>\n",
209+
"</ul>"
210+
]
211+
},
212+
{
213+
"cell_type": "markdown",
214+
"metadata": {},
215+
"source": [
216+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
217+
" הפתרון של ה\"פרדוקס\" מפתיע את רוב האנשים ששומעים עליו לראשונה.\n",
218+
"</p>"
219+
]
220+
},
221+
{
222+
"cell_type": "markdown",
223+
"metadata": {},
224+
"source": [
225+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
226+
" כתבו תוכנה שמגרילה תאריכי יום הולדת עבור 10,000 כיתות, שבכל אחת מהן לומדים 23 תלמידים.<br>\n",
227+
" מהו אחוז הכיתות שבהן ציינו 2 ימי הולדת באותו תאריך? השוו עם הפתרון המוצג בוויקיפדיה.<br>\n",
228+
" דאגו שהפתרון שלכם יתחשב בכך שקיימות שנים מעוברות.<br>\n",
229+
"</p>"
230+
]
231+
},
232+
{
233+
"cell_type": "markdown",
234+
"metadata": {},
235+
"source": [
236+
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
237+
" השתמשו בתוכנה שכתבתם כדי לחשב את הסיכויים עבור כיתות שבהן תלמיד אחד, ועד כיתות ישראליות ממוצעות שבהן 366 תלמידים.\n",
238+
"</p>"
239+
]
240+
}
241+
],
242+
"metadata": {
243+
"kernelspec": {
244+
"display_name": "Python 3",
245+
"language": "python",
246+
"name": "python3"
247+
},
248+
"language_info": {
249+
"codemirror_mode": {
250+
"name": "ipython",
251+
"version": 3
252+
},
253+
"file_extension": ".py",
254+
"mimetype": "text/x-python",
255+
"name": "python",
256+
"nbconvert_exporter": "python",
257+
"pygments_lexer": "ipython3",
258+
"version": "3.7.6"
259+
}
260+
},
261+
"nbformat": 4,
262+
"nbformat_minor": 2
263+
}

week5/images/deeper.svg

Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)