|
781 | 781 | "</div>" |
782 | 782 | ] |
783 | 783 | }, |
| 784 | + { |
| 785 | + "cell_type": "markdown", |
| 786 | + "metadata": {}, |
| 787 | + "source": [ |
| 788 | + "### <span style=\"text-align: right; direction: rtl; float: right;\">מבנים מורכבים</span>" |
| 789 | + ] |
| 790 | + }, |
| 791 | + { |
| 792 | + "cell_type": "markdown", |
| 793 | + "metadata": {}, |
| 794 | + "source": [ |
| 795 | + "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
| 796 | + "הרשימה הבאה מכילה tupleים בגודל 2 איברים:\n", |
| 797 | + "</p>" |
| 798 | + ] |
| 799 | + }, |
| 800 | + { |
| 801 | + "cell_type": "code", |
| 802 | + "execution_count": 91, |
| 803 | + "metadata": {}, |
| 804 | + "outputs": [], |
| 805 | + "source": [ |
| 806 | + "words = [('star', 'rats'), ('wolf', 'flow'), ('racecar', 'racecar'), ('ekans', 'snake')]" |
| 807 | + ] |
| 808 | + }, |
| 809 | + { |
| 810 | + "cell_type": "markdown", |
| 811 | + "metadata": {}, |
| 812 | + "source": [ |
| 813 | + "<div class=\"align-center\" style=\"display: flex; text-align: right; direction: rtl; clear: both;\">\n", |
| 814 | + " <div style=\"display: flex; width: 10%; float: right; clear: both;\">\n", |
| 815 | + " <img src=\"images/exercise.svg\" style=\"height: 50px !important;\" alt=\"תרגול\"> \n", |
| 816 | + " </div>\n", |
| 817 | + " <div style=\"width: 70%\">\n", |
| 818 | + " <p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
| 819 | + " כתבו לולאת <code>for</code> שתדפיס עבור כל זוג מחרוזות ברשימה: <samp dir=\"ltr\" style=\"direction: ltr\">Reverse \"X\" to get \"Y\"</samp>.<br>\n", |
| 820 | + " לדוגמה, עבור הזוג האחרון מתוך 4 הזוגות, היא תדפיס: <samp dir=\"ltr\" style=\"direction: ltr\">Reverse \"ekans\" to get \"snake\"</samp>.\n", |
| 821 | + " </p>\n", |
| 822 | + " </div>\n", |
| 823 | + " <div style=\"display: flex; width: 20%; border-right: 0.1rem solid #A5A5A5; padding: 1rem 2rem;\">\n", |
| 824 | + " <p style=\"text-align: center; direction: rtl; justify-content: center; align-items: center; clear: both;\">\n", |
| 825 | + " <strong>חשוב!</strong><br>\n", |
| 826 | + " פתרו לפני שתמשיכו!\n", |
| 827 | + " </p>\n", |
| 828 | + " </div>\n", |
| 829 | + "</div>" |
| 830 | + ] |
| 831 | + }, |
| 832 | + { |
| 833 | + "cell_type": "markdown", |
| 834 | + "metadata": {}, |
| 835 | + "source": [ |
| 836 | + "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
| 837 | + "על־מנת לפתור את התרגיל, כתבתם קוד שהשתמש במיקום של הערך הראשון (0) ושל הערך השני (1).<br>\n", |
| 838 | + "הנה דוגמה לצורה שבה אני פתרתי אותו:\n", |
| 839 | + "</p>" |
| 840 | + ] |
| 841 | + }, |
| 842 | + { |
| 843 | + "cell_type": "code", |
| 844 | + "execution_count": 105, |
| 845 | + "metadata": {}, |
| 846 | + "outputs": [ |
| 847 | + { |
| 848 | + "name": "stdout", |
| 849 | + "output_type": "stream", |
| 850 | + "text": [ |
| 851 | + "Reverse \"star\" to get \"rats\".\n", |
| 852 | + "Reverse \"wolf\" to get \"flow\".\n", |
| 853 | + "Reverse \"racecar\" to get \"racecar\".\n", |
| 854 | + "Reverse \"ekans\" to get \"snake\".\n" |
| 855 | + ] |
| 856 | + } |
| 857 | + ], |
| 858 | + "source": [ |
| 859 | + "for word_and_reversed_word in words:\n", |
| 860 | + " word = word_and_reversed_word[0]\n", |
| 861 | + " reversed_word = word_and_reversed_word[1]\n", |
| 862 | + " print(f'Reverse \"{word}\" to get \"{reversed_word}\".')" |
| 863 | + ] |
| 864 | + }, |
| 865 | + { |
| 866 | + "cell_type": "markdown", |
| 867 | + "metadata": {}, |
| 868 | + "source": [ |
| 869 | + "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
| 870 | + "נראה דרך נוספת לפתור את התרגיל, רק שהפעם נשתמש בטריק שנקרא <dfn>unpacking</dfn> (או \"<dfn>פירוק</dfn>\").<br>\n", |
| 871 | + "מכיוון שכל tuple ברשימת <var>words</var> מכיל 2 איברים, נוכל לתת להם שמות כבר בראש הלולאה ולחלץ אותם מה־tuple:\n", |
| 872 | + "</p>" |
| 873 | + ] |
| 874 | + }, |
| 875 | + { |
| 876 | + "cell_type": "code", |
| 877 | + "execution_count": 102, |
| 878 | + "metadata": {}, |
| 879 | + "outputs": [ |
| 880 | + { |
| 881 | + "name": "stdout", |
| 882 | + "output_type": "stream", |
| 883 | + "text": [ |
| 884 | + "Reverse \"star\" to get \"rats\".\n", |
| 885 | + "Reverse \"wolf\" to get \"flow\".\n", |
| 886 | + "Reverse \"racecar\" to get \"racecar\".\n", |
| 887 | + "Reverse \"ekans\" to get \"snake\".\n" |
| 888 | + ] |
| 889 | + } |
| 890 | + ], |
| 891 | + "source": [ |
| 892 | + "for word, reversed_word in words:\n", |
| 893 | + " print(f'Reverse \"{word}\" to get \"{reversed_word}\".')" |
| 894 | + ] |
| 895 | + }, |
| 896 | + { |
| 897 | + "cell_type": "markdown", |
| 898 | + "metadata": {}, |
| 899 | + "source": [ |
| 900 | + "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
| 901 | + "בכל חזרור של הלולאה שכתובה למעלה, ה־<code>for</code> יעבור על tuple בודד, בדיוק כמו שקרה עד עכשיו.<br>\n", |
| 902 | + "השינוי הוא שבמקום שה־tuple ישמר כמו שהוא במשתנה בודד שהוגדר בראש הלולאה, הערכים שבו \"יחולצו\" למשתנים בראש הלולאה.<br>\n", |
| 903 | + "זה יכול לעבוד מכיוון שבראש הלולאה כתבנו מספר משתנים שזהה למספר הערכים בכל tuple.\n", |
| 904 | + "</p>" |
| 905 | + ] |
| 906 | + }, |
| 907 | + { |
| 908 | + "cell_type": "markdown", |
| 909 | + "metadata": {}, |
| 910 | + "source": [ |
| 911 | + "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n", |
| 912 | + "לפניכם תרשים המתאר את תוכן המשתנה <var>words</var>.<br>\n", |
| 913 | + "הטבלה הגדולה מייצגת את הרשימה <var>words</var>, וכל אחת מהטבלאות הקטנות מייצגת tuple בתוך הרשימה.<br>\n", |
| 914 | + "בכל חזרור של ה־<code>for</code> המופיע למעלה, המשתנה <var>word</var> יקבל ערך שמסומן באדום, והמשתנה <var>reversed_word</var> יקבל את הערך הירוק התואם. \n", |
| 915 | + "</p>" |
| 916 | + ] |
| 917 | + }, |
| 918 | + { |
| 919 | + "cell_type": "markdown", |
| 920 | + "metadata": {}, |
| 921 | + "source": [ |
| 922 | + "<table style=\"font-size: 1.5rem; border: 0px solid black; border-spacing: 0px;\">\n", |
| 923 | + " <caption style=\"direction: rtl; text-align: center;\">תצוגה על המשתנה <var>words</var> ועל צורת הפירוק שלו</caption>\n", |
| 924 | + " <tr>\n", |
| 925 | + " <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", |
| 926 | + " <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", |
| 927 | + " <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;\">2</td>\n", |
| 928 | + " <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;\">3</td>\n", |
| 929 | + " </tr>\n", |
| 930 | + " <tbody>\n", |
| 931 | + " <tr>\n", |
| 932 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid;\">\n", |
| 933 | + "<table style=\"font-size: 1.5rem; border: 0px solid black; border-spacing: 0px;\">\n", |
| 934 | + " <tr>\n", |
| 935 | + " <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", |
| 936 | + " <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", |
| 937 | + " </tr>\n", |
| 938 | + " <tbody>\n", |
| 939 | + " <tr>\n", |
| 940 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid; background-color: #FF8578;\">\"star\"</td>\n", |
| 941 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid; background-color: #98FB98;\">\"rats\"</td>\n", |
| 942 | + " </tr>\n", |
| 943 | + " <tr style=\"background: #f5f5f5;\">\n", |
| 944 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right;\">-2</td>\n", |
| 945 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right; border-left: 1px solid #555555;\">-1</td>\n", |
| 946 | + " </tr>\n", |
| 947 | + " </tbody>\n", |
| 948 | + "</table>\n", |
| 949 | + " </td>\n", |
| 950 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid;\">\n", |
| 951 | + "<table style=\"font-size: 1.5rem; border: 0px solid black; border-spacing: 0px;\">\n", |
| 952 | + " <tr>\n", |
| 953 | + " <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", |
| 954 | + " <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", |
| 955 | + " </tr>\n", |
| 956 | + " <tbody>\n", |
| 957 | + " <tr>\n", |
| 958 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid; background-color: #FF8578;\">\"wolf\"</td>\n", |
| 959 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid; background-color: #98FB98;\">\"flow\"</td>\n", |
| 960 | + " </tr>\n", |
| 961 | + " <tr style=\"background: #f5f5f5;\">\n", |
| 962 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right;\">-2</td>\n", |
| 963 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right; border-left: 1px solid #555555;\">-1</td>\n", |
| 964 | + " </tr>\n", |
| 965 | + " </tbody>\n", |
| 966 | + "</table> \n", |
| 967 | + " </td>\n", |
| 968 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid;\">\n", |
| 969 | + "<table style=\"font-size: 1.5rem; border: 0px solid black; border-spacing: 0px;\">\n", |
| 970 | + " <tr>\n", |
| 971 | + " <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", |
| 972 | + " <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", |
| 973 | + " </tr>\n", |
| 974 | + " <tbody>\n", |
| 975 | + " <tr>\n", |
| 976 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid; background-color: #FF8578;\">\"racecar\"</td>\n", |
| 977 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid; background-color: #98FB98;\">\"racecar\"</td>\n", |
| 978 | + " </tr>\n", |
| 979 | + " <tr style=\"background: #f5f5f5;\">\n", |
| 980 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right;\">-2</td>\n", |
| 981 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right; border-left: 1px solid #555555;\">-1</td>\n", |
| 982 | + " </tr>\n", |
| 983 | + " </tbody>\n", |
| 984 | + "</table>\n", |
| 985 | + " </td>\n", |
| 986 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid;\">\n", |
| 987 | + "<table style=\"font-size: 1.5rem; border: 0px solid black; border-spacing: 0px;\">\n", |
| 988 | + " <tr>\n", |
| 989 | + " <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", |
| 990 | + " <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", |
| 991 | + " </tr>\n", |
| 992 | + " <tbody>\n", |
| 993 | + " <tr>\n", |
| 994 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid; background-color: #FF8578;\">\"ekans\"</td>\n", |
| 995 | + " <td style=\"padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; vertical-align: bottom; border: 2px solid; background-color: #98FB98;\">\"snake\"</td>\n", |
| 996 | + " </tr>\n", |
| 997 | + " <tr style=\"background: #f5f5f5;\">\n", |
| 998 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right;\">-2</td>\n", |
| 999 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right; border-left: 1px solid #555555;\">-1</td>\n", |
| 1000 | + " </tr>\n", |
| 1001 | + " </tbody>\n", |
| 1002 | + "</table>\n", |
| 1003 | + " </td>\n", |
| 1004 | + " </tr>\n", |
| 1005 | + " <tr style=\"background: #f5f5f5;\">\n", |
| 1006 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right;\">-4</td>\n", |
| 1007 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right; border-left: 1px solid #555555;\">-3</td>\n", |
| 1008 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right; border-left: 1px solid #555555;\">-2</td>\n", |
| 1009 | + " <td style=\"padding-left: 4px; padding-top: 2px; padding-bottom: 3px; font-size: 1.3rem; color: #777; text-align: right; border-left: 1px solid #555555;\">-1</td>\n", |
| 1010 | + " </tr>\n", |
| 1011 | + " </tbody>\n", |
| 1012 | + "</table>" |
| 1013 | + ] |
| 1014 | + }, |
784 | 1015 | { |
785 | 1016 | "cell_type": "markdown", |
786 | 1017 | "metadata": {}, |
|
0 commit comments