|
146 | 146 | " yield 2\n",
|
147 | 147 | " number = number // 2\n",
|
148 | 148 | " \n",
|
149 |
| - " # n must be odd at this point (we've just factored 2 out).\n", |
| 149 | + " # `number` must be odd at this point (we've just factored 2 out).\n", |
150 | 150 | " # Skip even numbers. Square root is good upper limit, check\n",
|
151 | 151 | " # https://math.stackexchange.com/a/1039525 for more info.\n",
|
152 | 152 | " divisor = 3\n",
|
|
158 | 158 | " else:\n",
|
159 | 159 | " divisor += 2\n",
|
160 | 160 | " \n",
|
161 |
| - " # If n is a prime, just print n.\n", |
| 161 | + " # If `number` is a prime, just print `number`.\n", |
162 | 162 | " # 1 is not a prime, 2 already taken care of.\n",
|
163 | 163 | " if number > 2:\n",
|
164 | 164 | " yield number\n",
|
|
358 | 358 | " <li>קוד צריך להסביר את עצמו. אם הוספת הערות לקוד, סימן שהקוד לא מובן דיו, וזה מצב שיפגע במפתחי הקוד בעתיד.</li>\n",
|
359 | 359 | " <li>הערות שמסבירות קוד יוצרות שכפול – ושכפול בקוד <a href=\"https://en.wikipedia.org/wiki/Don%27t_repeat_yourself\">זה רע</a>.</li>\n",
|
360 | 360 | " <li>\n",
|
361 |
| - " הערות מצריכות תחזוקה בפני עצמן – שינוי של קוד יצריך לרוב שינוי של ההערה שמתייחסת אליו..<br>\n", |
| 361 | + " הערות מצריכות תחזוקה בפני עצמן – שינוי של קוד יצריך לרוב שינוי של ההערה שמתייחסת אליו.<br>\n", |
362 | 362 | " רוב המפתחים שוכחים לתחזק את ההערות, ולעיתים נשארות הערות שלא תואמות את הקוד עצמו.<br>\n",
|
363 | 363 | " הערה שאומרת דבר לא נכון על הקוד גרועה בהרבה מחוסר הערה.\n",
|
364 | 364 | " </li>\n",
|
|
534 | 534 | "source": [
|
535 | 535 | "<ul style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
|
536 | 536 | " <li>תיעוד של שורה אחת מיועד עבור מקרים ברורים במיוחד, כמו הפונקציה <var>add</var> שכתבנו.</li>\n",
|
537 |
| - " <li>התיעוד יבוא בשורה אחת, צמוד למירכאות, ללא שורות ריקות לפניו או אחריו.</li>\n", |
| 537 | + " <li>התיעוד ייכתב בשורה אחת, צמוד למירכאות, ללא שורות ריקות לפניו או אחריו.</li>\n", |
538 | 538 | " <li>התיעוד ינוסח בצורת פקודה ולא כסיפור (\"החזר את התוצאה\" ולא \"הפונקציה מחזירה...\").<br>\n",
|
539 | 539 | " כלל אצבע טוב הוא לשמור על הצורה \"עשה X, החזר Y\" <span div=\"ltr\">(באנגלית: Do X, Return Y)</span>.</li>\n",
|
540 | 540 | " <li>תיעוד של שורה אחת לא יכלול את סוג הפרמטרים (a או b, במקרה שלנו). הוא יכול לכלול את הסוג של ערך ההחזרה.</li>\n",
|
|
760 | 760 | " \"\"\"Return the extension of the filename.\n",
|
761 | 761 | " \n",
|
762 | 762 | " If there is no extension, return an empty string.\n",
|
| 763 | + " This does not include the leading period.\n", |
| 764 | + " For example: 'txt'\n", |
763 | 765 | " \"\"\"\n",
|
764 |
| - " full_name = self.get_basename()\n", |
765 |
| - " filename, _, extension = full_name.rpartition(\".\")\n", |
766 |
| - " return extension\n", |
| 766 | + " name = self.get_basename()\n", |
| 767 | + " i = name.rfind('.')\n", |
| 768 | + " if 0 < i < len(name) - 1:\n", |
| 769 | + " return name[i + 1:]\n", |
| 770 | + " return ''\n", |
| 771 | + "\n", |
767 | 772 | "\n",
|
768 | 773 | " def is_exists(self):\n",
|
769 | 774 | " \"\"\"Check if the path exists, return boolean value.\"\"\"\n",
|
|
788 | 793 | " Should be used to easily print the details about the path.\n",
|
789 | 794 | " \"\"\"\n",
|
790 | 795 | " return f\"\"\"\n",
|
791 |
| - " Some info about \"{path}\":\n", |
792 |
| - " Drive letter: {path.get_drive_letter()}\n", |
793 |
| - " Dirname: {path.get_dirname()}\n", |
794 |
| - " Last part of path: {path.get_basename()}\n", |
795 |
| - " File extension: {path.get_extension()}\n", |
796 |
| - " Is exists?: {path.is_exists()}\n", |
| 796 | + " Some info about \"{self}\":\n", |
| 797 | + " Drive letter: {self.get_drive_letter()}\n", |
| 798 | + " Dirname: {self.get_dirname()}\n", |
| 799 | + " Last part of path: {self.get_basename()}\n", |
| 800 | + " File extension: {self.get_extension()}\n", |
| 801 | + " Is exists?: {self.is_exists()}\n", |
797 | 802 | " \"\"\".strip()\n",
|
798 | 803 | "\n",
|
799 | 804 | " def __str__(self):\n",
|
|
981 | 986 | "metadata": {},
|
982 | 987 | "source": [
|
983 | 988 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
|
984 |
| - " מלל שנכתב ב־reStructuredText יראה כך עבור מי שכתב אותו:\n", |
| 989 | + " מלל שנכתב ב־reStructuredText ייראה כך עבור מי שכתב אותו:\n", |
985 | 990 | "</p>"
|
986 | 991 | ]
|
987 | 992 | },
|
|
995 | 1000 | "\n",
|
996 | 1001 | "* הדגשה, מלל מוטה וקו תחתון.\n",
|
997 | 1002 | "* רשימות.\n",
|
998 |
| - "* סימון של קוד, כמו `print(\"Hello\")`.\n", |
| 1003 | + "* סימון של קוד, כמו `print(\"Hello World\")`.\n", |
999 | 1004 | "</pre>"
|
1000 | 1005 | ]
|
1001 | 1006 | },
|
|
1168 | 1173 | "metadata": {},
|
1169 | 1174 | "outputs": [],
|
1170 | 1175 | "source": [
|
1171 |
| - "import string\n", |
1172 |
| - "import random\n", |
1173 |
| - "\n", |
1174 |
| - "\n", |
1175 | 1176 | "class PostOffice:\n",
|
1176 | 1177 | " def __init__(self, usernames):\n",
|
1177 | 1178 | " self.message_id = 0\n",
|
|
1266 | 1267 | "metadata": {},
|
1267 | 1268 | "outputs": [],
|
1268 | 1269 | "source": [
|
1269 |
| - "import string\n", |
1270 |
| - "import random\n", |
1271 |
| - "\n", |
1272 |
| - "\n", |
1273 | 1270 | "class PostOffice:\n",
|
1274 | 1271 | " \"\"\"A Post Office class. Allows users to message each other.\n",
|
1275 | 1272 | " \n",
|
|
1292 | 1289 | " sender (str): The message sender's username.\n",
|
1293 | 1290 | " recipient (str): The message recipient's username.\n",
|
1294 | 1291 | " message_body (str): The body of the message.\n",
|
1295 |
| - " urgency (str, optional): The urgency of the message.\n", |
1296 |
| - " Urgent messages appear first.\n", |
| 1292 | + " urgent (bool, optional): The urgency of the message.\n", |
| 1293 | + " Urgent messages appear first.\n", |
1297 | 1294 | "\n",
|
1298 | 1295 | " Returns:\n",
|
1299 | 1296 | " int: The message ID, auto incremented number.\n",
|
|
1307 | 1304 | " inbox.\n",
|
1308 | 1305 | "\n",
|
1309 | 1306 | " >>> po_box = PostOffice(['a', 'b'])\n",
|
1310 |
| - " >>> message_id = po_box.send('a', 'b', 'Hello!')\n", |
1311 |
| - " >>> len(pobox['b'])\n", |
| 1307 | + " >>> message_id = po_box.send_message('a', 'b', 'Hello!')\n", |
| 1308 | + " >>> len(po_box.boxes['b'])\n", |
1312 | 1309 | " 1\n",
|
1313 | 1310 | " >>> message_id\n",
|
1314 | 1311 | " 1\n",
|
|
1391 | 1388 | "metadata": {},
|
1392 | 1389 | "outputs": [],
|
1393 | 1390 | "source": [
|
1394 |
| - "import string\n", |
1395 |
| - "import random\n", |
1396 |
| - "\n", |
1397 |
| - "\n", |
1398 | 1391 | "class PostOffice:\n",
|
1399 | 1392 | " \"\"\"A Post Office class. Allows users to message each other.\n",
|
1400 | 1393 | " \n",
|
|
1426 | 1419 | " The message recipient's username.\n",
|
1427 | 1420 | " message_body : str\n",
|
1428 | 1421 | " The body of the message.\n",
|
1429 |
| - " urgency : str, optional\n", |
| 1422 | + " urgent : bool, optional\n", |
1430 | 1423 | " The urgency of the message.\n",
|
1431 | 1424 | " Urgent messages appear first.\n",
|
1432 | 1425 | "\n",
|
|
1447 | 1440 | " inbox.\n",
|
1448 | 1441 | "\n",
|
1449 | 1442 | " >>> po_box = PostOffice(['a', 'b'])\n",
|
1450 |
| - " >>> message_id = po_box.send('a', 'b', 'Hello!')\n", |
1451 |
| - " >>> len(pobox['b'])\n", |
| 1443 | + " >>> message_id = po_box.send_message('a', 'b', 'Hello!')\n", |
| 1444 | + " >>> len(po_box.boxes['b'])\n", |
1452 | 1445 | " 1\n",
|
1453 | 1446 | " >>> message_id\n",
|
1454 | 1447 | " 1\n",
|
|
1492 | 1485 | "metadata": {},
|
1493 | 1486 | "outputs": [],
|
1494 | 1487 | "source": [
|
1495 |
| - "import string\n", |
1496 |
| - "import random\n", |
1497 |
| - "\n", |
1498 |
| - "\n", |
1499 | 1488 | "class PostOffice:\n",
|
1500 | 1489 | " \"\"\"A Post Office class. Allows users to message each other.\n",
|
1501 | 1490 | "\n",
|
1502 |
| - " :param str message_id: Incremental id of the last message sent.\n", |
1503 |
| - " :param str boxes: Users' inboxes.\n", |
| 1491 | + " :param int message_id: Incremental id of the last message sent.\n", |
| 1492 | + " :param dict boxes: Users' inboxes.\n", |
1504 | 1493 | "\n",
|
1505 | 1494 | " :ivar list usernames: Users for which we should create PO Boxes.\n",
|
1506 | 1495 | " \"\"\"\n",
|
|
1699 | 1688 | "metadata": {},
|
1700 | 1689 | "source": [
|
1701 | 1690 | "<p style=\"text-align: right; direction: rtl; float: right; clear: both;\">\n",
|
1702 |
| - " אם בעקבות פעולת התקפה שחקן מסוים הגיע הגיע ל־0 חיים או פחות מכך, הוא נחשב למת ברובו.<br>\n", |
| 1691 | + " אם בעקבות פעולת התקפה שחקן מסוים הגיע ל־0 חיים או פחות מכך, הוא נחשב למת ברובו.<br>\n", |
1703 | 1692 | " דאגו שהשחקן יעבור החייאה וצרפו את מי שהתקיף אותו לרשימת ה־<var>nemeses</var> של השחקן.\n",
|
1704 | 1693 | "</p>"
|
1705 | 1694 | ]
|
|
0 commit comments