Expand Up
@@ -26,7 +26,7 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" הנה שורה שתראה לנו קצת שונה תחבירית מכל מה שהכרנו עד עכשיו:\n",
" הנה שורה שתיראה לנו קצת שונה תחבירית מכל מה שהכרנו עד עכשיו:\n",
"</p>"
]
},
Expand All
@@ -45,7 +45,7 @@
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" בצד ימין יש tuple שמכיל שני איברים, ואנחנו מבצעים השמה לשני משתנים ששמותיהם <var>country</var> ו־<var>population</var>.<br>\n",
" אמנם לא הייתי נותן לפיסת הקוד הזו את תואר פיסת הקוד הנאה בעולם, אבל נראה שפייתון יודע להריץ אותה:<br>\n",
" אומנם לא הייתי מעניק לפיסת הקוד הזו את תואר פיסת הקוד הנאה בעולם, אבל נראה שפייתון יודעת להריץ אותה:<br>\n",
"</p>"
]
},
Expand Down
Expand Up
@@ -80,7 +80,7 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" התחביר שמאפשר לפייתון לפרק מבנה ולבצע השמה של האיברים שבו לכמה שמות משתנים במקביל , קיבל את השם <dfn>unpacking</dfn>.\n",
" התחביר שמאפשר לפייתון לפרק מבנה ולבצע השמה של האיברים שבו לכמה שמות משתנים בו־זמנית , קיבל את השם <dfn>unpacking</dfn>.\n",
"</p>"
]
},
Expand All
@@ -103,8 +103,8 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" מתכנתים רבים מנצלים את הנוחות שב־unpacking, מה שגורם לו להופיע בקוד שתמצאו \"בעולם האמיתי\" פעמים רבות .<br>\n",
" ניתן לבצע השמה לכמה משתנים שנרצה במקביל :\n",
" מתכנתים רבים מנצלים את הנוחות שב־unpacking, ולכן תמצאו שהוא מופיע פעמים רבות בקוד \"בעולם האמיתי\".<br>\n",
" אפשר לבצע השמה לכמה משתנים שנרצה בו־זמנית :\n",
"</p>"
]
},
Expand Down
Expand Up
@@ -195,8 +195,8 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" שימוש מקובל מאוד ל־unpacking אותו כבר הספקתם לראות בעבר, מתרחש בלולאות for.<br>\n",
" ניצור רשימה של tuple־ים, בה כל tuple ייצג מדינה ואת כמות האנשים החיים בה:\n",
" שימוש מקובל מאוד ל־unpacking, שאותו כבר הספקתם לראות בעבר, מתרחש בלולאות for.<br>\n",
" ניצור רשימה של tuple־ים, שבה כל tuple ייצג מדינה ואת מספר האנשים החיים בה:\n",
"</p>"
]
},
Expand All
@@ -219,7 +219,7 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
"בעולם ללא unpacking, היינו צריכים לכתוב את הקוד הבא :\n",
"בעולם ללא unpacking, היינו צריכים לכתוב כך :\n",
"</p>"
]
},
Expand Down
Expand Up
@@ -259,7 +259,7 @@
"metadata": {},
"source": [
"<table style=\"font-size: 1.5rem; border: 0px solid black; border-spacing: 0px;\">\n",
" <caption style=\"direction: rtl; text-align: center;\">תצוגה על המשתנה <var>countries_with_population</var> ועל צורת הפירוק שלו</caption>\n",
" <caption style=\"direction: rtl; text-align: center;\">תצוגה של המשתנה <var>countries_with_population</var> ושל צורת הפירוק שלו</caption>\n",
" <tr>\n",
" <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: left; border-bottom: 1px solid;\">0</td>\n",
" <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: left; border-left: 1px solid #555555; border-bottom: 1px solid;\">1</td>\n",
Expand Down
Expand Up
@@ -357,7 +357,7 @@
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" באיור למעלה, התאים האדומים מפורקים לתוך המשתנה <var>country</var> והתאים הירוקים לתוך המשתנה <var>population</var>.<br>\n",
" כל איטרציה של הלולאה תגרום לפירוק של צמד אחד מתוך הרשימה, והשמתם בהתאמה לתוך צמד המשתנים שבראש לולאת ה־for.\n",
" כל איטרציה של הלולאה תגרום לפירוק של צמד אחד מתוך הרשימה, ולהשמתו בהתאמה לתוך צמד המשתנים שבראש לולאת ה־for.\n",
"</p>"
]
},
Expand All
@@ -373,7 +373,7 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" הרעיון של unpacking הופך להיות שימושי מאוד כשאנחנו רוצים לעבור על המפתח והערך של מילון בו זמנית .<br>\n",
" הרעיון של unpacking נעשה שימושי מאוד כשאנחנו רוצים לעבור בו־זמנית על המפתח ועל הערך של מילון.<br>\n",
" כל שנצטרך לעשות כדי לקבל את המפתח לצד הערך בכל איטרציה, זה להשתמש בפעולה <code>items</code> על המילון:\n",
"</p>"
]
Expand Down
Expand Up
@@ -414,8 +414,8 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" המקרה הזה לא שונה מהמקרים הקודמים שראינו, אבל חשבתי שיהיה נחמד לראות אותו במפורש .<br>\n",
" הפעם נקח פונקציה שמחזירה tuple, ונשתמש ב־unpacking כדי לפרק את הערכים שהיא מחזירה למשתנים.<br>\n",
" המקרה הזה לא שונה מהמקרים הקודמים שראינו, אבל חשבתי שיהיה נחמד לראות אותו מפורשות .<br>\n",
" הפעם ניקח פונקציה שמחזירה tuple, ונשתמש ב־unpacking כדי לפרק את הערכים שהיא מחזירה למשתנים.<br>\n",
"</p>"
]
},
Expand Down
Expand Up
@@ -503,8 +503,8 @@
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" הגדרנו פונקציה שמדפיסה לנו יפה מיקומים לפי x ו־y שהיא מקבלת.<br>\n",
" המימוש הגיוני, אבל אוי א בראך! השימוש מאוד לא נוח!<br>\n",
" כל פעם אנחנו צריכים לפרק את ה־tuple שמכיל את המיקום ל־2 איברים, ולשלוח כל אחד מהם בנפרד.\n",
" המימוש הגיוני, אבל אוי א בראך! השימוש לא מאוד נוח!<br>\n",
" בכל פעם אנחנו צריכים לפרק את ה־tuple שמכיל את המיקום ל־2 איברים, ולשלוח כל אחד מהם בנפרד.\n",
"</p>"
]
},
Expand Down
Expand Up
@@ -542,7 +542,7 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" נראה מוזר? זו לא טעות, זהו באמת תחביר שמעולם לא ראינו עדיין !<br>\n",
" נראה מוזר? זו לא טעות, זהו באמת תחביר שעדיין לא ראינו!<br>\n",
" הכוכבית מפרקת את ה־tuple שהגדרנו, <var>treasure_location</var>, ושולחת לארגומנט <var>x</var> את הערך הראשון ולארגומנט <var>y</var> את הערך השני.\n",
"</p>"
]
Expand Down
Expand Up
@@ -640,7 +640,7 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" אין מנוס, דנו אותנו לחיי עבדות של פירוק מילונים ושליחת ערכיהם לפונקציות! 😢\n",
" אין מנוס, דנו אותנו לחיי עבדות של פירוק מילונים ולשליחת ערכיהם לפונקציות! 😢\n",
"</p>"
]
},
Expand Down
Expand Up
@@ -671,7 +671,7 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" במקרה המאוד מיוחד של מילון, ניתן לשלוח לפונקציה את הפרמטרים בעזרת unpacking עם שתי כוכביות.<br>\n",
" במקרה המיוחד מאוד של מילון, אפשר לשלוח לפונקציה את הפרמטרים בעזרת unpacking עם שתי כוכביות.<br>\n",
" המפתחות של המילון צריכים לציין את שם הפרמטרים של הפונקציה, והערכים במילון יהיו הערך שיועבר לאותם פרמטרים:\n",
"</p>"
]
Expand Down
Expand Up
@@ -704,7 +704,7 @@
" מה קרה פה?<br>\n",
" באיטרציה הראשונה <var>location</var> היה <code>{'x': 36.671111, 'y': 65.808056}</code>.<br>\n",
" הפונקציה <code>print_treasure_locations</code> מחכה שיעבירו לה ערך לפרמטר <var>x</var> ולפרמטר <var>y</var>.<br>\n",
" ה־unpacking שעשינו בעזרת שתי הכוכביות העביר את הערך של המפתח <code>'x'</code> במילון לפרמטר <var>x</var>, ואת הערך שהיה תחת המפתח <code>'y'</code> במילון לפרמטר <var>y</var>.\n",
" ה־unpacking שעשינו בעזרת שתי הכוכביות העביר את הערך של המפתח <code>'x'</code> במילון לפרמטר <var>x</var>, ואת הערך של המפתח <code>'y'</code> במילון לפרמטר <var>y</var>.\n",
"</p>"
]
},
Expand Down
Expand Up
@@ -742,7 +742,7 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" אנחנו רגילים שפייתון די מתירני , אבל על unpacking תקין הוא לא מוותר .<br>\n",
" אנחנו רגילים שפייתון די סובלנית , אבל על unpacking תקין היא לא מוותרת .<br>\n",
" בדוגמה הבאה אנחנו מנסים לחלץ שני איברים לתוך שלושה משתנים, וזה לא נגמר טוב:\n",
"</p>"
]
Expand All
@@ -761,7 +761,7 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" נקבל שגיאה דומה אך שונה כשננסה לחלץ מספר לא נכון של ארגומנטים לתוך פונקציה:\n",
" נקבל שגיאה דומה, אך שונה, כשננסה לחלץ מספר לא נכון של ארגומנטים לתוך פונקציה:\n",
"</p>"
]
},
Expand Down
Expand Up
@@ -814,14 +814,22 @@
"</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
"הפונקציה בלי unpacking:\n",
"</p>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def fibonacci_no_unpacking(number):\n",
" # הפונקציה בלי unpacking\n",
" a = 1\n",
" b = 1\n",
" total = 0\n",
Expand All
@@ -830,11 +838,25 @@
" temp = a\n",
" a = b\n",
" b = temp + b\n",
" return total\n",
"\n",
"\n",
" return total"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
"הפונקציה עם unpacking:\n",
"</p>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def fibonacci_sum(number):\n",
" # הפונקציה עם unpacking\n",
" a, b = 1, 1\n",
" total = 0\n",
" while a <= number:\n",
Expand Down
Expand Up
@@ -864,10 +886,10 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" לפניכם tuple המכיל מספר מילונים, כאשר כל מילון מייצג דמות חשודה ברצח.<br>\n",
" לפניכם tuple המכיל כמה מילונים, כאשר כל מילון מייצג דמות חשודה ברצח.<br>\n",
" בתוך כל אחד מהמילונים, תחת המפתח <em>evidences</em>, ישנו tuple שבו שני איברים.<br>\n",
" האיבר הראשון הוא הנשק שנתפס על ידי המשטרה, והאיבר השני הוא המיקום המרכזי בו הדמות הייתה באותו יום .<br>\n",
" בהנתן שהרצח בוצע על ידי אקדח דרינגר (derringer) ב־Petersen House, הדפיסו רק את שמות האנשים שעדיין חשודים ברצח.<br>\n",
" האיבר הראשון הוא הנשק שתפסה המשטרה, והאיבר השני הוא המיקום המרכזי שבו הייתה הדמות באותו היום .<br>\n",
" בהינתן שהרוצח השתמש באקדח דרינגר (derringer) ב־Petersen House, הדפיסו רק את שמות האנשים שעדיין חשודים ברצח.<br>\n",
" השתדלו להשתמש ב־unpacking לפחות פעמיים.\n",
"</p>"
]
Expand All
@@ -890,13 +912,13 @@
"metadata": {},
"source": [
"<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
" לנוחיותכם, הנה פונקציה שמקבלת כלי נשק ומיקום, ובודקת האם הראיות תואמות:\n",
" לנוחיותכם, הנה פונקציה שמקבלת כלי נשק ומיקום, ובודקת אם הראיות תואמות:\n",
"</p>"
]
},
{
"cell_type": "code",
"execution_count": 189 ,
"execution_count": null ,
"metadata": {},
"outputs": [],
"source": [
Expand All
@@ -921,7 +943,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4 "
"version": "3.7.6 "
}
},
"nbformat": 4,
Expand Down