|
26 | 26 | "metadata": {}, |
27 | 27 | "source": [ |
28 | 28 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
29 | | - " הנה שורה שתראה לנו קצת שונה תחבירית מכל מה שהכרנו עד עכשיו:\n", |
| 29 | + " הנה שורה שתיראה לנו קצת שונה תחבירית מכל מה שהכרנו עד עכשיו:\n", |
30 | 30 | "</p>" |
31 | 31 | ] |
32 | 32 | }, |
|
45 | 45 | "source": [ |
46 | 46 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
47 | 47 | " בצד ימין יש tuple שמכיל שני איברים, ואנחנו מבצעים השמה לשני משתנים ששמותיהם <var>country</var> ו־<var>population</var>.<br>\n", |
48 | | - " אמנם לא הייתי נותן לפיסת הקוד הזו את תואר פיסת הקוד הנאה בעולם, אבל נראה שפייתון יודע להריץ אותה:<br>\n", |
| 48 | + " אומנם לא הייתי מעניק לפיסת הקוד הזו את תואר פיסת הקוד הנאה בעולם, אבל נראה שפייתון יודעת להריץ אותה:<br>\n", |
49 | 49 | "</p>" |
50 | 50 | ] |
51 | 51 | }, |
|
80 | 80 | "metadata": {}, |
81 | 81 | "source": [ |
82 | 82 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
83 | | - " התחביר שמאפשר לפייתון לפרק מבנה ולבצע השמה של האיברים שבו לכמה שמות משתנים במקביל, קיבל את השם <dfn>unpacking</dfn>.\n", |
| 83 | + " התחביר שמאפשר לפייתון לפרק מבנה ולבצע השמה של האיברים שבו לכמה שמות משתנים בו־זמנית, קיבל את השם <dfn>unpacking</dfn>.\n", |
84 | 84 | "</p>" |
85 | 85 | ] |
86 | 86 | }, |
|
103 | 103 | "metadata": {}, |
104 | 104 | "source": [ |
105 | 105 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
106 | | - " מתכנתים רבים מנצלים את הנוחות שב־unpacking, מה שגורם לו להופיע בקוד שתמצאו \"בעולם האמיתי\" פעמים רבות.<br>\n", |
107 | | - " ניתן לבצע השמה לכמה משתנים שנרצה במקביל:\n", |
| 106 | + " מתכנתים רבים מנצלים את הנוחות שב־unpacking, ולכן תמצאו שהוא מופיע פעמים רבות בקוד \"בעולם האמיתי\".<br>\n", |
| 107 | + " ניתן לבצע השמה לכמה משתנים שנרצה בו־זמנית:\n", |
108 | 108 | "</p>" |
109 | 109 | ] |
110 | 110 | }, |
|
195 | 195 | "metadata": {}, |
196 | 196 | "source": [ |
197 | 197 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
198 | | - " שימוש מקובל מאוד ל־unpacking אותו כבר הספקתם לראות בעבר, מתרחש בלולאות for.<br>\n", |
199 | | - " ניצור רשימה של tuple־ים, בה כל tuple ייצג מדינה ואת כמות האנשים החיים בה:\n", |
| 198 | + " שימוש מקובל מאוד ל־unpacking, שאותו כבר הספקתם לראות בעבר, מתרחש בלולאות for.<br>\n", |
| 199 | + " ניצור רשימה של tuple־ים, שבה כל tuple ייצג מדינה ואת כמות האנשים החיים בה:\n", |
200 | 200 | "</p>" |
201 | 201 | ] |
202 | 202 | }, |
|
219 | 219 | "metadata": {}, |
220 | 220 | "source": [ |
221 | 221 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
222 | | - "בעולם ללא unpacking, היינו צריכים לכתוב את הקוד הבא:\n", |
| 222 | + "בעולם ללא unpacking, היינו צריכים לכתוב כך:\n", |
223 | 223 | "</p>" |
224 | 224 | ] |
225 | 225 | }, |
|
357 | 357 | "source": [ |
358 | 358 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
359 | 359 | " באיור למעלה, התאים האדומים מפורקים לתוך המשתנה <var>country</var> והתאים הירוקים לתוך המשתנה <var>population</var>.<br>\n", |
360 | | - " כל איטרציה של הלולאה תגרום לפירוק של צמד אחד מתוך הרשימה, והשמתם בהתאמה לתוך צמד המשתנים שבראש לולאת ה־for.\n", |
| 360 | + " כל איטרציה של הלולאה תגרום לפירוק של צמד אחד מתוך הרשימה, והשמתו בהתאמה לתוך צמד המשתנים שבראש לולאת ה־for.\n", |
361 | 361 | "</p>" |
362 | 362 | ] |
363 | 363 | }, |
|
373 | 373 | "metadata": {}, |
374 | 374 | "source": [ |
375 | 375 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
376 | | - " הרעיון של unpacking הופך להיות שימושי מאוד כשאנחנו רוצים לעבור על המפתח והערך של מילון בו זמנית.<br>\n", |
| 376 | + " הרעיון של unpacking נעשה שימושי מאוד כשאנחנו רוצים לעבור בו־זמנית על המפתח ועל הערך של מילון.<br>\n", |
377 | 377 | " כל שנצטרך לעשות כדי לקבל את המפתח לצד הערך בכל איטרציה, זה להשתמש בפעולה <code>items</code> על המילון:\n", |
378 | 378 | "</p>" |
379 | 379 | ] |
|
415 | 415 | "source": [ |
416 | 416 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
417 | 417 | " המקרה הזה לא שונה מהמקרים הקודמים שראינו, אבל חשבתי שיהיה נחמד לראות אותו במפורש.<br>\n", |
418 | | - " הפעם נקח פונקציה שמחזירה tuple, ונשתמש ב־unpacking כדי לפרק את הערכים שהיא מחזירה למשתנים.<br>\n", |
| 418 | + " הפעם ניקח פונקציה שמחזירה tuple, ונשתמש ב־unpacking כדי לפרק את הערכים שהיא מחזירה למשתנים.<br>\n", |
419 | 419 | "</p>" |
420 | 420 | ] |
421 | 421 | }, |
|
503 | 503 | "source": [ |
504 | 504 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
505 | 505 | " הגדרנו פונקציה שמדפיסה לנו יפה מיקומים לפי x ו־y שהיא מקבלת.<br>\n", |
506 | | - " המימוש הגיוני, אבל אוי א בראך! השימוש מאוד לא נוח!<br>\n", |
507 | | - " כל פעם אנחנו צריכים לפרק את ה־tuple שמכיל את המיקום ל־2 איברים, ולשלוח כל אחד מהם בנפרד.\n", |
| 506 | + " המימוש הגיוני, אבל אוי א בראך! השימוש לא מאוד נוח!<br>\n", |
| 507 | + " בכל פעם אנחנו צריכים לפרק את ה־tuple שמכיל את המיקום ל־2 איברים, ולשלוח כל אחד מהם בנפרד.\n", |
508 | 508 | "</p>" |
509 | 509 | ] |
510 | 510 | }, |
|
542 | 542 | "metadata": {}, |
543 | 543 | "source": [ |
544 | 544 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
545 | | - " נראה מוזר? זו לא טעות, זהו באמת תחביר שמעולם לא ראינו עדיין!<br>\n", |
| 545 | + " נראה מוזר? זו לא טעות, זהו באמת תחביר שעדיין לא ראינו!<br>\n", |
546 | 546 | " הכוכבית מפרקת את ה־tuple שהגדרנו, <var>treasure_location</var>, ושולחת לארגומנט <var>x</var> את הערך הראשון ולארגומנט <var>y</var> את הערך השני.\n", |
547 | 547 | "</p>" |
548 | 548 | ] |
|
671 | 671 | "metadata": {}, |
672 | 672 | "source": [ |
673 | 673 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
674 | | - " במקרה המאוד מיוחד של מילון, ניתן לשלוח לפונקציה את הפרמטרים בעזרת unpacking עם שתי כוכביות.<br>\n", |
| 674 | + " במקרה המיוחד מאוד של מילון, ניתן לשלוח לפונקציה את הפרמטרים בעזרת unpacking עם שתי כוכביות.<br>\n", |
675 | 675 | " המפתחות של המילון צריכים לציין את שם הפרמטרים של הפונקציה, והערכים במילון יהיו הערך שיועבר לאותם פרמטרים:\n", |
676 | 676 | "</p>" |
677 | 677 | ] |
|
742 | 742 | "metadata": {}, |
743 | 743 | "source": [ |
744 | 744 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
745 | | - " אנחנו רגילים שפייתון די מתירני, אבל על unpacking תקין הוא לא מוותר.<br>\n", |
| 745 | + " אנחנו רגילים שפייתון די מתירנית, אבל על unpacking תקין היא לא מוותרת.<br>\n", |
746 | 746 | " בדוגמה הבאה אנחנו מנסים לחלץ שני איברים לתוך שלושה משתנים, וזה לא נגמר טוב:\n", |
747 | 747 | "</p>" |
748 | 748 | ] |
|
814 | 814 | "</p>" |
815 | 815 | ] |
816 | 816 | }, |
| 817 | + { |
| 818 | + "cell_type": "markdown", |
| 819 | + "metadata": {}, |
| 820 | + "source": [ |
| 821 | + "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
| 822 | + "הפונקציה בלי unpacking:\n", |
| 823 | + "</p>" |
| 824 | + ] |
| 825 | + }, |
817 | 826 | { |
818 | 827 | "cell_type": "code", |
819 | 828 | "execution_count": null, |
820 | 829 | "metadata": {}, |
821 | 830 | "outputs": [], |
822 | 831 | "source": [ |
823 | 832 | "def fibonacci_no_unpacking(number):\n", |
824 | | - " # הפונקציה בלי unpacking\n", |
825 | 833 | " a = 1\n", |
826 | 834 | " b = 1\n", |
827 | 835 | " total = 0\n", |
|
830 | 838 | " temp = a\n", |
831 | 839 | " a = b\n", |
832 | 840 | " b = temp + b\n", |
833 | | - " return total\n", |
834 | | - "\n", |
835 | | - "\n", |
| 841 | + " return total" |
| 842 | + ] |
| 843 | + }, |
| 844 | + { |
| 845 | + "cell_type": "markdown", |
| 846 | + "metadata": {}, |
| 847 | + "source": [ |
| 848 | + "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
| 849 | + "הפונקציה עם unpacking:\n", |
| 850 | + "</p>" |
| 851 | + ] |
| 852 | + }, |
| 853 | + { |
| 854 | + "cell_type": "code", |
| 855 | + "execution_count": null, |
| 856 | + "metadata": {}, |
| 857 | + "outputs": [], |
| 858 | + "source": [ |
836 | 859 | "def fibonacci_sum(number):\n", |
837 | | - " # הפונקציה עם unpacking\n", |
838 | 860 | " a, b = 1, 1\n", |
839 | 861 | " total = 0\n", |
840 | 862 | " while a <= number:\n", |
|
864 | 886 | "metadata": {}, |
865 | 887 | "source": [ |
866 | 888 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
867 | | - " לפניכם tuple המכיל מספר מילונים, כאשר כל מילון מייצג דמות חשודה ברצח.<br>\n", |
| 889 | + " לפניכם tuple המכיל כמה מילונים, כאשר כל מילון מייצג דמות חשודה ברצח.<br>\n", |
868 | 890 | " בתוך כל אחד מהמילונים, תחת המפתח <em>evidences</em>, ישנו tuple שבו שני איברים.<br>\n", |
869 | | - " האיבר הראשון הוא הנשק שנתפס על ידי המשטרה, והאיבר השני הוא המיקום המרכזי בו הדמות הייתה באותו יום.<br>\n", |
870 | | - " בהנתן שהרצח בוצע על ידי אקדח דרינגר (derringer) ב־Petersen House, הדפיסו רק את שמות האנשים שעדיין חשודים ברצח.<br>\n", |
| 891 | + " האיבר הראשון הוא הנשק שתפסה המשטרה, והאיבר השני הוא המיקום המרכזי שבו הייתה הדמות באותו היום.<br>\n", |
| 892 | + " בהינתן שהרצח בוצע על ידי אקדח דרינגר (derringer) ב־Petersen House, הדפיסו רק את שמות האנשים שעדיין חשודים ברצח.<br>\n", |
871 | 893 | " השתדלו להשתמש ב־unpacking לפחות פעמיים.\n", |
872 | 894 | "</p>" |
873 | 895 | ] |
|
890 | 912 | "metadata": {}, |
891 | 913 | "source": [ |
892 | 914 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
893 | | - " לנוחיותכם, הנה פונקציה שמקבלת כלי נשק ומיקום, ובודקת האם הראיות תואמות:\n", |
| 915 | + " לנוחיותכם, הנה פונקציה שמקבלת כלי נשק ומיקום, ובודקת אם הראיות תואמות:\n", |
894 | 916 | "</p>" |
895 | 917 | ] |
896 | 918 | }, |
897 | 919 | { |
898 | 920 | "cell_type": "code", |
899 | | - "execution_count": 189, |
| 921 | + "execution_count": null, |
900 | 922 | "metadata": {}, |
901 | 923 | "outputs": [], |
902 | 924 | "source": [ |
|
921 | 943 | "name": "python", |
922 | 944 | "nbconvert_exporter": "python", |
923 | 945 | "pygments_lexer": "ipython3", |
924 | | - "version": "3.7.4" |
| 946 | + "version": "3.7.6" |
925 | 947 | } |
926 | 948 | }, |
927 | 949 | "nbformat": 4, |
|
0 commit comments