Skip to content

Commit ac9675b

Browse files
author
Yam Mesicka
committed
WIP: Add notebook about variables.
1 parent f36eb44 commit ac9675b

File tree

1 file changed

+273
-0
lines changed

1 file changed

+273
-0
lines changed

week1/4_Variables.ipynb

Lines changed: 273 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,273 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"<img src=\"images/logo.png\" alt=\"לוגו של מיזם לימוד הפייתון. נחש מצויר בצבעי צהוב וכחול, הנע בין האותיות של שם הקורס: לומדים פייתון. הסלוגן המופיע מעל לשם הקורס הוא מיזם לימוד תכנות בחינם ובעברית.\">"
8+
]
9+
},
10+
{
11+
"cell_type": "markdown",
12+
"metadata": {},
13+
"source": [
14+
"# <p style=\"align: right; direction: rtl; float: right;\">משתנים</p>"
15+
]
16+
},
17+
{
18+
"cell_type": "markdown",
19+
"metadata": {},
20+
"source": [
21+
"<p style=\"text-align: right; direction: rtl; float: right;\">\n",
22+
"נניח שאנחנו רוצים לחשב את השטח של הפיצה שלנו לפי אורך המשולש.<br>\n",
23+
"כידוע, ניתן לחשב מה נפח הפיצה שלנו בעזרת הנוסחה\n",
24+
" $pi \\times z \\times z \\times a$,\n",
25+
"כאשר $z$ הוא אורך המשולש ו־$a$ הוא גובה המשולש.<br>\n",
26+
"pi, או $\\pi$, הוא מספר קבוע שנקרא \"פאי\", וקרוב ל־3.141592653589793. בפועל יש לו אינסוף ספרות אחרי הנקודה, אבל אנחנו נסתפק באלו.<br>\n",
27+
"נניח שאורכו של המשולש הוא 5 מטרים, ועוביו הוא 2 מטרים (זו למעשה עוגת פיצה. אנחנו אוהבים!)<br>\n",
28+
"בואו ננסה לחשב את גודלה של הפיצה:\n",
29+
"</p>"
30+
]
31+
},
32+
{
33+
"cell_type": "code",
34+
"execution_count": 21,
35+
"metadata": {},
36+
"outputs": [
37+
{
38+
"name": "stdout",
39+
"output_type": "stream",
40+
"text": [
41+
"157.079632679\n"
42+
]
43+
}
44+
],
45+
"source": [
46+
"print(3.14159265358*5*5*2)"
47+
]
48+
},
49+
{
50+
"cell_type": "markdown",
51+
"metadata": {},
52+
"source": [
53+
"<img src=\"images/pizza_cake.jpg\" alt=\"פיצה עבה מאוד, עם הרבה גבינה ותוספות של עגבנייה, זיתים וגמבה.\" width=\"40%\">"
54+
]
55+
},
56+
{
57+
"cell_type": "markdown",
58+
"metadata": {},
59+
"source": [
60+
"<p style=\"text-align: right; direction: rtl; float: right;\">\n",
61+
"אך **אבוי**! (אהבתם את הדרמטיות?)<br>\n",
62+
"מישהו אחר שיבוא לקוד שלכם, עלול להתבלבל מכמות המספרים הלא מובנים בעליל שכתובים שם.<br>\n",
63+
"יותר מזה, אם תרצו לחשב את גודלן של פיצות רבות נוספות, תצטרכו לכתוב את פאי המכוער (סליחה פאי) פעמים רבות בקוד.\n",
64+
"</p>"
65+
]
66+
},
67+
{
68+
"cell_type": "markdown",
69+
"metadata": {},
70+
"source": [
71+
"## <p style=\"align: right; direction: rtl; float: right;\">השמה</p>"
72+
]
73+
},
74+
{
75+
"cell_type": "markdown",
76+
"metadata": {},
77+
"source": [
78+
"<p style=\"text-align: right; direction: rtl; float: right;\">\n",
79+
"למזלנו, בפייתון יש דרך לתת לערכים שם, ממש כמו תווית שכזו. העיקרון הזה נקרא \"<dfn>משתנים</dfn>\", ויש לו שימושים רבים נוספים שנגלה בהמשך.<br>\n",
80+
"בואו נראה דוגמה של איך אנחנו נותנים לערך \"פאי\" שם, ואיך מיד לאחר־מכן אנחנו משתמשים בו.\n",
81+
"</p>"
82+
]
83+
},
84+
{
85+
"cell_type": "code",
86+
"execution_count": 22,
87+
"metadata": {},
88+
"outputs": [
89+
{
90+
"name": "stdout",
91+
"output_type": "stream",
92+
"text": [
93+
"157.079632679\n"
94+
]
95+
}
96+
],
97+
"source": [
98+
"pi = 3.14159265358\n",
99+
"print(pi*5*5*2)"
100+
]
101+
},
102+
{
103+
"cell_type": "markdown",
104+
"metadata": {},
105+
"source": [
106+
"<p style=\"text-align: right; direction: rtl; float: right;\">\n",
107+
"דבר ראשון שכדאי לשים לב אליו, זה שלמרות שהשתמשנו בסימן `=`, השורה הראשונה היא לא שוויון מהסוג שאנחנו רגילים אליו.<br>\n",
108+
"משמעות הסימן בתכנות שונה לחלוטין, ונקראת \"<dfn>השמה</dfn>\". בהשמה אנחנו שמים את הערך שנמצא בצד ימין של השווה, בתוך **משתנה** ששמו הוזכר בצד שמאל של השווה.<br>\n",
109+
"אחרי שביצענו את הפעולה הזו, כל פעם שנכתוב את שמו של המשתנה, פייתון ידמיין את מה שכתוב שם *כאילו* רשמנו את הערך שנמצא בתוכו.\n",
110+
"</p>"
111+
]
112+
},
113+
{
114+
"cell_type": "markdown",
115+
"metadata": {},
116+
"source": [
117+
"<p style=\"text-align: right; direction: rtl; float: right;\">\n",
118+
"בואו נעשה אותו דבר גם עבור שאר הערכים:\n",
119+
"</p>"
120+
]
121+
},
122+
{
123+
"cell_type": "code",
124+
"execution_count": 18,
125+
"metadata": {},
126+
"outputs": [
127+
{
128+
"name": "stdout",
129+
"output_type": "stream",
130+
"text": [
131+
"157.079632679\n"
132+
]
133+
}
134+
],
135+
"source": [
136+
"pi = 3.14159265358\n",
137+
"z = 5\n",
138+
"a = 2\n",
139+
"print(pi*z*z*a)"
140+
]
141+
},
142+
{
143+
"cell_type": "markdown",
144+
"metadata": {},
145+
"source": [
146+
"<p style=\"text-align: right; direction: rtl; float: right;\">\n",
147+
"או אם בא לנו להיות אפילו יותר מובנים:\n",
148+
"</p>"
149+
]
150+
},
151+
{
152+
"cell_type": "code",
153+
"execution_count": null,
154+
"metadata": {},
155+
"outputs": [],
156+
"source": [
157+
"pi = 3.14159265358\n",
158+
"length = 5 # אורך\n",
159+
"thickness = 2 # עובי\n",
160+
"print(pi * length * length * thickness)"
161+
]
162+
},
163+
{
164+
"cell_type": "markdown",
165+
"metadata": {},
166+
"source": [
167+
"<p style=\"text-align: right; direction: rtl; float: right;\">\n",
168+
"יצרנו פה למעשה שלושה משתנים, ובכל משתנה שמרנו ערך.\n",
169+
"</p>"
170+
]
171+
},
172+
{
173+
"cell_type": "markdown",
174+
"metadata": {},
175+
"source": [
176+
"### <p style=\"align: right; direction: rtl; float: right;\">מונחים</p>"
177+
]
178+
},
179+
{
180+
"cell_type": "markdown",
181+
"metadata": {},
182+
"source": [
183+
"<dl style=\"text-align: right; direction: rtl; float: right; white-space: nowrap;\">\n",
184+
"<dt>אופרטור ההשמה</dt><dd>סתם שם מפחיד שמתאר את הסימן `=`.</dd>\n",
185+
"<dt>שם המשתנה</dt><dd>הדבר שמופיע משמאל לאופרטור ההשמה.</dd>\n",
186+
"<dt>ערך המשתנה</dt><dd>התוכן של המשתנה שבסופו של דבר המחשב יזכור.</dd>\n",
187+
"</dl>"
188+
]
189+
},
190+
{
191+
"cell_type": "markdown",
192+
"metadata": {},
193+
"source": [
194+
"## <p style=\"align: right; direction: rtl; float: right;\">איך משתנים עובדים?</p>"
195+
]
196+
},
197+
{
198+
"cell_type": "markdown",
199+
"metadata": {},
200+
"source": [
201+
"<p style=\"text-align: right; direction: rtl; float: right;\">\n",
202+
"אפשר לדמיין משתנים כמו ארון מגירות גדול, כשעל כל מגירה יש מדבקה, ועליה כתוב שמה של המגירה.<br>\n",
203+
"כל פעם שאתם מציינים שם של מגירה, פייתון הולך לארון המגירות, מציץ מה יש במגירה עם המדבקה שבחרתם, ולוקח את הערך שנמצא שם.<br>\n",
204+
"כל פעם שאתם מבצעים *השמה*, אתם אומרים לפייתון לשים במגירה עם המדבקה בשם שציינתם ערך מסוים.<br>\n",
205+
"אם כך, לצורך האנלוגיה הזו, המדבקה היא **שם המשתנה** ותוכן המגירה הוא **ערך המשתנה**.\n",
206+
"</p>"
207+
]
208+
},
209+
{
210+
"cell_type": "markdown",
211+
"metadata": {},
212+
"source": [
213+
"<figure>\n",
214+
" <img src=\"images/cabins.svg\" width=\"200px\" alt=\"איור להמחשה של ארון מגירות פשוט, עם שני טורים ושתי שורות. מעל הארון מנורה וספרים.\">\n",
215+
" <figcaption style=\"text-align: center; direction: rtl;\">אמנם בלי מדבקות, אבל אנחנו סומכים על כישורי הדמיון שלכם.</figcaption>\n",
216+
"</figure>"
217+
]
218+
},
219+
{
220+
"cell_type": "markdown",
221+
"metadata": {},
222+
"source": [
223+
"----------\n",
224+
"<p style=\"text-align: right; direction: rtl; float: right;\">\n",
225+
"מכאן ומטה אנחנו עדיין בטיוטה\n",
226+
"</p>"
227+
]
228+
},
229+
{
230+
"cell_type": "markdown",
231+
"metadata": {},
232+
"source": [
233+
"<ol style=\"text-align: right; direction: rtl; float: right; white-space: nowrap;\">\n",
234+
"<li>לתת לערך מסוים שם, כדי שנזכור מה מטרתו כשנחזור אליו אחר־כך.</li>\n",
235+
"<li>לפרק את הביטוי לחתיכות קטנות יותר.</li>\n",
236+
"<li>לשמור על ערך בצד, ולהשתמש בו בשלב מאוחר יותר.</li>\n",
237+
"</ol>"
238+
]
239+
},
240+
{
241+
"cell_type": "code",
242+
"execution_count": null,
243+
"metadata": {
244+
"collapsed": true
245+
},
246+
"outputs": [],
247+
"source": [
248+
"## REMEMBER THE DRAWER"
249+
]
250+
}
251+
],
252+
"metadata": {
253+
"kernelspec": {
254+
"display_name": "Python [conda root]",
255+
"language": "python",
256+
"name": "conda-root-py"
257+
},
258+
"language_info": {
259+
"codemirror_mode": {
260+
"name": "ipython",
261+
"version": 3
262+
},
263+
"file_extension": ".py",
264+
"mimetype": "text/x-python",
265+
"name": "python",
266+
"nbconvert_exporter": "python",
267+
"pygments_lexer": "ipython3",
268+
"version": "3.5.3"
269+
}
270+
},
271+
"nbformat": 4,
272+
"nbformat_minor": 2
273+
}

0 commit comments

Comments
 (0)