1 00:00:00,000 --> 00:00:05,426 2 00:00:05,426 --> 00:00:06,800 РОСС RHEINGANS-Е: Привіт, я Росс. 3 00:00:06,800 --> 00:00:08,570 І це CS50 семінар. 4 00:00:08,570 --> 00:00:12,100 Це займе у вас від програмування в С програмування в Python. 5 00:00:12,100 --> 00:00:15,120 >> Python це скриптова мова. 6 00:00:15,120 --> 00:00:17,870 Це в значній мірі, як C в синтаксисі, хоча деякі 7 00:00:17,870 --> 00:00:20,390 технічних деталей як, що синтаксис запускається на виконання 8 00:00:20,390 --> 00:00:22,240 трохи відрізняється. 9 00:00:22,240 --> 00:00:24,780 Це менш потужний, ніж C в деяких відносинах. 10 00:00:24,780 --> 00:00:28,130 Це менш виразним для де саме у вашому комп'ютері 11 00:00:28,130 --> 00:00:30,030 пам'яті отримує виклав, як він отримує виклав, 12 00:00:30,030 --> 00:00:32,030 коли він отримує свободу, і ці види речей. 13 00:00:32,030 --> 00:00:36,150 >> Це більш корисно, ніж C в деяких відносинах, тому що це легше програмувати на. 14 00:00:36,150 --> 00:00:39,920 Мова, з деякими люди, більш інтуїтивним. 15 00:00:39,920 --> 00:00:44,820 І справді, мета для це буде швидше програмувати 16 00:00:44,820 --> 00:00:46,490 і потенційно повільніше виконувати. 17 00:00:46,490 --> 00:00:48,198 >> Тепер, якщо ви думаєте про кількість часу 18 00:00:48,198 --> 00:00:50,514 ви витратили на ваш останній Проблема встановити запис 19 00:00:50,514 --> 00:00:52,430 код проти кількість часу ви витрачаєте 20 00:00:52,430 --> 00:00:55,310 на останнього завдання встановити виконання коду, 21 00:00:55,310 --> 00:00:58,300 можна собі уявити, що на мові який був в два рази швидше писати, 22 00:00:58,300 --> 00:01:02,170 і в два рази повільніше, щоб виконати, можливо, бути покращення в порівнянні з C в деяких відносинах. 23 00:01:02,170 --> 00:01:05,730 Звичайно, коли ви намагаєтеся написати невеликі програми, щоб зробити маленькі речі, 24 00:01:05,730 --> 00:01:08,520 Python є корисним мовою вибору. 25 00:01:08,520 --> 00:01:10,620 >> І в кінці цього Семінар, я сподіваюся, що ви будете 26 00:01:10,620 --> 00:01:12,950 бути в змозі зробити Вибір у майбутніх проектах 27 00:01:12,950 --> 00:01:17,710 про які мова правильно використовувати, не ідея 28 00:01:17,710 --> 00:01:21,405 що одна мова більш виправити весь час. 29 00:01:21,405 --> 00:01:23,030 Кілька речей, про те, що цей семінар. 30 00:01:23,030 --> 00:01:25,910 Цей семінар не призначений для навчить вас Python з нуля. 31 00:01:25,910 --> 00:01:28,310 Python дуже схожий С, і я припускаю, 32 00:01:28,310 --> 00:01:34,056 що ви CS50 студент, або хтось з аналогічною знайомство з С. 33 00:01:34,056 --> 00:01:36,700 >> Якщо ви студент CS50 навколо проблеми встановіть 6, 34 00:01:36,700 --> 00:01:38,866 Отже, ви бачите багато речі в C, я дам вам 35 00:01:38,866 --> 00:01:40,740 основні відмінності, і деякі з речей, 36 00:01:40,740 --> 00:01:42,840 які роблять Python відрізняється та спеціальні і корисно, 37 00:01:42,840 --> 00:01:45,256 але я не збираюся йти на яка мова програмування 38 00:01:45,256 --> 00:01:46,920 і як писати програми. 39 00:01:46,920 --> 00:01:49,820 Тим не менш, цей семінар навчить Вам написати Python програми 40 00:01:49,820 --> 00:01:52,310 якщо ви один з тих небагатьох груп. 41 00:01:52,310 --> 00:01:54,820 Знову ми будемо дивитися на те, як Ви б здійснити psets-- 42 00:01:54,820 --> 00:01:57,550 які повинні бути в 1-6 Python-- і забезпечують покажчики 43 00:01:57,550 --> 00:02:00,322 в офіційній документації для використання в майбутньому. 44 00:02:00,322 --> 00:02:03,030 Інша справа, що важливо про те, як ця розмова відноситься, 45 00:02:03,030 --> 00:02:05,360 це відео буде онлайн, люб'язно CS50, 46 00:02:05,360 --> 00:02:07,550 так що ви не повинні відчувати себе, як Ви повинні взяти до відома. 47 00:02:07,550 --> 00:02:11,180 Ви завжди можете повернутися назад і подивитися на нього пізніше в якості посилання. 48 00:02:11,180 --> 00:02:13,340 Додатково слайди доступні прямо зараз 49 00:02:13,340 --> 00:02:16,480 на цьому сайті, які повинні прийняти вас зробити документ Google. 50 00:02:16,480 --> 00:02:21,010 Це трохи скорочена версія що я показую на екрані. 51 00:02:21,010 --> 00:02:24,850 >> Один нюанс, перш ніж обережно ми стрибаємо в, Python 3 52 00:02:24,850 --> 00:02:26,700 це інша мова з Python 2. 53 00:02:26,700 --> 00:02:30,020 Вони виглядають набагато те ж саме; там є дуже незначні технічні відмінності 54 00:02:30,020 --> 00:02:32,530 що викличе програми написано в Python 2 55 00:02:32,530 --> 00:02:37,140 не зможе бути виконана в середовищі Python 3. 56 00:02:37,140 --> 00:02:41,969 >> CS50 прилад поставляється з Пітон, за замовчуванням він використовує Python 2. 57 00:02:41,969 --> 00:02:44,010 Ви можете перевірити це, набравши в командному рядку 58 00:02:44,010 --> 00:02:51,310 пітон --version, який повинен вивести 2.7.6 про поточному устрої. 59 00:02:51,310 --> 00:02:53,580 Спробуйте Python 3, який робить працювати в приладі, 60 00:02:53,580 --> 00:02:58,500 якщо Python за замовчуванням 2.X.Y, або на прилад або на ваших власних машин. 61 00:02:58,500 --> 00:03:03,730 Ви повинні замінити Python 3 в будь-який час У цій розмові, що я пишу на Python. 62 00:03:03,730 --> 00:03:05,760 Якщо ваша машина працює 2 за замовчуванням, тип 63 00:03:05,760 --> 00:03:09,770 Python 3 для того, щоб бути в змозі фактично слідувати і виконувати ці речі. 64 00:03:09,770 --> 00:03:12,280 >> Крім того, я вкажу вам на офіційних ресурсів в даний час. 65 00:03:12,280 --> 00:03:16,082 docs.python.org/3--~~V обережні що це 3, а не 2-- 66 00:03:16,082 --> 00:03:17,030 має корисні посилання. 67 00:03:17,030 --> 00:03:19,280 Підручник проведе вас через багато тих же самих речей 68 00:03:19,280 --> 00:03:21,460 що я роблю зараз, за ​​винятком в текстовій формі. 69 00:03:21,460 --> 00:03:23,725 Посилання придатне в якості посилання для мови, 70 00:03:23,725 --> 00:03:26,100 і стандартна бібліотека дає Ви деякі з розширень 71 00:03:26,100 --> 00:03:27,770 з додатковою функціональності. 72 00:03:27,770 --> 00:03:31,300 >> Таким чином, дуже перша програма на Python. 73 00:03:31,300 --> 00:03:34,410 Зліва у нас стандартний C, праворуч, у нас є Python. 74 00:03:34,410 --> 00:03:36,780 Ви, можливо, здогадалися Ця проблема, це 75 00:03:36,780 --> 00:03:40,760 один з перших проблеми набори в CS50, і ці 76 00:03:40,760 --> 00:03:42,677 вирішити, використовуючи той же розчин. 77 00:03:42,677 --> 00:03:45,010 Тепер, причина того, що ми Дивлячись на ці пліч-о-пліч 78 00:03:45,010 --> 00:03:46,830 так ми можемо подивитися на синтаксичні відмінності. 79 00:03:46,830 --> 00:03:49,580 Один з слонів в кімнаті що ви, можливо, помітили праворуч 80 00:03:49,580 --> 00:03:56,350 з місця в кар'єр, є те, що Пітон не має Основна функція обгортання навколо коду. 81 00:03:56,350 --> 00:03:59,170 Таким чином, в C, ви пишете купу файли, ви зв'язати їх разом, 82 00:03:59,170 --> 00:04:02,590 і програма починає виконуватися на цю справу називається INT основною. 83 00:04:02,590 --> 00:04:04,930 >> У Python, ви пишете подати тобі, запустіть файл, 84 00:04:04,930 --> 00:04:07,882 програма починає виконуватися у верхній частині файлу. 85 00:04:07,882 --> 00:04:09,590 Так що це збирається почати у верхній частині файлу 86 00:04:09,590 --> 00:04:11,280 спуститися, поки не знайдете щось ще. 87 00:04:11,280 --> 00:04:14,440 Якщо він знаходить визначення функції, він не буде насправді виконати цей код, 88 00:04:14,440 --> 00:04:15,940 він просто визначити функцію. 89 00:04:15,940 --> 00:04:18,459 Але тут, коли перший Програма п дорівнює 10, 90 00:04:18,459 --> 00:04:21,273 Перше, що ця програма буде зробити, це прийняти це значення 10 91 00:04:21,273 --> 00:04:24,120 і встановити його в змінну під назвою п. 92 00:04:24,120 --> 00:04:27,690 >> Говорячи про ту лінію, один з другий things-- sorry-- це 93 00:04:27,690 --> 00:04:31,040 означає, що програми C, ви будете писати їх, 94 00:04:31,040 --> 00:04:34,899 ви будете робити їх, що буде викликати деякі команди, брязкіт, 95 00:04:34,899 --> 00:04:36,690 і тоді ви будете запустити в результаті виконуваний файл. 96 00:04:36,690 --> 00:04:41,030 Програми Python, ви запустите Текст file-- цьому mario.py може 97 00:04:41,030 --> 00:04:44,900 бути цей файл, що я тільки що показав you-- ви будете працювати файл 98 00:04:44,900 --> 00:04:47,450 і ви будете виконувати, і зміст його 99 00:04:47,450 --> 00:04:50,390 буде виконаний інтерпретатор Python. 100 00:04:50,390 --> 00:04:52,470 Ви можете зробити це у вашому IDE. 101 00:04:52,470 --> 00:05:02,260 >> Так що, якщо у мене є файл Hello, який просто має це вміст. 102 00:05:02,260 --> 00:05:04,840 Це насправді Python 2, що не Python 3, тому не 103 00:05:04,840 --> 00:05:06,600 турбуватися про синтаксис зараз. 104 00:05:06,600 --> 00:05:14,230 Але я побіжу Python, на hello.py, і він працює. 105 00:05:14,230 --> 00:05:18,890 >> Ще один спосіб, що я можу використовувати Python, що Я не буду мати справу з так багато в цій розмові, 106 00:05:18,890 --> 00:05:21,840 якщо я просто введіть Python, він падає мені в середу, де 107 00:05:21,840 --> 00:05:24,370 Я можу годувати його Python порядково. 108 00:05:24,370 --> 00:05:31,260 Так от, якщо я типу в друк простір "привіт, мир". 109 00:05:31,260 --> 00:05:32,360 Введіть ввести. 110 00:05:32,360 --> 00:05:37,430 Це буде плювати мені, що резервне результати що індивідуальна лінія негайно. 111 00:05:37,430 --> 00:05:38,470 >> Це може бути корисним. 112 00:05:38,470 --> 00:05:40,700 У цій доповіді я буду робити те, на слайдах. 113 00:05:40,700 --> 00:05:43,940 І так ви будете мати можливість стежити поряд або тут, або в письмовій формі 114 00:05:43,940 --> 00:05:45,725 фактичні файли, а потім їх виконання. 115 00:05:45,725 --> 00:05:48,340 116 00:05:48,340 --> 00:05:50,995 >> Але, повертаючись до цього Код, інша справа, 117 00:05:50,995 --> 00:05:53,230 що ви, можливо, доведеться noticed-- добре, є 118 00:05:53,230 --> 00:05:55,980 дві речі, які ви, можливо, повідомлення про таких блоків. 119 00:05:55,980 --> 00:05:59,280 По-перше, а більш земна, що Пітон не має косу коми. 120 00:05:59,280 --> 00:06:02,630 >> Крапка з комою не є обов'язковими всюди і нешкідливі скрізь. 121 00:06:02,630 --> 00:06:03,722 Ви можете додати їх. 122 00:06:03,722 --> 00:06:06,430 Це може зробити людей, які пишуть Python для вітальні смішок у Вас 123 00:06:06,430 --> 00:06:08,860 за вашою спиною, бо вони не необхідно. 124 00:06:08,860 --> 00:06:13,497 Вони часто ознака проходить над від С. дизайнери мови 125 00:06:13,497 --> 00:06:16,580 відчуваю, що це більш зрозуміло, що це шлях і що це не потрібно, щоб оголосити 126 00:06:16,580 --> 00:06:18,700 кожен раз, коли ви в кінцевому лінію. 127 00:06:18,700 --> 00:06:21,799 >> Інша дивна річ про це п це не є тип додається. 128 00:06:21,799 --> 00:06:24,590 Один з магічних штук Python-- і я буду називати його магія, 129 00:06:24,590 --> 00:06:26,381 але є дуже технічні причини, чому це 130 00:06:26,381 --> 00:06:28,560 works-- одне з магічні шматки Python 131 00:06:28,560 --> 00:06:32,700 є те, що змінні можуть розширюватися або скоротиться містити будь-які дані 132 00:06:32,700 --> 00:06:34,530 типи ви хочете їх к. 133 00:06:34,530 --> 00:06:35,580 >> Так що це 10. 134 00:06:35,580 --> 00:06:40,060 Якщо пізніше вниз, я призначений на це п 0.5, було б вважати, що 0,5. 135 00:06:40,060 --> 00:06:43,770 Незалежно від того, що що це тут і INT плавати там, все, що використовує цей п 136 00:06:43,770 --> 00:06:47,057 буде більш-менш, зможе пихкання поряд якщо він отримує якої з них. 137 00:06:47,057 --> 00:06:49,640 Якщо немає деякі вельми реальні Причина, чому він не може використовувати дані 138 00:06:49,640 --> 00:06:52,170 тип, який в даний час має п, в який момент він буде отримувати 139 00:06:52,170 --> 00:06:54,490 вклинюється і видасть помилку, і ті види речей. 140 00:06:54,490 --> 00:06:57,050 >> Але тут, в Python насправді не хвилює, що 141 00:06:57,050 --> 00:06:59,140 це те, що я збираюся дотримуватися в цьому Вирок, як ви хочете, щоб ця річ? 142 00:06:59,140 --> 00:06:59,840 Ця річ в тому, що? 143 00:06:59,840 --> 00:07:00,640 Так, це свого роду речі. 144 00:07:00,640 --> 00:07:01,810 Я буду дотримуватися його в кінці кінців. 145 00:07:01,810 --> 00:07:04,740 Це буде проблема пізніше, якщо хто, хто хоче використовувати цю кінець 146 00:07:04,740 --> 00:07:05,710 не може впоратися з цим. 147 00:07:05,710 --> 00:07:08,500 Це один з найважливіших Відмінності між Python і C 148 00:07:08,500 --> 00:07:10,790 що робить його легко написати дуже великих програм C 149 00:07:10,790 --> 00:07:15,120 і робить його легше писати дуже маленька програма Python. 150 00:07:15,120 --> 00:07:19,564 >> Синтаксису не надто відрізняється в тому, що він робить. 151 00:07:19,564 --> 00:07:21,480 Це трохи відрізняється в тому, як це висловив. 152 00:07:21,480 --> 00:07:25,370 Так що це дуже, що називається Пітоновскіх, спосіб написання. 153 00:07:25,370 --> 00:07:28,969 для рядка в діапазоні (п), це Діапазон чисел від 0 до п, 154 00:07:28,969 --> 00:07:31,010 включено в нижній і ексклюзивний зверху. 155 00:07:31,010 --> 00:07:34,790 Таким чином, це від 0 до N-1, який саме те, що код С робить, 156 00:07:34,790 --> 00:07:38,690 за винятком того, це набагато простіше подивитися на можливо. 157 00:07:38,690 --> 00:07:42,710 >> Відповідний блок не зараховується у фігурні дужки, 158 00:07:42,710 --> 00:07:44,540 замість цього він вирушив цієї відступу. 159 00:07:44,540 --> 00:07:47,580 Таким чином, всі ці ліній чотирьох простору над вправо, 160 00:07:47,580 --> 00:07:50,410 або як про ширині слона. 161 00:07:50,410 --> 00:07:54,570 І ті з них, які буде виконана в цьому для. 162 00:07:54,570 --> 00:07:57,020 Якщо я зіпсувати поглиблення на це, і я 163 00:07:57,020 --> 00:08:01,420 натиснути цю печатку повернутися до оригінал відступи, 164 00:08:01,420 --> 00:08:04,320 що печатка буде залишити для циклу. 165 00:08:04,320 --> 00:08:08,560 На відміну від C, де я насправді тут потрібно рухатися, що замкнутий дужки навколо. 166 00:08:08,560 --> 00:08:11,820 >> Це означає, що ви не отримаєте помилки що стрибати на вас, тому що ви 167 00:08:11,820 --> 00:08:13,580 покласти скобу в неправильному місці. 168 00:08:13,580 --> 00:08:16,460 Це означає, що ви отримуєте помилки що стрибати на вас, тому що ви 169 00:08:16,460 --> 00:08:17,620 відступ лінію неправильно. 170 00:08:17,620 --> 00:08:19,290 Так що має поглиблення супер обережні. 171 00:08:19,290 --> 00:08:22,123 Сподіваюся, ви були супер обережні з відступом в будь-якому випадку, 172 00:08:22,123 --> 00:08:25,300 і таким чином, це не те, що набагато більше тягаря. 173 00:08:25,300 --> 00:08:28,762 >> Але основне правило для Python, і ми будемо мати кілька з них 174 00:08:28,762 --> 00:08:30,970 що ми підемо крізь хід бесіди, 175 00:08:30,970 --> 00:08:33,840 це спробувати природний синтаксис перш ніж шукати що-небудь до. 176 00:08:33,840 --> 00:08:37,610 Так цей синтаксис, для це число в діапазоні, 177 00:08:37,610 --> 00:08:41,460 дуже своєрідна в плані стилю. 178 00:08:41,460 --> 00:08:45,260 Багато речей в Python ми побачимо, приймаючи цю форму. 179 00:08:45,260 --> 00:08:47,420 >> І так, якщо ви придумали з новим об'єктом, який ви 180 00:08:47,420 --> 00:08:50,870 думаю, що ви повинні бути в змозі перебору це, в цьому форматі, 181 00:08:50,870 --> 00:08:53,720 Виявляється він, ймовірно, підтримує цей формат. 182 00:08:53,720 --> 00:08:56,990 Ми не збираємося йти глибоко в супер технічні причини, чому це так. 183 00:08:56,990 --> 00:09:00,167 >> Але це корисно мати інтуїція коли ви наближається програми Python, 184 00:09:00,167 --> 00:09:01,750 що ця річ просто буде працювати. 185 00:09:01,750 --> 00:09:03,020 Спробуй це. 186 00:09:03,020 --> 00:09:06,480 Завантажте командний рядок Перекладач, бачити, якщо він працює, 187 00:09:06,480 --> 00:09:09,827 рухатися з речами, перед вами навіть потрібно, щоб відкрити Google і сказати, 188 00:09:09,827 --> 00:09:11,660 що синтаксис це окрема річ? 189 00:09:11,660 --> 00:09:14,740 Багато Python ви могли відкрити просто спробувати. 190 00:09:14,740 --> 00:09:19,005 >> Це, якщо навіть більше схожий в C то форс є. 191 00:09:19,005 --> 00:09:20,380 Зверніть увагу, що немає ніяких дужок. 192 00:09:20,380 --> 00:09:23,490 Дужки, знову ж таки, нешкідливі, але непотрібним. 193 00:09:23,490 --> 00:09:25,750 Існує двокрапка наприкінці так само, як для петель, 194 00:09:25,750 --> 00:09:30,800 і знову, відносні блоки відступом, а не відправився у фігурні дужки. 195 00:09:30,800 --> 00:09:33,080 Це є ще на оригінал Рівень відступу, 196 00:09:33,080 --> 00:09:35,930 і його ставлення блок знову з відступом. 197 00:09:35,930 --> 00:09:41,720 Ті, робота саме так, як вони роблять в С. 198 00:09:41,720 --> 00:09:44,520 >> Це насправді дуже багато ж. 199 00:09:44,520 --> 00:09:49,430 Знову ж таки, друк втрачає один символ офф Printf Ви проходите кілька рядків. 200 00:09:49,430 --> 00:09:51,520 Виявляється рядків може бути або відзначені 201 00:09:51,520 --> 00:09:53,562 в одинарні лапки або подвійні лапки. 202 00:09:53,562 --> 00:09:55,270 Там немає різниці, крім того, що всередині 203 00:09:55,270 --> 00:09:57,722 одинарних лапок можна використовувати подвійні лапки з відмовитися, 204 00:09:57,722 --> 00:09:59,430 замість того, щоб уникнути всіх з них. 205 00:09:59,430 --> 00:10:01,480 А всередині подвійних лапок, ви можна використовувати одинарні лапки з відмовитися 206 00:10:01,480 --> 00:10:02,420 без їх уникнути. 207 00:10:02,420 --> 00:10:04,253 Якщо ви хочете, щоб змішати їм, звичайно, ви можете 208 00:10:04,253 --> 00:10:06,100 подивитися онлайн, як це зробити. 209 00:10:06,100 --> 00:10:09,581 >> Ви помітите, що тут, Я пройшов наприкінці = цю справу. 210 00:10:09,581 --> 00:10:12,580 Це приклад факультативного Аргумент, який є одним з тих речей, 211 00:10:12,580 --> 00:10:14,990 що Python підтримує, що робить його дуже корисним. 212 00:10:14,990 --> 00:10:18,240 Так насправді має печатку багато Аргументи, які, як правило, 213 00:10:18,240 --> 00:10:20,140 встановити значення за замовчуванням значення, але тут я маю 214 00:10:20,140 --> 00:10:21,924 вирішили перевизначити один під назвою кінець. 215 00:10:21,924 --> 00:10:24,340 Причина того, що я повинен перевизначити його з порожнім рядком 216 00:10:24,340 --> 00:10:26,756 є те, що печатки в Python, за допомогою за замовчуванням, роздруковує нову лінію 217 00:10:26,756 --> 00:10:28,630 після, що ви сказали це занадто. 218 00:10:28,630 --> 00:10:31,462 >> Так що це хеш насправді відбувається в роздрукувати хеш в новому рядку. 219 00:10:31,462 --> 00:10:34,670 А якщо я не хочу хеш роздрукувати нова лінія після нього, то я повинен сказати, 220 00:10:34,670 --> 00:10:35,340 не друкувати один. 221 00:10:35,340 --> 00:10:37,980 222 00:10:37,980 --> 00:10:43,690 Але, поки це так, то одна остання річ, що ця програма відсутня, що один має, 223 00:10:43,690 --> 00:10:44,960 включається у верхній частині. 224 00:10:44,960 --> 00:10:48,120 Роздрукувати випікається в Python так в основному що немає заголовка або модуль 225 00:10:48,120 --> 00:10:49,869 що вам потрібно включають в себе, хоча, якщо хотів 226 00:10:49,869 --> 00:10:52,029 включити інші речі в сценарії Python, 227 00:10:52,029 --> 00:10:55,320 Я хотів би зробити це в дуже схожою format-- слова є лише трохи відрізняються. 228 00:10:55,320 --> 00:10:58,840 229 00:10:58,840 --> 00:11:01,360 >> Я згадав, що ми не потрібно головним тут, 230 00:11:01,360 --> 00:11:03,372 тому що починається Пітон виконання на самому верху. 231 00:11:03,372 --> 00:11:05,080 Якби я хотів, щоб обернути це функція, я 232 00:11:05,080 --> 00:11:07,667 буде робити це як this-- I скаже чіткості ім'я функції, 233 00:11:07,667 --> 00:11:10,500 Аргументи можуть перейти сюди і ми побачити деякі з них пізніше, товстої кишки, 234 00:11:10,500 --> 00:11:13,040 і знову ж, це Вся відправився блок 235 00:11:13,040 --> 00:11:16,810 це те, що є оперативним блокувати для виконання цієї функції. 236 00:11:16,810 --> 00:11:18,560 Так що це визначення функції. 237 00:11:18,560 --> 00:11:21,587 І є декларація, потім вниз тут, я можу просто викликати функцію. 238 00:11:21,587 --> 00:11:23,920 І знову, програма Інтерпретатор, починаючи з верхньої, 239 00:11:23,920 --> 00:11:25,280 побачите це визначення. 240 00:11:25,280 --> 00:11:27,960 Це не буде виконувати цю, поки це сюди, а потім як, про 241 00:11:27,960 --> 00:11:30,860 Тепер ви назвали, я думаю, я повинен виконати його. 242 00:11:30,860 --> 00:11:33,850 >> Річ, що дуже часто бачити в Python файли, 243 00:11:33,850 --> 00:11:36,700 особливо файли Python, що які оприлюднені 244 00:11:36,700 --> 00:11:41,650 і розробили по-- розробив і підтримується, це щось з цієї форми. 245 00:11:41,650 --> 00:11:44,540 Це так, тому що basically-- Python, ви починаєте на вершині 246 00:11:44,540 --> 00:11:50,310 і тоді ви виконати до дна, Я, якщо я щойно назвав Маріо тут, 247 00:11:50,310 --> 00:11:54,190 то в будь-який час я включив цей файл в інший файл, тому що я хотів використовувати 248 00:11:54,190 --> 00:11:58,580 є функція Маріо, що інший файл буде також цей виклик Маріо в ньому. 249 00:11:58,580 --> 00:12:01,000 І коли я побіг цей файл, було б назвати Маріо. 250 00:12:01,000 --> 00:12:04,520 >> Тому цілком можливо, що тільки я хочу, щоб запустити це, якщо я насправді 251 00:12:04,520 --> 00:12:07,290 Виконавши цю конкретний файл. 252 00:12:07,290 --> 00:12:11,520 І тому я можу обернути це в ідіома, як це, де я кажу, 253 00:12:11,520 --> 00:12:14,820 якщо ім'я цієї страти Середа є основним, 254 00:12:14,820 --> 00:12:16,200 то я хочу, щоб зробити ці речі. 255 00:12:16,200 --> 00:12:18,710 В іншому випадку хтось інший може use-- включити мій function-- 256 00:12:18,710 --> 00:12:22,510 мій файл, і тільки, щоб отримати Доступ до цих функцій 257 00:12:22,510 --> 00:12:25,552 без того, щоб запустити речі що я хочу, щоб виконати в цьому файлі. 258 00:12:25,552 --> 00:12:27,260 Це, знову ж таки, за бажанням але дуже часто. 259 00:12:27,260 --> 00:12:30,450 260 00:12:30,450 --> 00:12:33,840 >> Ці речі є entirely-- точно так само між С і Python, 261 00:12:33,840 --> 00:12:35,100 звичайно, в 3. 262 00:12:35,100 --> 00:12:38,610 Я думаю, що в 2, оператор ділення іноді дає Вам плаває, коли 263 00:12:38,610 --> 00:12:41,450 Ви оперували цілих чисел, і або Ви хотіли, щоб або ви цього не зробили. 264 00:12:41,450 --> 00:12:44,777 Але плюс, мінус, і раз працювати так само, як і слід було очікувати, 265 00:12:44,777 --> 00:12:46,110 за винятком Злегка більше типів. 266 00:12:46,110 --> 00:12:49,740 Таким чином, ви можете помножити плотах по Інтс, і ті види речей. 267 00:12:49,740 --> 00:12:52,480 >> Набір працює точно так само. 268 00:12:52,480 --> 00:12:54,310 Ви можете використовувати дві рівні знаки. 269 00:12:54,310 --> 00:12:59,000 inequals-- більше ніж, менше ніж, такого роду things-- 270 00:12:59,000 --> 00:13:02,580 мають значення, які Ви знайомі з ними. 271 00:13:02,580 --> 00:13:05,770 >> Де C використовує ці оператори, Python використовує трохи більше по-англійськи 272 00:13:05,770 --> 00:13:06,390 зчитувальні ті. 273 00:13:06,390 --> 00:13:09,348 Таким чином, замість двох, амперсанди, ви буквально введіть слово "і", "або", 274 00:13:09,348 --> 00:13:10,740 чи ні." 275 00:13:10,740 --> 00:13:13,420 Як у if-- в ваш умовні оператори, 276 00:13:13,420 --> 00:13:17,670 ми бачили раніше, що цей синтаксис в C відповідає цим синтаксисом в Python. 277 00:13:17,670 --> 00:13:21,010 І там не багато відрізняється там, за винятком трохи 278 00:13:21,010 --> 00:13:24,780 пунктуації навколо сторін. 279 00:13:24,780 --> 00:13:28,890 Знову ж таки, де С буде ще якщо Python використовує Еліф, 280 00:13:28,890 --> 00:13:33,960 але вони в основному Зміни рівня поверхні. 281 00:13:33,960 --> 00:13:38,450 >> Ітерація, як це часто написано в цій ідіоми в Python. 282 00:13:38,450 --> 00:13:42,350 Ви можете виготовити таку що з час циклу на зовнішній стороні 283 00:13:42,350 --> 00:13:46,387 якщо ви хочете, але ви звичайно, не доведеться. 284 00:13:46,387 --> 00:13:48,970 І знову ж, якщо ви хотіли, роздрукувати елементи в масиві з 285 00:13:48,970 --> 00:13:50,560 Ви могли б зробити це таким чином. 286 00:13:50,560 --> 00:13:52,927 Один з кумедних речей, про Python, хоча, 287 00:13:52,927 --> 00:13:54,760 є те, що вам не потрібно щоб використовувати цю парадигму, 288 00:13:54,760 --> 00:13:57,290 і ви можете використовувати трохи більш елегантною. 289 00:13:57,290 --> 00:13:59,370 Ви кажете, для ря в. 290 00:13:59,370 --> 00:14:02,980 >> Так замість того, тут і працює над показниками, 291 00:14:02,980 --> 00:14:05,630 а потім потягнувши окремі елементи, 292 00:14:05,630 --> 00:14:08,644 Ви говорите насправді просто, щоб пробігають самих елементів. 293 00:14:08,644 --> 00:14:11,060 І тоді все, що ви робите всередині може працювати безпосередньо 294 00:14:11,060 --> 00:14:13,260 на елементах, який є досить весело. 295 00:14:13,260 --> 00:14:16,710 І ми будемо see-- ми використовуватимемо що ідіома знову і знову 296 00:14:16,710 --> 00:14:18,050 а ми ходимо за допомогою коду. 297 00:14:18,050 --> 00:14:20,091 >> Це, знову ж таки, приклад про щось, що я буду 298 00:14:20,091 --> 00:14:23,300 зателефонувати Python магію, хоча є дуже технічні причини, чому це працює. 299 00:14:23,300 --> 00:14:26,340 І є технічні речі, які потрібно, щоб бути правдою про масиві в порядку 300 00:14:26,340 --> 00:14:28,340 для цього, щоб працювати за лаштунками. 301 00:14:28,340 --> 00:14:31,390 Справа в тому, що більшість видів які ви очікували б, щоб це працювало 302 00:14:31,390 --> 00:14:36,610 були реалізовані в цьому Ви в вбудованої мови. 303 00:14:36,610 --> 00:14:40,030 >> Інша справа, що було б непогано якщо це працює на будь-якій мові, 304 00:14:40,030 --> 00:14:45,460 але є кілька причин, чому він не може, роздрукувати цей рядок раз це число. 305 00:14:45,460 --> 00:14:48,860 Виявляється в Python, це робить саме що ви хочете, який є тільки весело, 306 00:14:48,860 --> 00:14:52,840 і означає, що ми можемо реально знизити цю програму, знову mario.c. 307 00:14:52,840 --> 00:14:57,150 Замість перебору багато, ми можемо просто сказати, я хочу деяку кількість прогалин, 308 00:14:57,150 --> 00:15:01,120 Я хочу кількість хешей, і деякі хеши в кінці. 309 00:15:01,120 --> 00:15:02,640 І знову, ми використовуємо цей формат. 310 00:15:02,640 --> 00:15:05,340 >> Тут ми передаємо в змінна цей шлях. 311 00:15:05,340 --> 00:15:08,050 Знову ж таки, ми не повинні говорити який тип змінної вона є, 312 00:15:08,050 --> 00:15:11,322 і тільки раз ми отримати помилок під час виконання. 313 00:15:11,322 --> 00:15:13,030 Коли хтось намагається щоб передати щось в, 314 00:15:13,030 --> 00:15:14,860 це прийде в функції просто відмінно. 315 00:15:14,860 --> 00:15:18,240 Якщо ми клин сюди, тому що це не що ви можете створити пробігає, 316 00:15:18,240 --> 00:15:22,100 Я отримую повідомлення про помилку виконання там, і я буду мати, щоб налагодити його таким чином. 317 00:15:22,100 --> 00:15:25,050 Але в той же час, я не бути дуже обережними, про те, що 318 00:15:25,050 --> 00:15:32,800 отримує прийнятий у тих пір, поки в фактичний виконання все це працює дуже чисто. 319 00:15:32,800 --> 00:15:35,080 >> Я міг би навіть зробити це трохи чистішим 320 00:15:35,080 --> 00:15:41,770 з використанням конкретного вбудовану функцію на рядках, який по правому краю. 321 00:15:41,770 --> 00:15:45,250 Це просто корисна функція валяється в бібліотеці. 322 00:15:45,250 --> 00:15:47,660 Це в документації якщо ви йдете і дивитеся на нього. 323 00:15:47,660 --> 00:15:51,650 І я кажу, ну я збираюся мати цей рядок, деяка кількість хешей, 324 00:15:51,650 --> 00:15:56,390 і я хотів би, щоб виправдати право it-- майданчик це з пробілами, щоб бути ця довжина. 325 00:15:56,390 --> 00:16:00,584 >> Знову ж, це в Документація, яка приносить us-- 326 00:16:00,584 --> 00:16:03,500 Я насправді за посиланням these-- який приносить нам до нашого другого правила 327 00:16:03,500 --> 00:16:06,990 для стандартної бібліотеки Python-- Методи функцій Ваші друзі. 328 00:16:06,990 --> 00:16:09,880 І це часто коштує ваш час йти за Цікаво 329 00:16:09,880 --> 00:16:12,310 якщо є річ, яка просто робить це. 330 00:16:12,310 --> 00:16:13,830 Там, ймовірно, є. 331 00:16:13,830 --> 00:16:15,990 Якщо ви хотіли б майданчик з рядка, якби ви 332 00:16:15,990 --> 00:16:17,470 хотів взяти назад половина рядка, якби ви 333 00:16:17,470 --> 00:16:20,370 подобається шукати через рядок, якщо Ви хотіли б, щоб розбити пару речей 334 00:16:20,370 --> 00:16:22,420 разом з рядком комами між ними, 335 00:16:22,420 --> 00:16:24,640 Є стандартна бібліотека Функції для цього. 336 00:16:24,640 --> 00:16:27,190 >> І це робить ваше життя легше, якщо ви використовуєте їх 337 00:16:27,190 --> 00:16:29,240 замість викочування все на свій розсуд 338 00:16:29,240 --> 00:16:31,650 у п'ять рядків коду тут, п'ять рядків коду тут. 339 00:16:31,650 --> 00:16:34,430 Це дійсно починається додати до реального часу. 340 00:16:34,430 --> 00:16:37,430 >> Один з найцікавіших речей про те, як це викликається. 341 00:16:37,430 --> 00:16:39,980 Ви помітите, що є точка річ. 342 00:16:39,980 --> 00:16:43,490 У мене є об'єкт ліворуч, а потім я назвав точку функції. 343 00:16:43,490 --> 00:16:49,780 Це один з парадигм, що Python використовує для кріплення методи об'єктів. 344 00:16:49,780 --> 00:16:54,410 Ми будемо говорити про те, що це Дуже коротко зрештою, 345 00:16:54,410 --> 00:16:58,510 але знаю, що ми обидва можемо працювати на речі, приймаючи, що річ, кажучи точка 346 00:16:58,510 --> 00:17:01,690 всі, або за телефоном функція, яка приймає 347 00:17:01,690 --> 00:17:04,339 що об'єкт і деякі інші аргументи. 348 00:17:04,339 --> 00:17:07,450 >> Таким чином, ці обидва способи, що все робиться в Python. 349 00:17:07,450 --> 00:17:09,780 І чи є конкретний функціональність реалізована 350 00:17:09,780 --> 00:17:14,230 в цьому стилі або це стиль є те, що вам 351 00:17:14,230 --> 00:17:19,990 повинен виглядати, поки ви не отримаєте повісити для яких вона, швидше за все, потрапляють в. 352 00:17:19,990 --> 00:17:22,660 Там це більш-менш згуртованої Філософія Python 353 00:17:22,660 --> 00:17:24,930 що ви поглинаєте в основному написавши багато в ньому. 354 00:17:24,930 --> 00:17:28,190 У якийсь момент, що один з них щось буде реалізована як 355 00:17:28,190 --> 00:17:29,470 стає природним. 356 00:17:29,470 --> 00:17:32,420 В даний час, це просто щось Ви дізнаєтеся, як ви з'ясувати 357 00:17:32,420 --> 00:17:34,140 кожен індивідуальна річ. 358 00:17:34,140 --> 00:17:36,420 >> Так стандартна бібліотека функції ваші друзі, 359 00:17:36,420 --> 00:17:41,320 і вони дозволяють вам написати речі, які взяти на себе цю дійсно багато місця найближчим часом, 360 00:17:41,320 --> 00:17:42,040 дійсно елегантно. 361 00:17:42,040 --> 00:17:45,670 І це насправді, ймовірно, більш розбірливими, я б сказав, чим програми C 362 00:17:45,670 --> 00:17:46,780 там. 363 00:17:46,780 --> 00:17:49,730 Не кажучи вже про те, що так Коротше кажучи ви можете розмістити цілий слон 364 00:17:49,730 --> 00:17:52,250 в просторі, що ми врятовані. 365 00:17:52,250 --> 00:17:56,270 >> Ще одна річ, це реалізація Маріо це точка C, який я думаю, 366 00:17:56,270 --> 00:17:57,890 є найкоротшим ви можете отримати його. 367 00:17:57,890 --> 00:18:00,757 Це не має Отримати Int, але Важко коди вартість 10 368 00:18:00,757 --> 00:18:02,090 так само, як це робить. 369 00:18:02,090 --> 00:18:06,080 Виявляється, що це один годинник в в 84 символів, в той час як Python 64. 370 00:18:06,080 --> 00:18:11,490 І це набагато більш читабельним, ніж це сміття тут. 371 00:18:11,490 --> 00:18:14,610 Так Python є більш ефективним у просторі. 372 00:18:14,610 --> 00:18:17,260 Це трохи менш ефективно, в той час, але не набагато. 373 00:18:17,260 --> 00:18:18,890 >> Списки є важливим річ ​​в Python. 374 00:18:18,890 --> 00:18:21,540 375 00:18:21,540 --> 00:18:24,587 Ми не бачили їх, але вони працюють як масиви робити в С 376 00:18:24,587 --> 00:18:27,170 Так от, їх можна оголосити, Ви можете передати їх в річ. 377 00:18:27,170 --> 00:18:29,810 Тепер тримає квадратів А. Масив з цих речей. 378 00:18:29,810 --> 00:18:33,480 Знову ж таки, ми не оголошений тип, але, якщо ми коли-небудь спробувати використовувати його, 379 00:18:33,480 --> 00:18:36,260 все, що ви очікували б працювати на масив цілих чисел 380 00:18:36,260 --> 00:18:40,130 буде працювати на масив цілих чисел. 381 00:18:40,130 --> 00:18:42,030 >> Це річ, яка ви абсолютно не можете 382 00:18:42,030 --> 00:18:47,390 зробити в C, тому що пам'яті це так руки, 383 00:18:47,390 --> 00:18:48,950 але дуже легко зробити в Python. 384 00:18:48,950 --> 00:18:55,310 Якщо я хочу, щоб мій масив, щоб бути більше, я можу додати елемент до нього, і це нормально. 385 00:18:55,310 --> 00:18:57,150 >> Що відбувається за лаштунками? 386 00:18:57,150 --> 00:18:59,150 Перекладач піде і отримати деяку пам'ять, 387 00:18:59,150 --> 00:19:00,860 і, можливо, це буде отримати трохи додаткової пам'яті, 388 00:19:00,860 --> 00:19:03,090 так що я не так що я не щоб перерозподілити кожного разу. 389 00:19:03,090 --> 00:19:04,897 Але скільки більше пам'ять це потрібно? 390 00:19:04,897 --> 00:19:06,730 Це не рішення що ви повинні зробити, 391 00:19:06,730 --> 00:19:10,540 це рішення, які перекладач збирається робити. 392 00:19:10,540 --> 00:19:12,270 >> Тут ми бачимо, діапазон може два аргументи, 393 00:19:12,270 --> 00:19:16,430 але вона як і раніше буде включено у верхній тому ми додаємо 1 є. 394 00:19:16,430 --> 00:19:21,970 Це мова, яка є ще більш розумний спосіб написати щось на зразок цього. 395 00:19:21,970 --> 00:19:25,980 Це називається список розуміння, і ось що ми говоримо 396 00:19:25,980 --> 00:19:32,560 , Я хотів би поставити в квадрат я для кожного значення I в цьому діапазоні. 397 00:19:32,560 --> 00:19:35,770 Ця річ на праві може бути іншою Масив, і це саме зліва 398 00:19:35,770 --> 00:19:40,740 щоб бути будь-якої конкретної функції що б взяти в I в якості змінної 399 00:19:40,740 --> 00:19:42,250 і дати мені якийсь результат. 400 00:19:42,250 --> 00:19:43,480 >> Те, що я збираюся зробити, це, Я збираюся побудувати 401 00:19:43,480 --> 00:19:46,200 масив, який всі ці речі для кожного значення в цьому діапазоні. 402 00:19:46,200 --> 00:19:48,960 403 00:19:48,960 --> 00:19:55,670 І це супер елегантний, супер короткі, і це дуже ясно, що це означає. 404 00:19:55,670 --> 00:19:59,190 Це є однією з things-- це знову, 405 00:19:59,190 --> 00:20:03,860 одним of-- дуже символічно з Причини, з яких люди, як Python. 406 00:20:03,860 --> 00:20:05,900 Якщо вам подобається програмування як це, то Python 407 00:20:05,900 --> 00:20:07,830 це мова, який ви хотіли б навчатися. 408 00:20:07,830 --> 00:20:10,950 >> І знову, є технічна Причини, чому це працює. 409 00:20:10,950 --> 00:20:14,730 Але, наскільки нам відомо, ми більш-менш не хвилює. 410 00:20:14,730 --> 00:20:18,500 >> Так що, якщо ви хочете, щоб роздрукувати списки, деякі з тих же ідіом корисні. 411 00:20:18,500 --> 00:20:20,940 Бо я в цьому діапазоні, ми могли б Індекс через всі речі 412 00:20:20,940 --> 00:20:23,140 а потім роздрукувати їх усі. 413 00:20:23,140 --> 00:20:24,650 І ви побачите, Льон тут. 414 00:20:24,650 --> 00:20:27,150 Якщо ви коли-небудь хотіли отримати довжина масиву, це 415 00:20:27,150 --> 00:20:31,150 дуже легко в Python, це дуже важко в С. 416 00:20:31,150 --> 00:20:33,720 Це буде друкувати точно те, що ви очікували б його. 417 00:20:33,720 --> 00:20:36,986 Ми могли б також, як ми бачили раніше, перебору елементів масиву в 418 00:20:36,986 --> 00:20:39,860 безпосередньо, а потім просто говорити про їм, замість того, індекс 419 00:20:39,860 --> 00:20:43,190 назад в масиві кожен раз. 420 00:20:43,190 --> 00:20:45,990 >> І це, що ви можете зробити. 421 00:20:45,990 --> 00:20:49,984 Таким чином, в C, якщо ви запитаєте щось як це, друк буде сказати, 422 00:20:49,984 --> 00:20:51,150 це масив цілих чисел. 423 00:20:51,150 --> 00:20:53,456 Це, безумовно, не є Рядок, я не можу роздрукувати його. 424 00:20:53,456 --> 00:20:54,830 Python більш-менш не хвилює. 425 00:20:54,830 --> 00:20:57,496 Це як, чи є спосіб, що я може перетворити це в в рядок? 426 00:20:57,496 --> 00:20:58,500 Так, я зроблю це. 427 00:20:58,500 --> 00:21:01,600 І тому я просто роздрукувати це. 428 00:21:01,600 --> 00:21:03,640 Це означає, що ви можете робити речі like-- них 429 00:21:03,640 --> 00:21:06,530 Найбільш з твердих частин гри п'ятнадцяти, написана 430 00:21:06,530 --> 00:21:08,930 дуже коротко в Python. 431 00:21:08,930 --> 00:21:11,320 >> Ви побачите, що є трохи of-- тут 432 00:21:11,320 --> 00:21:14,441 Я кинув ціле в рядок, і я повинен зробити це вручну. 433 00:21:14,441 --> 00:21:16,190 І я збираюся додати це інший рядком, 434 00:21:16,190 --> 00:21:17,590 або іншим чином Python плутається. 435 00:21:17,590 --> 00:21:19,840 Але чи то, коли ви додати рядок в ціле число, 436 00:21:19,840 --> 00:21:22,630 Я вважаю, я отримую ціле назад або рядок назад? 437 00:21:22,630 --> 00:21:24,480 Але, знову ж, якщо ви просто зателефонувати на вул речі, 438 00:21:24,480 --> 00:21:27,240 і міг в будь-якій можливій Світ бути перетворені в рядок, 439 00:21:27,240 --> 00:21:30,390 це, ймовірно, буде перетворюється в рядок. 440 00:21:30,390 --> 00:21:33,120 >> Тут ми бачимо використання вкладений список розуміння 441 00:21:33,120 --> 00:21:38,690 ліворуч, деякі індексації, яка саме так, як ви б звикнути до нього, 442 00:21:38,690 --> 00:21:40,060 і деякі друку з речей. 443 00:21:40,060 --> 00:21:42,560 Знову ж таки, ми визначили деякі Функції і ми будемо називати їх 444 00:21:42,560 --> 00:21:45,820 У головному, коли ми насправді отримати файл. 445 00:21:45,820 --> 00:21:52,004 Повернення працює точно, як ви б очікувати від роботи з К. Знайти, 446 00:21:52,004 --> 00:21:54,420 ми можемо встановити такі речі, як this-- ось список розуміння 447 00:21:54,420 --> 00:21:59,245 є присвоювання змінної, і ми можемо насправді зробити це ще простіше. 448 00:21:59,245 --> 00:22:01,870 Нам не потрібно, щоб написати пошуку, бо вбудований в мову 449 00:22:01,870 --> 00:22:04,230 , Якщо ця річ знаходиться в цьому масиві. 450 00:22:04,230 --> 00:22:05,680 Повернутися правда, ще повернутися помилковим. 451 00:22:05,680 --> 00:22:08,830 Так що це сукупність знахідку. 452 00:22:08,830 --> 00:22:12,230 >> Сукупність роду включає в себе виклик роду, 453 00:22:12,230 --> 00:22:15,462 які is-- існують реалізації це вбудований в деяких бібліотеках C. 454 00:22:15,462 --> 00:22:17,170 Якщо ви хочете це роду в зворотному напрямку, вам 455 00:22:17,170 --> 00:22:20,450 можна перевизначити цей необов'язковий Аргумент у зворотному з істинним. 456 00:22:20,450 --> 00:22:23,350 457 00:22:23,350 --> 00:22:27,860 І якщо ви хочете, щоб відсортувати за струни, який вбудований в а. 458 00:22:27,860 --> 00:22:31,950 >> Так що це не означає, це речі, які потрібно робити щодня, 459 00:22:31,950 --> 00:22:34,280 але ідея, що це філософія Python, 460 00:22:34,280 --> 00:22:37,530 що всі ці речі, які ви б начебто хочу зробити вбудовані. 461 00:22:37,530 --> 00:22:42,410 І більшість стандартних функцій, так начебто, довжина, все, 462 00:22:42,410 --> 00:22:44,380 підтримує більшість логічно розумний вхід. 463 00:22:44,380 --> 00:22:49,020 Ви називаєте LEN на масиву ж як ви називаєте LEN на рядок. 464 00:22:49,020 --> 00:22:55,785 Ви multiply-- впорядкувати рядки так само, як ви сортувати масиви. 465 00:22:55,785 --> 00:22:58,930 466 00:22:58,930 --> 00:23:00,740 >> Більшість стандартних функцій що люди будують, 467 00:23:00,740 --> 00:23:03,000 і більшість сторонніх Бібліотеки, люди 468 00:23:03,000 --> 00:23:06,980 будувати, бо вони емуляції Конструкція стандартної бібліотеки, 469 00:23:06,980 --> 00:23:10,190 можна назвати на все, що ти як, чому це не просто робота, 470 00:23:10,190 --> 00:23:12,800 в C. Більш-менш, він працюватиме в Python 471 00:23:12,800 --> 00:23:15,930 бо люди працюють за малюнку , Що річ, а потім працювати 472 00:23:15,930 --> 00:23:17,510 відповідно на ньому. 473 00:23:17,510 --> 00:23:22,760 Отже, ще раз, технічний фон, але його робить наше життя простіше, так як програмістів. 474 00:23:22,760 --> 00:23:26,820 >> Так от файловий ввід / вивід. подати вводу / виводу має безліч дрібниці, які роблять його складним, 475 00:23:26,820 --> 00:23:29,890 і так є ресурси в Інтернеті, але в двох словах, 476 00:23:29,890 --> 00:23:33,010 Ви телефонуєте відкритий файл назвати з певного типу. 477 00:23:33,010 --> 00:23:37,640 Так що це читати, читати і писати, писати або додати. 478 00:23:37,640 --> 00:23:41,790 Ви читаєте певну кількість персонажі, і ви друкувати ті, 479 00:23:41,790 --> 00:23:42,595 Ви отримаєте Hello! 480 00:23:42,595 --> 00:23:43,970 Я маю на увазі, як це файл мав Привіт! 481 00:23:43,970 --> 00:23:46,480 У ньому, дзвоніть, щоб читати, і те, що ви отримаєте назад 482 00:23:46,480 --> 00:23:49,520 це рядок, яка має всі в решті частини масиву, 483 00:23:49,520 --> 00:23:50,860 або все решти файлу. 484 00:23:50,860 --> 00:23:53,805 485 00:23:53,805 --> 00:23:56,055 Якщо ви телефонуєте знову читати, Ви в кінці файлу, 486 00:23:56,055 --> 00:23:58,138 і так ви не отримаєте нічого, і тому ви будете закривати. 487 00:23:58,138 --> 00:24:02,510 Знову ж, це .close ніж закрити файл, як це було б в C. 488 00:24:02,510 --> 00:24:07,190 Це більш-менш, бо F є річ, і ви хотіли б для F, щоб закрити. 489 00:24:07,190 --> 00:24:12,092 Але основний файловий ввід / висновок не Особливо складним. 490 00:24:12,092 --> 00:24:15,300 Знову ж таки, якщо ви хочете, щоб відкрити файл, якщо Ви хотіли б прочитати певну лінію, 491 00:24:15,300 --> 00:24:17,870 Ви можете вийти з зокрема line-- є вбудовані модулі для цього. 492 00:24:17,870 --> 00:24:19,995 Якщо ви хочете, щоб написати річ, ви можете написати це. 493 00:24:19,995 --> 00:24:23,412 Якщо ви хочете, щоб написати людини Укуси, ви можете написати їх. 494 00:24:23,412 --> 00:24:25,620 І якщо ви хочете, щоб ітерації за рядків файла 495 00:24:25,620 --> 00:24:29,557 індивідуально, як ми це робили в шматку від Кілька тижнів тому, ви можете зробити що. 496 00:24:29,557 --> 00:24:32,140 Знову ж таки, більшість об'єктів, які ви б хотів би мати можливість перебору 497 00:24:32,140 --> 00:24:33,780 підтримка ітерації над ними. 498 00:24:33,780 --> 00:24:37,430 У пітонів, файл, може бути, це річ, яка Я хотів би, щоб перебрати порядково. 499 00:24:37,430 --> 00:24:39,138 Якби це був словник слів, і я був 500 00:24:39,138 --> 00:24:42,181 намагаючись отримати ці окремі слова з, а потім, протягом цього циклу, 501 00:24:42,181 --> 00:24:44,180 лінія це буде кожне слово, у свою чергу, і це 502 00:24:44,180 --> 00:24:47,880 буде виконуватися для кожного рядка у файлі до кінця файлу. 503 00:24:47,880 --> 00:24:52,280 І знову ж, якщо я роздрукував друг лінія, лінії оснащені нових ліній, 504 00:24:52,280 --> 00:24:54,740 тому я встановивши кінець повернутися до речі, як це. 505 00:24:54,740 --> 00:24:56,580 Тоді я отримати вміст мого файлу. 506 00:24:56,580 --> 00:25:03,610 507 00:25:03,610 --> 00:25:07,480 >> Друга річ, яка працює в деякі способи, як списки, а в деяких відносинах 508 00:25:07,480 --> 00:25:11,870 якось істотно більш потужний, 509 00:25:11,870 --> 00:25:16,170 словники, які дійсно здорово використовувати, але в основному хеш 510 00:25:16,170 --> 00:25:17,670 Столи в маскуванні. 511 00:25:17,670 --> 00:25:23,330 Ви створити його, використовуючи саме два символи, який є дивним 512 00:25:23,330 --> 00:25:25,959 якщо ви намагалися реалізувати хеш-таблиця для вашої проблеми набору, 513 00:25:25,959 --> 00:25:27,250 Ви знаєте, біль, що може бути. 514 00:25:27,250 --> 00:25:29,390 Але люди зробили це і зробив це так добре, 515 00:25:29,390 --> 00:25:32,260 що ви не повинні турбуватися про це більше. 516 00:25:32,260 --> 00:25:35,180 >> Потім ви можете вставляти окремі речі. 517 00:25:35,180 --> 00:25:38,110 Хеш tables-- або словники не дуже 518 00:25:38,110 --> 00:25:40,240 все одно, що ви зберігаєте в них. 519 00:25:40,240 --> 00:25:44,210 Так що, якщо деякі дані числа, і деякі записи списки, 520 00:25:44,210 --> 00:25:47,360 якщо деякі записи та інші словники, і деякі записи є рядками, 521 00:25:47,360 --> 00:25:49,930 Python не багато догляду. 522 00:25:49,930 --> 00:25:53,460 >> Знову ж таки, якщо ви йдете в нього очікували рядок і те, що ви отримаєте назад 523 00:25:53,460 --> 00:25:56,269 є масивом, це ваша проблема. 524 00:25:56,269 --> 00:25:58,810 І, може бути, це той, хто винен думав, що це було покласти речі 525 00:25:58,810 --> 00:26:00,476 в словнику, може бути, це була ти. 526 00:26:00,476 --> 00:26:02,350 Якщо хтось ще, сподіваюся, вони були 527 00:26:02,350 --> 00:26:04,520 добре себе про що збирається в словнику 528 00:26:04,520 --> 00:26:07,420 і не залишають ніяких помилок для вас, щоб потрапити в. 529 00:26:07,420 --> 00:26:10,890 >> Але стандартні функції будуть повернути вам добре себе речі. 530 00:26:10,890 --> 00:26:13,500 Так вони кажуть, це повертає резервне словник рядків, 531 00:26:13,500 --> 00:26:15,860 то все ви збираєтеся щоб вийти з рядок. 532 00:26:15,860 --> 00:26:20,710 Якщо ви зробити деякі це, і це спрацьовує Ви до, ну, що може бути на вас. 533 00:26:20,710 --> 00:26:25,542 Python, безумовно, дає вам достатньо мотузку, щоб повіситися, якщо ви хотіли б. 534 00:26:25,542 --> 00:26:28,250 Тепер ми можемо роздрукувати людини елементи це і це повертається 535 00:26:28,250 --> 00:26:29,935 саме те, що ви очікували. 536 00:26:29,935 --> 00:26:32,810 Саме те, що ви очікували б, я думаю ,, є фраза, що я використовую багато, 537 00:26:32,810 --> 00:26:35,070 але це більш або менш, як працює Python. 538 00:26:35,070 --> 00:26:39,880 Якщо ви попросите речі, яка не є це, в Python викине помилку 539 00:26:39,880 --> 00:26:43,194 і він буде кинути вас з всі програми, були в. 540 00:26:43,194 --> 00:26:45,360 Це дійсно будете роздрукувати більше інформації, ніж, 541 00:26:45,360 --> 00:26:49,110 це буде вказувати you-- це буде додати рядок, і так. 542 00:26:49,110 --> 00:26:52,190 >> І, знову ж таки, може бути, ми хочемо перебрати словники 543 00:26:52,190 --> 00:26:54,410 і знайти все, що в ньому. 544 00:26:54,410 --> 00:26:57,440 Тут ми перебору дві речі, в той же час. 545 00:26:57,440 --> 00:27:03,040 І тому ми будемо робити це з ключем, значення, але потім роздрукувати всі ці. 546 00:27:03,040 --> 00:27:06,300 >> І якщо ми хочемо cast-- якщо ми насправді побіг це, 547 00:27:06,300 --> 00:27:10,840 ми б мати деякі проблеми, тому що on--, коли ми пішли в с Давидом, 548 00:27:10,840 --> 00:27:13,920 він не міг add-- якщо ми не кинути його в рядок-перше, 549 00:27:13,920 --> 00:27:17,802 ми не могли додати, що масив рядків на рядок. 550 00:27:17,802 --> 00:27:19,760 Але якщо ми кинемо його в Рядок, ми що-небудь 551 00:27:19,760 --> 00:27:22,590 як це, якого, може бути те, що ми хотіли б прочитати. 552 00:27:22,590 --> 00:27:27,000 553 00:27:27,000 --> 00:27:30,500 >> І це правопису. 554 00:27:30,500 --> 00:27:32,460 Ми щойно прочитав в речах. 555 00:27:32,460 --> 00:27:35,770 Таким чином, ми можете прочитати в окремі слова, як лінії. 556 00:27:35,770 --> 00:27:38,240 Ми відрубати останній річ, так товстої кишки мінус 1 557 00:27:38,240 --> 00:27:41,651 чавкає від останнє, що we-- останній символ рядка. 558 00:27:41,651 --> 00:27:42,150 Ми скажемо. 559 00:27:42,150 --> 00:27:44,730 ОК, кожен з тих, хто отримує вставляється в цей словник, 560 00:27:44,730 --> 00:27:45,810 відображення на значення 1. 561 00:27:45,810 --> 00:27:48,006 Ми не особливо піклуватися про те, що один, 562 00:27:48,006 --> 00:27:51,130 але це тільки там, щоб сказати, да ладно, ця річ я покладу в словнику. 563 00:27:51,130 --> 00:27:53,182 Тому що пізніше те, що ми збираюся зробити, це ми 564 00:27:53,182 --> 00:27:55,390 хочу сказати, добре, якщо це в словнику взагалі. 565 00:27:55,390 --> 00:27:57,650 >> Знову ж таки, це перевірка на членство до операційної 566 00:27:57,650 --> 00:28:00,940 використовуючи зовсім різні Алгоритм, ніж це буде в списку, 567 00:28:00,940 --> 00:28:05,709 але ми називаємо це ж шлях, який деякі з цього цукру Python покриття 568 00:28:05,709 --> 00:28:07,250 речі так, щоб вони простіше у використанні. 569 00:28:07,250 --> 00:28:10,230 І знову, ми бачили такі речі, як це раніше. 570 00:28:10,230 --> 00:28:12,940 В основному це знайти, або це точно той же синтаксис 571 00:28:12,940 --> 00:28:16,480 а знайти, але працює більше зовсім різні структури. 572 00:28:16,480 --> 00:28:20,170 І ми не особливо хвилює. 573 00:28:20,170 --> 00:28:25,540 Так що ті речі, які ви було запропоновано реалізувати для правопису. 574 00:28:25,540 --> 00:28:29,278 У цьому випадку, ми збираємося, щоб отримати більш-менш все psets зробили. 575 00:28:29,278 --> 00:28:31,474 >> АУДИТОРІЯ: Так що в основному тільки повертається 576 00:28:31,474 --> 00:28:34,852 а неправильно пишеться, якщо воно не відповідати щось в словнику? 577 00:28:34,852 --> 00:28:36,060 РОСС RHEINGANS-Е: Так, так. 578 00:28:36,060 --> 00:28:38,964 579 00:28:38,964 --> 00:28:40,880 І так, це адаптація проблеми встановіть 580 00:28:40,880 --> 00:28:43,150 який просить вас зробити саме це. 581 00:28:43,150 --> 00:28:46,357 >> АУДИТОРІЯ: Чому лінія мінус 1 там? 582 00:28:46,357 --> 00:28:48,190 РОСС RHEINGANS-Е: Так коли ви ітерації 583 00:28:48,190 --> 00:28:50,300 над файл просити по лінії, лінії 584 00:28:50,300 --> 00:28:53,900 прийшов з нового рядка Наприкінці it-- мінус 1 585 00:28:53,900 --> 00:28:55,260 це просто магазин тих, від. 586 00:28:55,260 --> 00:28:59,549 І це особливо гнучким спосіб індексації в речі. 587 00:28:59,549 --> 00:29:01,590 Так що, якщо у вас є рядок, і ви хотіли б, ну я 588 00:29:01,590 --> 00:29:05,340 збирається почати в трьох характер і я збираюся йти до кінця. 589 00:29:05,340 --> 00:29:07,140 3 товстої кишки буде робити це за вас. 590 00:29:07,140 --> 00:29:10,570 Якщо ви, як і я хочу, щоб почати на початок і перейти до останньої мінус 1 591 00:29:10,570 --> 00:29:12,400 характер, товстої кишки мінус 1. 592 00:29:12,400 --> 00:29:14,940 І якщо ви хочете, щоб перейти від третій мінус-перше, 593 00:29:14,940 --> 00:29:16,570 то ви б сказали 3 мінус 1. 594 00:29:16,570 --> 00:29:19,464 595 00:29:19,464 --> 00:29:22,400 >> Крім того, якщо ви хочете, щоб індекс в речі, рахуючи від задньої, 596 00:29:22,400 --> 00:29:24,470 ви просто індекс в мінус з номерами. 597 00:29:24,470 --> 00:29:26,980 А оскільки, в якому C вибухне або, може бути 598 00:29:26,980 --> 00:29:31,090 годувати тебе інший пам'яті у вас не було доступ до, почути можна сказати мінус 1 599 00:29:31,090 --> 00:29:34,104 означає, що в минулому, але 1 символ в рядку. 600 00:29:34,104 --> 00:29:36,950 601 00:29:36,950 --> 00:29:43,590 >> Модулі є version-- аналогів у бібліотеках C 602 00:29:43,590 --> 00:29:45,119 і є корисними для багатьох речей. 603 00:29:45,119 --> 00:29:46,910 Багато речей, які ви б хотіли займатися Python, 604 00:29:46,910 --> 00:29:50,040 крім простої маніпуляції змінних, 605 00:29:50,040 --> 00:29:52,290 Ви хочете, щоб гак у великі бібліотеки з великим 606 00:29:52,290 --> 00:29:55,910 Інтерфейси і більш Можливості для взаємодії 607 00:29:55,910 --> 00:29:57,195 з іншими частинами світу. 608 00:29:57,195 --> 00:29:58,910 SYS є одним з тих, з купою інструментів 609 00:29:58,910 --> 00:30:01,159 , Які корисні для взаємодії з самою системою 610 00:30:01,159 --> 00:30:05,050 і імпортувати його як імпортних SYS. 611 00:30:05,050 --> 00:30:07,820 >> Там більше документація від що, що ви могли б йти сюди, 612 00:30:07,820 --> 00:30:11,490 або ви могли б знайти на Google вдаючись до допомоги Python SYS. 613 00:30:11,490 --> 00:30:12,640 Ви вводите в увійти. 614 00:30:12,640 --> 00:30:15,140 Перша ланка буде документація в Python 2, 615 00:30:15,140 --> 00:30:19,260 Друга ланка збирається бути документація Python 3. 616 00:30:19,260 --> 00:30:24,830 >> І якщо ми виписували файл, який виглядав як this-- якщо зокрема, ми 617 00:30:24,830 --> 00:30:27,910 дивлячись на працюючих на Аргументи командного рядка, 618 00:30:27,910 --> 00:30:30,040 як ми навчилися робити дуже рано в цьому класі. 619 00:30:30,040 --> 00:30:32,190 Це не складно. Ви можете вийти з ARGV, 620 00:30:32,190 --> 00:30:34,565 який є одним з тих речей, який реалізується SYS. 621 00:30:34,565 --> 00:30:37,210 Це не вбудований в до базовий пакет, але знову ж таки, вам 622 00:30:37,210 --> 00:30:40,080 може продовжити його імпорту що функціональність від SYS. 623 00:30:40,080 --> 00:30:41,090 Ви буду називати його SYS. 624 00:30:41,090 --> 00:30:42,611 все. 625 00:30:42,611 --> 00:30:43,360 Тут є ARGV. 626 00:30:43,360 --> 00:30:45,193 Там насправді немає це ARGC в SYS, тому що ви 627 00:30:45,193 --> 00:30:47,880 може отримати його так легко, зателефонувавши Лен. 628 00:30:47,880 --> 00:30:55,390 Ми потім друкується, що, тоді ми побіг на нашому терміналі echo-args.py. 629 00:30:55,390 --> 00:30:58,360 Ми повернемося масив, який це перший аргумент. 630 00:30:58,360 --> 00:31:02,240 Знову ж, це ARGV 0, який є найменування речі, які отримали під назвою. 631 00:31:02,240 --> 00:31:04,870 Якщо ми називали його з додатковим Аргументи, ми отримаємо їх назад. 632 00:31:04,870 --> 00:31:07,687 633 00:31:07,687 --> 00:31:09,770 Це один із способів отримання Аргументи командного рядка. 634 00:31:09,770 --> 00:31:13,440 Якщо ви хочете прапори, де ви перетворити конкретні речі на або скасовувати 635 00:31:13,440 --> 00:31:16,050 конкретний замовчуванням, argparse є вашим другом. 636 00:31:16,050 --> 00:31:21,550 І знову ви виявите, що в Інтернеті на пітона argparse в Google. 637 00:31:21,550 --> 00:31:24,300 >> Є пара корисності модулі, які ви будете використовувати 638 00:31:24,300 --> 00:31:27,630 і знову ж таки, якщо ви витрачаєте в будь-який час це мова імпорту jsons 639 00:31:27,630 --> 00:31:33,300 для читання в і з JSON Файли, не так вже й складно. 640 00:31:33,300 --> 00:31:37,139 Ви відкриваєте файл, ви назвали json.load на цьому файлі, і ви отримаєте назад річ. 641 00:31:37,139 --> 00:31:37,930 Що це таке? 642 00:31:37,930 --> 00:31:40,329 Це об'єкт JSON. 643 00:31:40,329 --> 00:31:42,370 Де, що JSON має масив, Пітон має масиви. 644 00:31:42,370 --> 00:31:44,420 Там, де це має JSON асоціативні масиви, в Python 645 00:31:44,420 --> 00:31:48,810 словники, рядки, і цифри, і так далі. 646 00:31:48,810 --> 00:31:53,560 Ви хочете, щоб звалити, що з вас, відкрити новий файл, ви викликаєте дампа, 647 00:31:53,560 --> 00:31:57,590 і вантажі й смітники входити і виходити з рядків. 648 00:31:57,590 --> 00:32:02,120 >> Точно так само, соління викликається в основному так само інтерфейс. 649 00:32:02,120 --> 00:32:04,740 Це трохи більш корисним, якщо Ви поховання об'єктів Python. 650 00:32:04,740 --> 00:32:08,370 Так що якщо ви коли-небудь хотіли, щоб зберегти версія про поточний стан 651 00:32:08,370 --> 00:32:11,930 змінної для майбутнього запустити вашої програми, 652 00:32:11,930 --> 00:32:14,740 розсіл є Пітона бібліотека для роботи з цим. 653 00:32:14,740 --> 00:32:19,140 >> Якщо у вас є який-небудь змінна, яка може бути виписаний 654 00:32:19,140 --> 00:32:21,990 в, як слів і символів, і bytes-- як цей словник, 655 00:32:21,990 --> 00:32:24,230 ми могли б записати, ми міг би написати її вниз, як 656 00:32:24,230 --> 00:32:26,670 як об'єкт JSON, який був буквально ці символи. 657 00:32:26,670 --> 00:32:29,420 І тоді це буде дуже легко для людина, щоб відкрити up-- відкрити 658 00:32:29,420 --> 00:32:30,889 і прочитати його. 659 00:32:30,889 --> 00:32:33,180 Якщо ми не особливо дбати про людей, які читають це, 660 00:32:33,180 --> 00:32:38,490 ми могли упакувати ще більш ефективно у формах, які згодом можуть бути розпаковані 661 00:32:38,490 --> 00:32:42,860 або, що може бути пізніше завищені. 662 00:32:42,860 --> 00:32:46,740 І це економить 80% від простір, що ваші об'єкти можуть 663 00:32:46,740 --> 00:32:49,390 прийняти, якщо ви написали їх звичайний лист. 664 00:32:49,390 --> 00:32:52,384 >> Ви називаєте розсіл дуже те ж саме way-- самоскид, вантажопідйомність, 665 00:32:52,384 --> 00:32:53,800 і тоді ви отримаєте ваші речі назад. 666 00:32:53,800 --> 00:32:56,880 Так що, якщо ви пишете дуже короткі програми Python, що 667 00:32:56,880 --> 00:32:59,952 хочете зберегти стан і потім прочитати їм пізніше, подібні речі 668 00:32:59,952 --> 00:33:00,660 Ваші друзі. 669 00:33:00,660 --> 00:33:02,640 Що ви могли б дуже легко скинути їх в якості JSON. 670 00:33:02,640 --> 00:33:04,550 Більшість об'єктів Python може дамп JSON 671 00:33:04,550 --> 00:33:11,310 якщо є надія, що конструктивно вони можуть бути представлені таким чином. 672 00:33:11,310 --> 00:33:14,410 >> Це всього лише верхівка айсберг модулів, які корисні. 673 00:33:14,410 --> 00:33:19,510 Так SYS, ОС, многопроцессорная, є Сортувати основних робочих конячок для речей 674 00:33:19,510 --> 00:33:23,120 ми повинні взаємодіяти з файлова система ОС., 675 00:33:23,120 --> 00:33:28,764 як os.isfile, os.isdirectory, os.makefile, це ваші друзі. 676 00:33:28,764 --> 00:33:30,930 Якщо ви хочете, щоб взаємодіяти з певним типом файлу, 677 00:33:30,930 --> 00:33:32,190 JSON, соління, CSV. 678 00:33:32,190 --> 00:33:37,160 Якщо ви хочете, щоб взаємодіяти з веб сторінки, то URLLIB для отримання HTTP 679 00:33:37,160 --> 00:33:41,370 сторінок. bs4-- BeautifulSoup-- це прекрасний парсер HTML. 680 00:33:41,370 --> 00:33:47,047 Ви запустіть його на HTML і ви отримати цю вкладений об'єкт масиву в даний час, 681 00:33:47,047 --> 00:33:49,630 які ви можете пройти протягом Лукін, з, як просто шукаєте 682 00:33:49,630 --> 00:33:52,380 якщо є, в, який є фантастичним. 683 00:33:52,380 --> 00:33:55,920 >> Там купа пакети для running-- 684 00:33:55,920 --> 00:33:57,960 для цього особливо Mathy речі. 685 00:33:57,960 --> 00:34:01,790 Так що, якщо ви хочете, щоб розмножуватися, інвертувати, перетворення матриць, 686 00:34:01,790 --> 00:34:05,690 NumPy використовується людьми всіх світу для цього. 687 00:34:05,690 --> 00:34:09,620 SciPy навіть більш корисним інструменти в цьому напрямку. 688 00:34:09,620 --> 00:34:13,980 sklearn-- машинного навчання, обробки природної мови, 689 00:34:13,980 --> 00:34:17,880 супер корисний матеріал, отримує реалізовані в Python весь час. 690 00:34:17,880 --> 00:34:21,469 >> І знову, займає небагато більше часу, щоб write-- вибачте, 691 00:34:21,469 --> 00:34:26,199 займає трохи більше часу, щоб бігти, але причиною того, що справжні інженери, як правило, 692 00:34:26,199 --> 00:34:29,900 Використання Python, тому що ви, як правило, заблокований на вас написання коду, а 693 00:34:29,900 --> 00:34:32,699 ніж ваш комп'ютер працює код. 694 00:34:32,699 --> 00:34:35,860 Так що, якщо ви збираєтеся написати Програма, яка багато інших людей 695 00:34:35,860 --> 00:34:37,699 збираєтеся використовувати назавжди, як Linux, ви 696 00:34:37,699 --> 00:34:41,900 може написати його на C. Якщо ви були збираюся написати обчислення двигун, 697 00:34:41,900 --> 00:34:46,124 Ви могли б написати в Python, якщо вам потрібно щоб змінити його кожні кілька місяців. 698 00:34:46,124 --> 00:34:48,540 Деякі люди пишуть його в С, тому що вони, як, що. 699 00:34:48,540 --> 00:34:51,100 700 00:34:51,100 --> 00:34:54,050 >> Таким чином, ми бачили на імпорт SYS як спосіб отримання речей 701 00:34:54,050 --> 00:34:57,070 отримання модуля у вашій програмі. 702 00:34:57,070 --> 00:35:00,370 Ви також можете імпортувати його в якості прізвисько, якщо ви хотіли б. 703 00:35:00,370 --> 00:35:03,660 Знову багатопроцесорної є біль введіть кожен раз, так як депутат імпортувати 704 00:35:03,660 --> 00:35:05,900 а потім у будь-який час вам використовувати його в програмі, 705 00:35:05,900 --> 00:35:09,732 Ви скажете mp.process, або те, що у вас. 706 00:35:09,732 --> 00:35:12,670 Якщо ви хочете імпортувати тільки одну річ, 707 00:35:12,670 --> 00:35:19,450 так URLLIB є річ під назвою прохання, так що ви можете просто імпортувати це. 708 00:35:19,450 --> 00:35:22,610 Пізніше, ви не будете викликати його як urllib.request, але тільки як запит 709 00:35:22,610 --> 00:35:24,590 сам по собі. 710 00:35:24,590 --> 00:35:30,110 >> І ви можете імпортувати всі з модуля, якщо ви хотіли б. 711 00:35:30,110 --> 00:35:34,820 Це іноді не дуже хороша idea-- це, як правило, не дуже гарна ідея, насправді. 712 00:35:34,820 --> 00:35:39,080 Тому що ви very-- тому що, якщо що-небудь в цьому модулі має ім'я, яке вам 713 00:35:39,080 --> 00:35:41,640 хотів використати десь ще у вашій програмі, ви не можете. 714 00:35:41,640 --> 00:35:44,127 >> І це не завжди очевидно, що це так. 715 00:35:44,127 --> 00:35:46,460 Для того, щоб переконатися, що те, що ви робили, було безпечно, 716 00:35:46,460 --> 00:35:47,920 Ви повинні відкрити модуль і побачити все 717 00:35:47,920 --> 00:35:50,295 з імен, які в кінцевому підсумку в there-- всі функції, 718 00:35:50,295 --> 00:35:53,010 всі змінні які живуть в цьому модулі, 719 00:35:53,010 --> 00:35:57,040 тому що ви чого всі їх у вашому місцевому імен. 720 00:35:57,040 --> 00:35:58,680 >> Таким чином, люди це зробити. 721 00:35:58,680 --> 00:36:01,322 Це, як правило, рекомендується що ви не зробите цього. 722 00:36:01,322 --> 00:36:03,280 Але люди роблять це все час, тому що вони 723 00:36:03,280 --> 00:36:05,180 ліниві і не хочуть, щоб впечатать пл. 724 00:36:05,180 --> 00:36:06,310 що-небудь, коли-небудь. 725 00:36:06,310 --> 00:36:09,560 726 00:36:09,560 --> 00:36:13,310 >> Всі ці розмови про модулях принеси мені навколо короткої розмови 727 00:36:13,310 --> 00:36:15,930 про те, як ви розробляти програми в Python. 728 00:36:15,930 --> 00:36:19,860 Першим кроком є, щоб перевірити, якщо хтось вже зробив річ, 729 00:36:19,860 --> 00:36:22,160 або зробити 90% річ. 730 00:36:22,160 --> 00:36:26,010 Швидше за все, вони, ймовірно, є, і ви повинні піти отримати свою річ і запустити це. 731 00:36:26,010 --> 00:36:28,900 Або написати обгортку навколо нього щоб адаптувати його до вашої мети. 732 00:36:28,900 --> 00:36:31,250 Це тільки після цього не вдалося, що ви б тоді 733 00:36:31,250 --> 00:36:35,529 піти далі і write-- почати думати про як ви б поставив цю справу разом. 734 00:36:35,529 --> 00:36:37,320 Там багато речей там, і це 735 00:36:37,320 --> 00:36:39,180 одним з найбільш корисних речі, про Python. 736 00:36:39,180 --> 00:36:40,930 Як мова Елегантний, мова 737 00:36:40,930 --> 00:36:43,800 проста у використанні, але й тому, це так елегантно і легко у використанні, 738 00:36:43,800 --> 00:36:47,420 люди використовують його для довгий час, і є багато речей 739 00:36:47,420 --> 00:36:52,520 там, що ви можете використовувати для власного використання. 740 00:36:52,520 --> 00:36:58,457 >> Тому минулого правило Python є, хтось то вже, ймовірно, написаний 741 00:36:58,457 --> 00:37:00,290 модуль для того, хтось ще вже 742 00:37:00,290 --> 00:37:02,980 ймовірно, написав бібліотеку для цього. 743 00:37:02,980 --> 00:37:06,579 Перш ніж намагатися робити речі, подивитися щоб побачити, якщо він був реалізований. 744 00:37:06,579 --> 00:37:07,370 Це не так складно. 745 00:37:07,370 --> 00:37:11,960 Всі модулі, які я піднімав перш, можливо з одним винятком, 746 00:37:11,960 --> 00:37:15,220 заздалегідь встановлені в кожному Стандартна установка Python. 747 00:37:15,220 --> 00:37:17,769 І так із закликом до імпортувати будь-який інший, вам 748 00:37:17,769 --> 00:37:19,852 є все, що функціональність на кінчиках ваших пальців. 749 00:37:19,852 --> 00:37:24,660 750 00:37:24,660 --> 00:37:28,920 >> Починаючи обернути це говорити, є кілька речей, 751 00:37:28,920 --> 00:37:32,770 що я залишив як чорні ящики і начебто замовчується, 752 00:37:32,770 --> 00:37:37,217 і є кілька білих лежить, що я сказав, що заради чесності, 753 00:37:37,217 --> 00:37:39,050 Я буду принаймні, на момент тут, навіть якщо я не буду 754 00:37:39,050 --> 00:37:43,980 перейти супер вглиб всі з них і їх технічні пояснення. 755 00:37:43,980 --> 00:37:46,010 >> Багато речей, що я назвав магія 756 00:37:46,010 --> 00:37:48,980 це те, що інші люди могли б назвати об'єктно-орієнтованого програмування. 757 00:37:48,980 --> 00:37:52,470 Таким чином, є багато things-- так змінні часто вже не 758 00:37:52,470 --> 00:37:56,540 прості байт, сидячи в, пам'ять, але дуже складні 759 00:37:56,540 --> 00:38:01,910 об'єкти, які мають внутрішній Держава про функції та багато 760 00:38:01,910 --> 00:38:05,570 прихованих змінних, безліч прихований функціональність, яка 761 00:38:05,570 --> 00:38:09,480 Дозволяє включити їх в рядки, який дозволяє перебрати їх. 762 00:38:09,480 --> 00:38:12,260 І якщо ви writing-- й тому, що вони 763 00:38:12,260 --> 00:38:15,710 Тобто все це багатою функціональністю це тому, що people-- 764 00:38:15,710 --> 00:38:17,740 Архітектори language-- пішли 765 00:38:17,740 --> 00:38:22,420 через і для кожного стандарту Об'єкт, покласти у функціональності 766 00:38:22,420 --> 00:38:26,970 сказати, що це, як це як це буде працювати 767 00:38:26,970 --> 00:38:28,470 якщо хтось хоче перебрати нього. 768 00:38:28,470 --> 00:38:31,240 >> Таким чином, все, що хтось може можливо, хочете перебрати, 769 00:38:31,240 --> 00:38:34,529 була логіка написана на вручну, як ви 770 00:38:34,529 --> 00:38:36,070 Передбачається, перебрати цього об'єкта. 771 00:38:36,070 --> 00:38:40,274 Все, що ви могли б, можливо, хочуть скидали в рядок вже логіка написана. 772 00:38:40,274 --> 00:38:43,440 Ця функція, яку ви називаєте, якщо Ви хочете, щоб звалити на це в рядок. 773 00:38:43,440 --> 00:38:45,273 Саме тому ви можете Льон називати на речі, це 774 00:38:45,273 --> 00:38:49,900 Тому ви можете зателефонувати за в це Тому ви можете зателефонувати, якщо в на всьому 775 00:38:49,900 --> 00:38:53,490 що ви хотіли б, тому що ті всі ведуть з ними, 776 00:38:53,490 --> 00:38:55,380 технічне ноу-хау, щоб зробити це. 777 00:38:55,380 --> 00:38:58,170 778 00:38:58,170 --> 00:39:00,432 >> Це те, що я супер не збирається йти в. 779 00:39:00,432 --> 00:39:03,140 Але, речі в списку тонко відрізняється від C стиль для петель, 780 00:39:03,140 --> 00:39:06,160 і ви можете прочитати все про те, що на Інтернет, якщо ви зацікавлені. 781 00:39:06,160 --> 00:39:08,930 Існує темна сторона все це, що я згадав, 782 00:39:08,930 --> 00:39:10,359 так що дві речі. 783 00:39:10,359 --> 00:39:13,400 По-перше, це об'єктно-орієнтована програмування додає багато накладних витрат 784 00:39:13,400 --> 00:39:16,080 випадкових речей, так що ви в кінцевому з використанням набагато більше пам'яті; 785 00:39:16,080 --> 00:39:18,640 ви в кінцевому підсумку за допомогою трохи більше часу, ніж ви б інакше. 786 00:39:18,640 --> 00:39:21,300 Other-- але більш підступна темна сторона цього 787 00:39:21,300 --> 00:39:24,047 Тобто, якщо речі просто діяти як ви хочете, щоб 788 00:39:24,047 --> 00:39:27,130 без необхідності думати надтвердих про те, чи слід це бути INT 789 00:39:27,130 --> 00:39:29,713 або чи повинні бути поплавок, може бути, що тут 790 00:39:29,713 --> 00:39:34,240 Ви справили Int, але тут ви думаю, але вони always-- вибачте, 791 00:39:34,240 --> 00:39:36,555 це може бути, що тут Ви справляєте поплавок, 792 00:39:36,555 --> 00:39:39,430 але коли ви отримуєте на другій частині вашої програми, ви думаєте, 793 00:39:39,430 --> 00:39:41,150 Ну добре, але вони завжди проходять мені Int. 794 00:39:41,150 --> 00:39:43,608 А якщо вони цього не роблять, то, можливо що ви десь заклинило, 795 00:39:43,608 --> 00:39:47,600 якщо ви спробуєте використовувати це, щоб індекс в масив, чи що там у вас. 796 00:39:47,600 --> 00:39:51,050 >> Таким чином, одна з реального корисні речі, о С 797 00:39:51,050 --> 00:39:54,219 вона змушує вас думати дійсно важко, перш ніж зробити any-- 798 00:39:54,219 --> 00:39:56,510 перш ніж принести будь-яку змінну в існуванні, як те, що 799 00:39:56,510 --> 00:39:58,764 тип цієї змінної. 800 00:39:58,764 --> 00:40:00,680 І це матиме що тип для всіх час. 801 00:40:00,680 --> 00:40:02,410 >> Це не правда Python, і справді, ви 802 00:40:02,410 --> 00:40:04,740 can-- якщо ви просто Сортувати йти на слух, 803 00:40:04,740 --> 00:40:07,690 і ви робите деякі рішення один спосіб в одному місці, 804 00:40:07,690 --> 00:40:09,870 і деякі рішення однієї спосіб в іншому місці 805 00:40:09,870 --> 00:40:12,960 без здачі достатньо матеріалу за сцени в іншому місці 806 00:40:12,960 --> 00:40:16,170 зловити речі належним чином, ви можете отримати деякі дуже дивні помилки. 807 00:40:16,170 --> 00:40:19,200 І програма може продовжувати працювати протягом дуже довгого часу, тому що це 808 00:40:19,200 --> 00:40:23,200 робити багато роботи, аби сказати, добре ця річ може працювати цей шлях, 809 00:40:23,200 --> 00:40:25,070 так що я збираюся запустити цей шлях. 810 00:40:25,070 --> 00:40:30,300 >> І справді, той факт, що він штовхає вперед через багато дрібних помилок 811 00:40:30,300 --> 00:40:33,260 означає, що, коли часто помилка насправді погано 812 00:40:33,260 --> 00:40:38,720 і ви насправді хочете, щоб виправити це, це закінчується миль away-- програми 813 00:40:38,720 --> 00:40:41,780 закінчується зупинки миль від того, коли у Вас був свій помилку. 814 00:40:41,780 --> 00:40:46,590 І так одна річ, яку ми хотіли б програми, щоб зробити, sometimes-- одне 815 00:40:46,590 --> 00:40:48,910 що ми хотіли б програми робити, коли ми налагодження 816 00:40:48,910 --> 00:40:54,160 це так і не голосно і не дуже швидко, коли щось йде не так. 817 00:40:54,160 --> 00:40:55,510 >> Python дуже погано в цьому. 818 00:40:55,510 --> 00:40:58,820 Python дуже добре, не невдачу і накату 819 00:40:58,820 --> 00:41:00,320 через несподівані речі. 820 00:41:00,320 --> 00:41:02,820 Так що це корисно, коли Ви пишете невеликі програми. 821 00:41:02,820 --> 00:41:07,110 Коли ви отримаєте складний помилки іноді 822 00:41:07,110 --> 00:41:09,300 займає багато часу, щоб дражнити їх. 823 00:41:09,300 --> 00:41:12,210 >> Таким чином, є темна сторона все це, як він просто працює. 824 00:41:12,210 --> 00:41:13,860 Він просто працює, як ви очікуєте. 825 00:41:13,860 --> 00:41:18,320 Крім того, що, коли це не так, ви в кінцевому в зовсім іншому місці 826 00:41:18,320 --> 00:41:21,530 і намагається з'ясувати, де було те, що ви пішли не так. 827 00:41:21,530 --> 00:41:25,180 >> Вивіз сміття is-- так Єдине, що ви помітите, 828 00:41:25,180 --> 00:41:28,110 є те, що будь-який з цих речей, які Я приніс в existence-- 829 00:41:28,110 --> 00:41:34,114 ці масиви, ці словники, ці об'єкти, вони files-- ніколи не отримаєте звільнені. 830 00:41:34,114 --> 00:41:36,030 Там не було жодного виклику на безкоштовно в будь-який з цієї бесіди. 831 00:41:36,030 --> 00:41:40,340 І це було на C-сторону, тому що ми ніколи не отримали в цих речах. 832 00:41:40,340 --> 00:41:42,220 >> Але в Python стороні, там не є вільною. 833 00:41:42,220 --> 00:41:43,970 Речі стають автоматично звільнений, коли Python 834 00:41:43,970 --> 00:41:45,386 думає, що ви не дивлячись на них. 835 00:41:45,386 --> 00:41:49,640 Це дійсно добре, не звільняючи те, що Ви могли б, можливо, ще буде дивитися на, 836 00:41:49,640 --> 00:41:54,262 але це означає, що якщо ви були збирається виділити цю велику річ, 837 00:41:54,262 --> 00:41:55,970 і ви, як про Я зробив з ним зараз, 838 00:41:55,970 --> 00:42:00,360 важко сказати Python що ви зробили з ним в даний час. 839 00:42:00,360 --> 00:42:02,986 >> Ви іноді можете встановити що змінна не буде жодного, 840 00:42:02,986 --> 00:42:05,110 і потім сподіватися, що в кінцевому підсумку збирач сміття 841 00:42:05,110 --> 00:42:06,720 приходить через і очищає його. 842 00:42:06,720 --> 00:42:10,177 Але, знову ж, ви не контроль над цим. 843 00:42:10,177 --> 00:42:13,510 І одна з причин того, що люди використовують C для дійсно важливих речей, продуктивність, 844 00:42:13,510 --> 00:42:16,570 ця здатність по-справжньому знаєте, коли пам'ять виділяється 845 00:42:16,570 --> 00:42:19,369 і коли він звільняється, і є багато контролю над кажучи, 846 00:42:19,369 --> 00:42:20,910 Я не буду використовувати не більше пам'яті, ніж мені потрібно. 847 00:42:20,910 --> 00:42:23,632 Щось, що Пітон не те, що прекрасно виходить. 848 00:42:23,632 --> 00:42:25,090 АУДИТОРІЯ: Чи можу я задати вам питання? 849 00:42:25,090 --> 00:42:29,800 Що ви мали на увазі невдачу голосно? 850 00:42:29,800 --> 00:42:32,070 >> РОСС RHEINGANS-Е: Так що, якщо щось іде не так 851 00:42:32,070 --> 00:42:34,950 і ви в налагодження Режим, ви б дуже часто 852 00:42:34,950 --> 00:42:38,510 щоб програма вам сказати, де саме пішло не так, 853 00:42:38,510 --> 00:42:42,360 і не просто спокійно зупинитися. 854 00:42:42,360 --> 00:42:45,085 Але ви насправді це, щоб надрукувати з усіх видів інформації про 855 00:42:45,085 --> 00:42:46,972 як, ось це було. 856 00:42:46,972 --> 00:42:53,957 Це трапилося Якщо ви друкуєте wen-- якщо ви працюєте у веб-server-- 857 00:42:53,957 --> 00:42:55,390 >> АУДИТОРІЯ: [нерозбірливо] 858 00:42:55,390 --> 00:42:59,800 >> РОСС RHEINGANS-Е: Так, якщо ви працюєте у веб-сервер, 859 00:42:59,800 --> 00:43:02,680 це іноді погано, якщо ви завжди відкидаючи помилки, 860 00:43:02,680 --> 00:43:04,530 і ви говорите, добре, що не працюють. 861 00:43:04,530 --> 00:43:05,300 Я збираюся зупинитися. 862 00:43:05,300 --> 00:43:07,680 Я просто хочу, щоб ігнорувати це і буде тримати на. 863 00:43:07,680 --> 00:43:11,260 Бо тоді ви можете отримати в сотні з цих помилок і не бачити їх. 864 00:43:11,260 --> 00:43:13,910 >> Це, безсумнівно, буде корисно для налагодження 865 00:43:13,910 --> 00:43:20,327 якщо кожен раз, ваш веб-сервер зроблена помилка, ви мали міцні записи, що. 866 00:43:20,327 --> 00:43:22,910 Може бути, ви навіть хочете, щоб програма , Щоб зупинити, так що ці записи 867 00:43:22,910 --> 00:43:25,471 Не зрозумійте похований під речей. 868 00:43:25,471 --> 00:43:26,970 Але знову ж, це в режимі налагодження. 869 00:43:26,970 --> 00:43:31,280 >> Часто в режимі виробництва, світ трохи інакше. 870 00:43:31,280 --> 00:43:36,380 І в крихітних скриптів, які я біжу, де те, що я сказав, щоб зробити 871 00:43:36,380 --> 00:43:40,680 може бути тільки трохи від від того, що я хотів би це робити, 872 00:43:40,680 --> 00:43:44,010 потім начебто проштовхування Помилки-то ви, можливо, захочете. 873 00:43:44,010 --> 00:43:49,410 І в цих випадках, звичайно, Python дійсно заробляє свої запуски. 874 00:43:49,410 --> 00:43:54,617 >> Останнє, що я не говорив в this--, що я не говорив про 875 00:43:54,617 --> 00:43:57,700 але може бути дійсно доводить до сказу першого раз у вас є один з цих помилок, 876 00:43:57,700 --> 00:44:00,491 а другий і третій і четвертий раз у вас є один ці помилки. 877 00:44:00,491 --> 00:44:03,490 Python, я згадав що він використовує прогалини 878 00:44:03,490 --> 00:44:06,700 щоб сказати вам, який рівень відступу і те, що функціональна блок ви знаходитесь, 879 00:44:06,700 --> 00:44:08,840 він розглядає вкладки і прогалини по-різному. 880 00:44:08,840 --> 00:44:12,780 Так що якщо ви вкладка протягом чотирьох, а потім наступний рядок має чотири місця, 881 00:44:12,780 --> 00:44:16,910 навіть якщо вони з'являються, як стільки ж в редакторі, 882 00:44:16,910 --> 00:44:20,160 Python не стосуватись ним так само. 883 00:44:20,160 --> 00:44:23,610 >> Справді, Python обробляє вкладки і прогалини, як масло і вода. 884 00:44:23,610 --> 00:44:25,050 Вони просто різні речі. 885 00:44:25,050 --> 00:44:27,264 Там немає конкретного Довжина, що закладка, 886 00:44:27,264 --> 00:44:30,180 так що це не так, як вкладка дорівнює 8 простору, і тому ви б обійти це 887 00:44:30,180 --> 00:44:30,860 цей шлях. 888 00:44:30,860 --> 00:44:34,110 Мовляв, коли він говорить, те, що рівень білого простору я на, 889 00:44:34,110 --> 00:44:37,240 це насправді шукає модель простору і вкладок. 890 00:44:37,240 --> 00:44:43,050 І так, кращий спосіб впоратися з цим завжди використовувати прогалини весь час. 891 00:44:43,050 --> 00:44:47,510 >> І справді, в Cloud9 IDE і IDE CS50, 892 00:44:47,510 --> 00:44:50,610 Ваші ключові Tab вставки чотирьох простору, в замість 893 00:44:50,610 --> 00:44:53,800 з вкладці, яка супер корисно. 894 00:44:53,800 --> 00:44:57,074 Хоча знову ж таки, якщо ви написали Python Програма з вкладками, які були б в порядку, 895 00:44:57,074 --> 00:44:58,990 це просто якщо хтось пішов і намагався додати 896 00:44:58,990 --> 00:45:02,655 один рядок з вашою програмою, що чотири місця для кожного вкладці 897 00:45:02,655 --> 00:45:03,280 було б зламати. 898 00:45:03,280 --> 00:45:07,800 І це було б перерву в дорозі що насправді не видно. 899 00:45:07,800 --> 00:45:12,390 Хоча фактичні помилки повідомлення, що він кидає 900 00:45:12,390 --> 00:45:15,610 має справу з новим відступ не очікується тут, 901 00:45:15,610 --> 00:45:18,700 ілі--, якщо він говорить про абзацах і, схоже, що це неправильно, 902 00:45:18,700 --> 00:45:22,090 це, ймовірно, тому є проблема вкладка-простір. 903 00:45:22,090 --> 00:45:24,154 Вони досі доводить до сказу для налагодження. 904 00:45:24,154 --> 00:45:26,070 Найбільший в цілому ця розмова, який я не зробив 905 00:45:26,070 --> 00:45:29,740 дістатися до, тому що це дійсно складний, тонкий тема, 906 00:45:29,740 --> 00:45:34,760 і не треба було робити будь з речей, які ми зробили досі, 907 00:45:34,760 --> 00:45:37,140 це концепція, називається кортежів. 908 00:45:37,140 --> 00:45:41,280 Вони там дуже як масиви, які ви не можете змінити. 909 00:45:41,280 --> 00:45:44,700 Вони звикають всюди, бо вони корисні для багатьох речей 910 00:45:44,700 --> 00:45:46,300 що масиви не є корисними для. 911 00:45:46,300 --> 00:45:49,890 >> Але якщо ви хочете, щоб масив, і то обіцяють, що вам перекладача 912 00:45:49,890 --> 00:45:53,140 ніколи не захоче, щоб змінити що thing-- справді, якщо ви хочете змінити, 913 00:45:53,140 --> 00:45:56,800 ви будете робити новий з новим Значення в it-- ті кортежі. 914 00:45:56,800 --> 00:45:58,800 Замість виробництва їх у квадратні дужки, 915 00:45:58,800 --> 00:46:00,341 Ви провести їх з круглих дужках. 916 00:46:00,341 --> 00:46:05,074 Чому ви повинні використовувати ці речі, трохи питання. , 917 00:46:05,074 --> 00:46:06,990 Єдине, що я буду говорять про те, що це ти 918 00:46:06,990 --> 00:46:10,680 можна використовувати кортежі в Індекси словників. 919 00:46:10,680 --> 00:46:15,010 Ви не можете використовувати масиви Індекси словників. 920 00:46:15,010 --> 00:46:18,970 І чому, знову ж, технічні та Я не збираюся бігти в нього. 921 00:46:18,970 --> 00:46:23,140 >> PSET, що я не торкнувся в цій бесіді є pset6. 922 00:46:23,140 --> 00:46:25,837 Так от, як ви 'D здійснити a-- ось 923 00:46:25,837 --> 00:46:28,140 як ви буде здійснювати pset6 в Python. 924 00:46:28,140 --> 00:46:32,680 Маючи на увазі, Пітон цикл проектування, перше, що 925 00:46:32,680 --> 00:46:34,760 що ви робите, коли ви Написання програми є перевірка 926 00:46:34,760 --> 00:46:38,030 щоб побачити, якщо хтось зробив це вже. 927 00:46:38,030 --> 00:46:42,152 >> Справді, якщо ви хочете щоб serve-- Apache 50 928 00:46:42,152 --> 00:46:44,110 робить приблизно це, за винятком того, не приходять 929 00:46:44,110 --> 00:46:45,840 Стандарт встановлений на машинах Linux. 930 00:46:45,840 --> 00:46:50,490 Python робить, і Пітон просто HTTP-сервер робить також. 931 00:46:50,490 --> 00:46:54,717 Якщо ви коли-небудь на машині Linux, або Cloud9 IDE межами CS50 932 00:46:54,717 --> 00:46:57,550 і ви хотіли б, щоб служити цій струм Каталог для конкретного порту, 933 00:46:57,550 --> 00:47:04,610 пітон-му SimpleHTTPServer порт служить для того. 934 00:47:04,610 --> 00:47:07,190 Ви також можете імпортувати простий HTTP-сервер 935 00:47:07,190 --> 00:47:11,240 і він отримав багато функціональних якщо Ви хочете, щоб налаштувати його, або змінити його, 936 00:47:11,240 --> 00:47:15,860 або запустити it-- використовувати його запустити свій власний сервер послуги. 937 00:47:15,860 --> 00:47:18,032 >> Так от Python в двох словах. 938 00:47:18,032 --> 00:47:20,280 І це було CS50. 939 00:47:20,280 --> 00:47:21,980 Дякую. 940 00:47:21,980 --> 00:47:23,468