1 00:00:00,000 --> 00:00:05,426 2 00:00:05,426 --> 00:00:06,800 ROSS RHEINGANS-YOO: Ahoj, já jsem Rosse. 3 00:00:06,800 --> 00:00:08,570 A tohle je CS50 seminář. 4 00:00:08,570 --> 00:00:12,100 To vás od programování v C programování v jazyce Python. 5 00:00:12,100 --> 00:00:15,120 >> Python je skriptovací jazyk. 6 00:00:15,120 --> 00:00:17,870 Je to do značné míry jako C v syntaxi, ačkoli někteří 7 00:00:17,870 --> 00:00:20,390 technických detailů jak se dostane, že syntax popraven 8 00:00:20,390 --> 00:00:22,240 jsou mírně odlišné. 9 00:00:22,240 --> 00:00:24,780 To je méně výkonný než C v některých ohledech. 10 00:00:24,780 --> 00:00:28,130 To je méně výrazný u kde přesně ve vašem počítači 11 00:00:28,130 --> 00:00:30,030 paměť dostane stanoveno, jak se dostane stanoveno, 12 00:00:30,030 --> 00:00:32,030 když se dostane svobodu, a ty druhy věcí. 13 00:00:32,030 --> 00:00:36,150 >> Je to užitečnější než C v některých ohledech, protože je to jednodušší programovat v. 14 00:00:36,150 --> 00:00:39,920 Jazyk je, pro některé lidí, více intuitivní. 15 00:00:39,920 --> 00:00:44,820 A opravdu, cílem je pro to být rychlejší programovat 16 00:00:44,820 --> 00:00:46,490 a potenciálně pomaleji spustit. 17 00:00:46,490 --> 00:00:48,198 >> Nyní, pokud si myslíte, že o množství času 18 00:00:48,198 --> 00:00:50,514 jste strávil na vaše poslední Problém set psaní 19 00:00:50,514 --> 00:00:52,430 Váš kód proti množství času, který strávíte 20 00:00:52,430 --> 00:00:55,310 na poslední problém nastavit spouštění kódu, 21 00:00:55,310 --> 00:00:58,300 byste si představit, že jazyk což bylo dvakrát tak rychle psát, 22 00:00:58,300 --> 00:01:02,170 a dvakrát tak pomalý provést, by mohlo být zlepšením oproti C v některých ohledech. 23 00:01:02,170 --> 00:01:05,730 Jistě, když se snažíte psát malé programy, dělat jen málo věcí, 24 00:01:05,730 --> 00:01:08,520 Python je užitečná jazyk výběru. 25 00:01:08,520 --> 00:01:10,620 >> A na konci této seminář, doufám, že budete 26 00:01:10,620 --> 00:01:12,950 být schopen učinit volby v budoucích projektech 27 00:01:12,950 --> 00:01:17,710 o jazyk, který je správné používat, není idea 28 00:01:17,710 --> 00:01:21,405 že jeden jazyk je víc opravovat po celou dobu. 29 00:01:21,405 --> 00:01:23,030 Pár věcí o tom, co je seminář. 30 00:01:23,030 --> 00:01:25,910 Tento seminář není určen k Vás naučí, Python od nuly. 31 00:01:25,910 --> 00:01:28,310 Python je velmi podobná na C, a já jsem za předpokladu, že 32 00:01:28,310 --> 00:01:34,056 že jste CS50 student, nebo někdo s podobným obeznámenosti s C. 33 00:01:34,056 --> 00:01:36,700 >> Pokud jste CS50 studentka kolem problém nastavení 6, 34 00:01:36,700 --> 00:01:38,866 Takže jste vidět spousta věci C, dám vám 35 00:01:38,866 --> 00:01:40,740 Hlavní rozdíly, a některé z věcí, 36 00:01:40,740 --> 00:01:42,840 které dělají Python odlišný a zvláštní a užitečné, 37 00:01:42,840 --> 00:01:45,256 ale já nehodlám jít co programovací jazyk je 38 00:01:45,256 --> 00:01:46,920 a jak psát programy. 39 00:01:46,920 --> 00:01:49,820 Nicméně, tento seminář bude vyučovat můžete napsat Python programy 40 00:01:49,820 --> 00:01:52,310 pokud jste jedním z těch mála skupin. 41 00:01:52,310 --> 00:01:54,820 Opět se podíváme na to, jak byste implementovat psets-- 42 00:01:54,820 --> 00:01:57,550 který by měl být 1-6 v Python-- a poskytovat ukazatele 43 00:01:57,550 --> 00:02:00,322 do oficiální dokumentace pro budoucí použití. 44 00:02:00,322 --> 00:02:03,030 Další věc, která je důležité o tom, jak je tato diskuse přiděleno, 45 00:02:03,030 --> 00:02:05,360 Toto video bude on-line, s laskavým svolením CS50, 46 00:02:05,360 --> 00:02:07,550 takže by neměl pocit, budete muset dělat poznámky. 47 00:02:07,550 --> 00:02:11,180 Vždy se můžete vrátit zpět a podívat se na to později jako referenci. 48 00:02:11,180 --> 00:02:13,340 Dále se na diapozitivy jsou k dispozici právě teď 49 00:02:13,340 --> 00:02:16,480 na tomto místě, které by měly trvat děláte doc Google. 50 00:02:16,480 --> 00:02:21,010 Je to mírně zkrácené verzi z toho, co jsem ukazovat na obrazovce. 51 00:02:21,010 --> 00:02:24,850 >> Jedna námitka opatrný před skočíme dovnitř, Python 3 52 00:02:24,850 --> 00:02:26,700 je jiný jazyk Python 2. 53 00:02:26,700 --> 00:02:30,020 Vypadají hodně stejný; tady jsou velmi malé technické odlišnosti 54 00:02:30,020 --> 00:02:32,530 že způsobí programy napsaný v Pythonu 2 55 00:02:32,530 --> 00:02:37,140 nejsou schopny být vykonán v Python 3 prostředí. 56 00:02:37,140 --> 00:02:41,969 >> CS50 Přístroj je dodáván s Python, ve výchozím nastavení používá Python 2. 57 00:02:41,969 --> 00:02:44,010 Můžete to zkontrolovat pomocí psaní v příkazovém řádku 58 00:02:44,010 --> 00:02:51,310 python --version, který by měl výstup 2.7.6 na aktuálním zařízení. 59 00:02:51,310 --> 00:02:53,580 Zkuste Python 3, který dělá pracují v přístroji, 60 00:02:53,580 --> 00:02:58,500 pokud Python výchozí 2.X.Y, a to buď spotřebič nebo na vašich vlastních strojích. 61 00:02:58,500 --> 00:03:03,730 Ty by měly nahradit Python 3 kdykoliv V této řeči, že jsem psát Python. 62 00:03:03,730 --> 00:03:05,760 Je-li váš počítač běh 2 ve výchozím nastavení, typ 63 00:03:05,760 --> 00:03:09,770 Python 3, aby bylo možné skutečně sledovat spolu a provádět tyto věci. 64 00:03:09,770 --> 00:03:12,280 >> Navíc, já bod, na oficiálních zdrojů teď. 65 00:03:12,280 --> 00:03:16,082 docs.python.org/3--~~V opatrní že to je 3 a ne 2-- 66 00:03:16,082 --> 00:03:17,030 má užitečné odkazy. 67 00:03:17,030 --> 00:03:19,280 Tutoriál vás proveze hodně stejných věcí, 68 00:03:19,280 --> 00:03:21,460 že dělám teď, s výjimkou v textové podobě. 69 00:03:21,460 --> 00:03:23,725 Odkaz je užitečné jako Žádost o jazyk, 70 00:03:23,725 --> 00:03:26,100 a standardní knihovna poskytuje jste některé z rozšíření 71 00:03:26,100 --> 00:03:27,770 s další funkce. 72 00:03:27,770 --> 00:03:31,300 >> Takže úplně první Python programu. 73 00:03:31,300 --> 00:03:34,410 Na levé straně máme standardní C, na pravé straně, máme Python. 74 00:03:34,410 --> 00:03:36,780 Možná jste uznány tento problém, je to 75 00:03:36,780 --> 00:03:40,760 jeden z prvního problému zapadá CS50, a ty 76 00:03:40,760 --> 00:03:42,677 vyřešit za použití stejného roztoku. 77 00:03:42,677 --> 00:03:45,010 Nyní, důvod, že jsme Při pohledu na tyto bok po boku 78 00:03:45,010 --> 00:03:46,830 je tak se můžeme podívat na syntaktické rozdíly. 79 00:03:46,830 --> 00:03:49,580 Jeden z slonů v místnosti že jste si možná všimli pravdu 80 00:03:49,580 --> 00:03:56,350 off bat, je to, že Python nemá Hlavní funkcí obal kolem kódu. 81 00:03:56,350 --> 00:03:59,170 Tak v C, píšete spoustu soubory, jejich propojení, 82 00:03:59,170 --> 00:04:02,590 a program spustí provádění V této věci s názvem int main. 83 00:04:02,590 --> 00:04:04,930 >> V Pythonu můžete napsat Soubor, který jste, spusťte soubor, 84 00:04:04,930 --> 00:04:07,882 program spustí provádění v horní části souboru. 85 00:04:07,882 --> 00:04:09,590 Takže to bude začátek V horní části souboru 86 00:04:09,590 --> 00:04:11,280 jít dolů, dokud se najít něco jiného. 87 00:04:11,280 --> 00:04:14,440 Pokud nalezne definici funkce, to nebude ve skutečnosti spustit tento kód, 88 00:04:14,440 --> 00:04:15,940 to bude prostě definovat funkci. 89 00:04:15,940 --> 00:04:18,459 Ale tady, když první Program je n rovno 10, 90 00:04:18,459 --> 00:04:21,273 první věc, která tento program bude dělat, je tento hodnotu 10 91 00:04:21,273 --> 00:04:24,120 a nastavte ji do proměnné nazvané n. 92 00:04:24,120 --> 00:04:27,690 >> Když už mluvíme o této linie, jeden z další things-- sorry-- to 93 00:04:27,690 --> 00:04:31,040 Znamená to, že C programy, budete psát jim, 94 00:04:31,040 --> 00:04:34,899 budete dělat je, který bude vyvolat některé příkazy zvonění, 95 00:04:34,899 --> 00:04:36,690 a pak budete spustit Výsledný spustitelný soubor. 96 00:04:36,690 --> 00:04:41,030 Python programy, spustíte Text file-- této mario.py by mohl 97 00:04:41,030 --> 00:04:44,900 bude tento soubor, který jsem právě ukázal, vás-- budete spouštět tento soubor 98 00:04:44,900 --> 00:04:47,450 a budete spouštět, a obsah něm 99 00:04:47,450 --> 00:04:50,390 budou prováděny interpret Python. 100 00:04:50,390 --> 00:04:52,470 Můžete to udělat ve svém IDE. 101 00:04:52,470 --> 00:05:02,260 >> Takže když mám soubor Hello, která se prostě musí tento obsah. 102 00:05:02,260 --> 00:05:04,840 To je vlastně Python 2, ne Python 3, takže se nemusíte 103 00:05:04,840 --> 00:05:06,600 starat o syntaxi pro tuto chvíli. 104 00:05:06,600 --> 00:05:14,230 Ale budu běžet Python, na hello.py, a to běží. 105 00:05:14,230 --> 00:05:18,890 >> Dalším způsobem, že mohu použít, že Python Nebudu zabývat tolik v této řeči, 106 00:05:18,890 --> 00:05:21,840 je, když jsem se psát Python, to kapky mě do prostředí, kde 107 00:05:21,840 --> 00:05:24,370 Můžu krmit ji Python řádek po řádku. 108 00:05:24,370 --> 00:05:31,260 Tak tady, když jsem zadejte print space "Hello, World". 109 00:05:31,260 --> 00:05:32,360 Typ vstoupit. 110 00:05:32,360 --> 00:05:37,430 Bude mi plivat to zpátky výsledky že individuální linka okamžitě. 111 00:05:37,430 --> 00:05:38,470 >> Je to může být užitečné. 112 00:05:38,470 --> 00:05:40,700 V tomto rozhovoru budu dělat věci na sklíčka. 113 00:05:40,700 --> 00:05:43,940 A tak budete mít možnost sledovat podél buď v zde, nebo písemně 114 00:05:43,940 --> 00:05:45,725 aktuální soubory a pak jejich plnění. 115 00:05:45,725 --> 00:05:48,340 116 00:05:48,340 --> 00:05:50,995 >> Ale, vracet k tomu kód, další věc, 117 00:05:50,995 --> 00:05:53,230 že byste mohli mít noticed-- No, je tu 118 00:05:53,230 --> 00:05:55,980 Dvě věci, které by vás mohly Všimněte si o těchto bloků. 119 00:05:55,980 --> 00:05:59,280 První z nich, spíše všední, je to, že Python nemá koncové středník. 120 00:05:59,280 --> 00:06:02,630 >> Středníky jsou volitelné všude a neškodné všude. 121 00:06:02,630 --> 00:06:03,722 Můžete je přidat. 122 00:06:03,722 --> 00:06:06,430 Mohlo by to, aby si lidé, kteří píší Python pro obývací hihňat se na vás 123 00:06:06,430 --> 00:06:08,860 za zády, protože že to není nutné. 124 00:06:08,860 --> 00:06:13,497 Jsou to často příznakem koná přes od C. Návrháři jazyka 125 00:06:13,497 --> 00:06:16,580 pocit, že to je více jasné, tímto způsobem a že to není nutné deklarovat 126 00:06:16,580 --> 00:06:18,700 pokaždé, když ukončíte čáru. 127 00:06:18,700 --> 00:06:21,799 >> Další zvláštní věc o tomto n Je to nemá typ připojené. 128 00:06:21,799 --> 00:06:24,590 Jednou z kouzelných kusů Python-- a budu říkat magie, 129 00:06:24,590 --> 00:06:26,381 ale existují velmi technické důvody, proč se 130 00:06:26,381 --> 00:06:28,560 works-- jeden z magické kousky Python 131 00:06:28,560 --> 00:06:32,700 je to, že proměnné mohou rozšířit nebo zmenšit, aby obsahoval bez ohledu na údaje 132 00:06:32,700 --> 00:06:34,530 typy byste chtěli, aby. 133 00:06:34,530 --> 00:06:35,580 >> Tak to je 10. 134 00:06:35,580 --> 00:06:40,060 Pokud se později dolů jsem přidělen na to n 0.5, bude to trvat, že 0.5. 135 00:06:40,060 --> 00:06:43,770 Bez ohledu na to, že je to tady a int plavat tam, něco, co používá tento n 136 00:06:43,770 --> 00:06:47,057 se, více nebo méně, moci supění spolu, pokud se dostane jeden z nich. 137 00:06:47,057 --> 00:06:49,640 Ledaže tam je nějaký velmi reálné důvodem, proč nelze použít data 138 00:06:49,640 --> 00:06:52,170 typ, který n má v současné době, na kterém místě to bude mít 139 00:06:52,170 --> 00:06:54,490 zaklíněný a házet chybu, a ty druhy věcí. 140 00:06:54,490 --> 00:06:57,050 >> Ale tady, Python není opravdu jedno, co 141 00:06:57,050 --> 00:06:59,140 to je, že budu držet v tomto trest, stejně jako, chceš tu věc? 142 00:06:59,140 --> 00:06:59,840 To, co v tom, že? 143 00:06:59,840 --> 00:07:00,640 Jo, je to trochu věci. 144 00:07:00,640 --> 00:07:01,810 Budu držet ho na konci. 145 00:07:01,810 --> 00:07:04,740 Bude to problém později, pokud někdo, kdo chce využít tohoto cíle 146 00:07:04,740 --> 00:07:05,710 nemůže zvládnout. 147 00:07:05,710 --> 00:07:08,500 To je jeden z hlavních Rozdíly mezi Python a C 148 00:07:08,500 --> 00:07:10,790 že usnadňuje napsat velmi velkých programů C 149 00:07:10,790 --> 00:07:15,120 a usnadňuje psaní velmi malý Python programu. 150 00:07:15,120 --> 00:07:19,564 >> For syntaxe není příliš odlišný v tom, co dělá. 151 00:07:19,564 --> 00:07:21,480 Je to mírně liší v tom, jak to vyjádřil. 152 00:07:21,480 --> 00:07:25,370 Tak to je velmi, co se nazývá Pythonic, způsob psaní. 153 00:07:25,370 --> 00:07:28,969 pro řádek v rozsahu (n), se jedná o Rozsah čísel od 0 do n, 154 00:07:28,969 --> 00:07:31,010 včetně na dně a exkluzivní na vrcholu. 155 00:07:31,010 --> 00:07:34,790 Takže je od 0 do n-1, což je přesně to, co C kód dělá, 156 00:07:34,790 --> 00:07:38,690 s výjimkou, že je to mnohem snazší podívat se na možná. 157 00:07:38,690 --> 00:07:42,710 >> Příslušná blok Není vyrazil závorkami, 158 00:07:42,710 --> 00:07:44,540 místo toho je to vyrazil tímto odsazením. 159 00:07:44,540 --> 00:07:47,580 Takže všechny tyto tratě čtyři mezery na správnou, 160 00:07:47,580 --> 00:07:50,410 nebo stejně jako o šířce slona. 161 00:07:50,410 --> 00:07:54,570 A to jsou ty, které jsou bude vykonán v to pro. 162 00:07:54,570 --> 00:07:57,020 Kdybych zkazit odsazení na to a já 163 00:07:57,020 --> 00:08:01,420 tlačit, že tisk zpět původní odsazení, 164 00:08:01,420 --> 00:08:04,320 že tisk bude nechat na smyčce. 165 00:08:04,320 --> 00:08:08,560 V protikladu k C, kde tady jsem vlastně muset přesunout tento uzavřený rovnátka kolem. 166 00:08:08,560 --> 00:08:11,820 >> To znamená, že nemusíte dostat chyby že vyskočí na vás, protože jste 167 00:08:11,820 --> 00:08:13,580 dát ortézu na špatném místě. 168 00:08:13,580 --> 00:08:16,460 To znamená, že dostanete chyby že vyskočí na vás, protože jste 169 00:08:16,460 --> 00:08:17,620 odsadit čáru špatně. 170 00:08:17,620 --> 00:08:19,290 Takže to dělá zářezy mimořádně opatrní. 171 00:08:19,290 --> 00:08:22,123 Doufejme, že jste byl výborný opatrní s vaší odsazení tak jako tak, 172 00:08:22,123 --> 00:08:25,300 a tak to není, že mnohem větší zátěž. 173 00:08:25,300 --> 00:08:28,762 >> Ale základní pravidlo pro Python, a budeme mít pár z nich 174 00:08:28,762 --> 00:08:30,970 že budeme projít skrz průběh diskuse, 175 00:08:30,970 --> 00:08:33,840 je vyzkoušet přírodní syntaxi před hledáním něco nahoru. 176 00:08:33,840 --> 00:08:37,610 Takže tento syntax, pro toto číslo v rozsahu, 177 00:08:37,610 --> 00:08:41,460 je velmi výrazný, pokud jde o styl. 178 00:08:41,460 --> 00:08:45,260 Spousta věcí v Pythonu uvidíme, přičemž tento formulář. 179 00:08:45,260 --> 00:08:47,420 >> A tak pokud jste přišli se nový objekt, který jste 180 00:08:47,420 --> 00:08:50,870 myslíte, že byste měli být schopni iteraci přes to, v tomto formátu, 181 00:08:50,870 --> 00:08:53,720 Ukazuje se, že pravděpodobně podporuje tento formát. 182 00:08:53,720 --> 00:08:56,990 Nebudeme jít výborný hluboko v technické důvody, proč to je pravda. 183 00:08:56,990 --> 00:09:00,167 >> Ale je to užitečné, intuice mít když jste se blíží Python programy, 184 00:09:00,167 --> 00:09:01,750 že tato věc se prostě bude fungovat. 185 00:09:01,750 --> 00:09:03,020 Zkus to. 186 00:09:03,020 --> 00:09:06,480 Spustit příkazového řádku Interpret, uvidíme, jestli to funguje, 187 00:09:06,480 --> 00:09:09,827 dál s věcmi, před vámi ani potřeba otevřít Google a říkají, 188 00:09:09,827 --> 00:09:11,660 co je syntaxe tento konkrétní věc? 189 00:09:11,660 --> 00:09:14,740 Spousta Python byste mohli objevit jen tím, že se snaží. 190 00:09:14,740 --> 00:09:19,005 >> To v případě, je ještě více podobné do C pak FoRS jsou. 191 00:09:19,005 --> 00:09:20,380 Všimněte si, že tam je žádné závorky. 192 00:09:20,380 --> 00:09:23,490 Závorky jsou, opět, neškodné, ale není nutné. 193 00:09:23,490 --> 00:09:25,750 Tam je tlustého střeva na konci Stejně jako pro smyčky, 194 00:09:25,750 --> 00:09:30,800 a znovu, relativní bloky spíše než členité vyrazil závorkami. 195 00:09:30,800 --> 00:09:33,080 Tato ostatní je na originálu úroveň odsazení, 196 00:09:33,080 --> 00:09:35,930 a jeho příslušného bloku opět odsazeny. 197 00:09:35,930 --> 00:09:41,720 Ti, kteří pracovat přesně tak, jak to dělají v C. 198 00:09:41,720 --> 00:09:44,520 >> To je ve skutečnosti velmi podobně. 199 00:09:44,520 --> 00:09:49,430 Opět platí, že tisk ztrácí jeden znak off printf Můžete předat některé řetězce. 200 00:09:49,430 --> 00:09:51,520 Ukazuje se, že řetězce může být buď vyznačeny 201 00:09:51,520 --> 00:09:53,562 od jednoduchých uvozovek nebo uvozovek. 202 00:09:53,562 --> 00:09:55,270 Neexistuje žádný rozdíl, kromě toho, že vnitřní 203 00:09:55,270 --> 00:09:57,722 z jednoduchých uvozovek, můžete použít dvojité uvozovky se vzdát, 204 00:09:57,722 --> 00:09:59,430 spíše než na uniknout všechny z nich. 205 00:09:59,430 --> 00:10:01,480 A uvnitř dvojitých uvozovek, budete Můžete použít jednoduché uvozovky s opustit 206 00:10:01,480 --> 00:10:02,420 aniž by jim uniknout. 207 00:10:02,420 --> 00:10:04,253 Pokud byste chtěli míchat je, můžete samozřejmě 208 00:10:04,253 --> 00:10:06,100 vzhlížet on-line, jak to udělat. 209 00:10:06,100 --> 00:10:09,581 >> Všimněte si, že tady, Já jsem prošel v závěru = tuto věc. 210 00:10:09,581 --> 00:10:12,580 To je příklad volitelný Argument, což je jedna z těch věcí, 211 00:10:12,580 --> 00:10:14,990 že Python podporuje, že dělá to docela užitečné. 212 00:10:14,990 --> 00:10:18,240 Takže tisk ve skutečnosti má hodně argumenty, které jsou obvykle 213 00:10:18,240 --> 00:10:20,140 nastavena na jejich výchozí hodnota, ale tady jsem 214 00:10:20,140 --> 00:10:21,924 se rozhodl přepsat jeden volal konec. 215 00:10:21,924 --> 00:10:24,340 Důvod, že se musím přepsat s prázdný řetězec 216 00:10:24,340 --> 00:10:26,756 je to, že tisk v Pythonu, a default, vytiskne nový řádek 217 00:10:26,756 --> 00:10:28,630 poté, co že jste to říkal taky. 218 00:10:28,630 --> 00:10:31,462 >> Tak to hash se vlastně bude vytisknout hash v novém řádku. 219 00:10:31,462 --> 00:10:34,670 A pokud nechci hash vytisknout nový řádek za ním, pak musím říci, 220 00:10:34,670 --> 00:10:35,340 netisknou jeden. 221 00:10:35,340 --> 00:10:37,980 222 00:10:37,980 --> 00:10:43,690 Ale, ale tak, jedna poslední věc, která tento program chybí, že jeden má, je 223 00:10:43,690 --> 00:10:44,960 include v horní části. 224 00:10:44,960 --> 00:10:48,120 Tisk se peče do Pythonu, takže v podstatě že není záhlaví nebo modul 225 00:10:48,120 --> 00:10:49,869 , že je třeba zahrnují, ale pokud chtěl 226 00:10:49,869 --> 00:10:52,029 o další věci, v Python scriptu, 227 00:10:52,029 --> 00:10:55,320 Já bych to ve velmi podobné format-- slova jsou jen mírně liší. 228 00:10:55,320 --> 00:10:58,840 229 00:10:58,840 --> 00:11:01,360 >> Zmínil jsem se, že jsme Nemusíte tu hlavní, 230 00:11:01,360 --> 00:11:03,372 protože začíná Python provádění v horní části. 231 00:11:03,372 --> 00:11:05,080 Kdybych chtěl zabalit to ve funkci, I 232 00:11:05,080 --> 00:11:07,667 by to udělat tohle-- I bych def název funkce, 233 00:11:07,667 --> 00:11:10,500 argumenty by mohly jít sem a my vidět některé z těch později, tlustého střeva, 234 00:11:10,500 --> 00:11:13,040 a pak znovu, to Celý set off blok 235 00:11:13,040 --> 00:11:16,810 je to, co je v provozu blok pro tuto funkci. 236 00:11:16,810 --> 00:11:18,560 Tak tohle je definice funkce. 237 00:11:18,560 --> 00:11:21,587 A je tu prohlášení, pak dolů tady, mohu jen volat funkci. 238 00:11:21,587 --> 00:11:23,920 A opět, program interpret, začíná na vrcholu, 239 00:11:23,920 --> 00:11:25,280 bude vidět je definice. 240 00:11:25,280 --> 00:11:27,960 To nebude provádět, dokud to se sem dostal, a pak je to jako, oh 241 00:11:27,960 --> 00:11:30,860 teď jsi to nazval, já Asi bych to měl spustit. 242 00:11:30,860 --> 00:11:33,850 >> Věc, která je velmi časté vidět v Pythonu souborech, 243 00:11:33,850 --> 00:11:36,700 zvláště Python soubory, které jsou uvolněny pro veřejnost 244 00:11:36,700 --> 00:11:41,650 a vyvinul by-- a rozvíjet a zachována, je něco, co tuto formu. 245 00:11:41,650 --> 00:11:44,540 Toto je tak proto, že basically-- Python, můžete začít na vrcholu 246 00:11:44,540 --> 00:11:50,310 a pak spustit dolů až na dno, I když jsem prostě musel Mario zavolal tady, 247 00:11:50,310 --> 00:11:54,190 pak kdykoli jsem se součástí tento soubor jiný soubor, protože jsem chtěl použít 248 00:11:54,190 --> 00:11:58,580 je funkce Mario, že by jiný soubor mají také tuto výzvu k Mario v něm. 249 00:11:58,580 --> 00:12:01,000 A když jsem běžel tento soubor, to by volat Mario. 250 00:12:01,000 --> 00:12:04,520 >> Takže je možné, že jen já Chcete spustit to, jestli jsem opravdu 251 00:12:04,520 --> 00:12:07,290 proveden tento konkrétní soubor. 252 00:12:07,290 --> 00:12:11,520 A tak jsem si zabalit to v idiom takhle, kde jsem řekl, 253 00:12:11,520 --> 00:12:14,820 Pokud je název tohoto provedení prostředí je hlavní, 254 00:12:14,820 --> 00:12:16,200 pak chci, aby tyto věci dělat. 255 00:12:16,200 --> 00:12:18,710 V opačném případě může někdo jiný use-- patří můj function-- 256 00:12:18,710 --> 00:12:22,510 můj soubor, a jen proto, aby si Přístup k těmto funkcím 257 00:12:22,510 --> 00:12:25,552 aniž byste museli spouštět věci že chci spustit v tomto souboru. 258 00:12:25,552 --> 00:12:27,260 To je, opět, volitelně ale velmi časté. 259 00:12:27,260 --> 00:12:30,450 260 00:12:30,450 --> 00:12:33,840 >> Tyto věci jsou entirely-- jsou přesně stejné mezi C a Python, 261 00:12:33,840 --> 00:12:35,100 jistě v 3. 262 00:12:35,100 --> 00:12:38,610 Myslím si, že v 2, operátor divize Někdy se vrací, když plave 263 00:12:38,610 --> 00:12:41,450 vám operovali ints, a to buď jste chtěli, nebo že jste to neudělali. 264 00:12:41,450 --> 00:12:44,777 Ale plus, minus, a časy fungují přesně tak, jak byste čekali, 265 00:12:44,777 --> 00:12:46,110 leč přes mírně více typů. 266 00:12:46,110 --> 00:12:49,740 Takže si můžete násobit volně plovoucí ints, a ty druhy věcí. 267 00:12:49,740 --> 00:12:52,480 >> souprava funguje úplně stejně. 268 00:12:52,480 --> 00:12:54,310 Můžete použít dva stejné znaky. 269 00:12:54,310 --> 00:12:59,000 inequals-- větší než, menší než, tyto druhy things-- 270 00:12:59,000 --> 00:13:02,580 mají významy, které jste obeznámeni s nimi. 271 00:13:02,580 --> 00:13:05,770 >> Tam, kde C používá tyto operátory, Python používá něco více angličtinu 272 00:13:05,770 --> 00:13:06,390 ty čitelné. 273 00:13:06,390 --> 00:13:09,348 Takže místo toho dva, ampersandy, vy doslova napište slovo "a", "nebo" 274 00:13:09,348 --> 00:13:10,740 nebo ne." 275 00:13:10,740 --> 00:13:13,420 Stejně jako ve vaší if-- ve vašem podmíněné příkazy, 276 00:13:13,420 --> 00:13:17,670 jsme viděli dříve, že tento syntax v jazyce C odpovídá této syntaxi v Pythonu. 277 00:13:17,670 --> 00:13:21,010 A že to není hodně odlišné tam, až na trochu 278 00:13:21,010 --> 00:13:24,780 interpunkce kolem stranách. 279 00:13:24,780 --> 00:13:28,890 Opět platí, že pokud by C jinde pokud, Python používá Elif, 280 00:13:28,890 --> 00:13:33,960 ale jsou většinou změny na úrovni povrchu. 281 00:13:33,960 --> 00:13:38,450 >> Iterace, jako je to často napsáno v tomto idiomu v Pythonu. 282 00:13:38,450 --> 00:13:42,350 Můžete vyrábět tento druh věc s while na vnější straně 283 00:13:42,350 --> 00:13:46,387 pokud jste chtěli, ale vy rozhodně nemusíte. 284 00:13:46,387 --> 00:13:48,970 A opět, pokud jste chtěl vytisknout z prvků v poli 285 00:13:48,970 --> 00:13:50,560 můžete to udělat takhle. 286 00:13:50,560 --> 00:13:52,927 Jedna z zábavných věcí o Pythonu však, 287 00:13:52,927 --> 00:13:54,760 je, že nepotřebujete Použití tohoto paradigmatu, 288 00:13:54,760 --> 00:13:57,290 a můžete použít o něco více elegantní jednu. 289 00:13:57,290 --> 00:13:59,370 Říkáte, že pro A Ary. 290 00:13:59,370 --> 00:14:02,980 >> Takže spíše než jít sem a běží přes indexy, 291 00:14:02,980 --> 00:14:05,630 a pak vytáhl jednotlivé prvky, 292 00:14:05,630 --> 00:14:08,644 řeknete o skutečně jen přejet samotných prvků. 293 00:14:08,644 --> 00:14:11,060 A potom, co děláte Uvnitř mohou pracovat přímo 294 00:14:11,060 --> 00:14:13,260 na prvky, což je docela legrace. 295 00:14:13,260 --> 00:14:16,710 A budeme see-- budeme používat že znovu a znovu idiom 296 00:14:16,710 --> 00:14:18,050 jak jsme projít kódu. 297 00:14:18,050 --> 00:14:20,091 >> To je opět příkladem něčeho, že budu 298 00:14:20,091 --> 00:14:23,300 volat Python kouzlo, i když existují velmi technické důvody, proč to funguje. 299 00:14:23,300 --> 00:14:26,340 A tam jsou technické věci, které musí být platí o pole v pořadí 300 00:14:26,340 --> 00:14:28,340 pro tuto práci v zákulisí. 301 00:14:28,340 --> 00:14:31,390 Ta věc je, že většina druhů které byste čekali, aby to fungovalo 302 00:14:31,390 --> 00:14:36,610 měli to implementována Jste v vestavěné jazyce. 303 00:14:36,610 --> 00:14:40,030 >> Další věc, že ​​by bylo hezké pokud to fungovalo v každém jazyce, 304 00:14:40,030 --> 00:14:45,460 ale tam jsou některé důvody, proč se nemůže, vytisknout tento řetězec doby toto číslo. 305 00:14:45,460 --> 00:14:48,860 Ukázalo se v Pythonu, to dělá přesně Co byste chtěli, což je jen zábava, 306 00:14:48,860 --> 00:14:52,840 a znamená, že můžeme vlastně snížit tento program, znovu mario.c. 307 00:14:52,840 --> 00:14:57,150 Spíše než iterací hodně, můžeme jen říct, chci určitý počet míst, 308 00:14:57,150 --> 00:15:01,120 Chci počet hash, a některé hash na konci. 309 00:15:01,120 --> 00:15:02,640 A opět jsme se použít tento formát. 310 00:15:02,640 --> 00:15:05,340 >> Zde jsme předáním proměnná tímto způsobem. 311 00:15:05,340 --> 00:15:08,050 Opět jsme nemusíme říkat jaký typ proměnné je to, 312 00:15:08,050 --> 00:15:11,322 a jediný čas, my budeme chybám je v době spuštění. 313 00:15:11,322 --> 00:15:13,030 Když někdo se pokusí předat něco, 314 00:15:13,030 --> 00:15:14,860 to přijde do funkce v pohodě. 315 00:15:14,860 --> 00:15:18,240 Budeme-li klín zde, protože to není věc, kterou můžete vytvořit rozsahy přes, 316 00:15:18,240 --> 00:15:22,100 Dostanu runtime chyba tam, a já budu muset ladit to tak. 317 00:15:22,100 --> 00:15:25,050 Ale do té doby, nemám být velmi opatrní, o tom, co 318 00:15:25,050 --> 00:15:32,800 k vyprázdnění, tak dlouho, dokud v aktuální provedení to všechno funguje velmi čistě. 319 00:15:32,800 --> 00:15:35,080 >> Mohl bych dokonce, aby to trochu čistší 320 00:15:35,080 --> 00:15:41,770 použití konkrétní vestavěné funkce na řetězce, což je pravý Do bloku. 321 00:15:41,770 --> 00:15:45,250 To je jen užitečná funkce ležet v knihovně. 322 00:15:45,250 --> 00:15:47,660 Je to v dokumentaci pokud jdete a podívat se na to. 323 00:15:47,660 --> 00:15:51,650 A já říkám, no budu mít tento řetězec, nějaké číslo hashů, 324 00:15:51,650 --> 00:15:56,390 a rád bych se hned ospravedlnit to-- pad it out s mezerami, že je tato délka. 325 00:15:56,390 --> 00:16:00,584 >> Znovu, toto je v dokumentace, která přináší us-- 326 00:16:00,584 --> 00:16:03,500 Budu skutečně proklikat these-- což nás přivádí k naší druhé pravidlo 327 00:16:03,500 --> 00:16:06,990 pro Python-- standardní knihovně Metody funkce jsou vaši přátelé. 328 00:16:06,990 --> 00:16:09,880 A to je často stojí za to jít hledat Zajímalo by mě, 329 00:16:09,880 --> 00:16:12,310 jestli je věc, že ​​právě to dělá. 330 00:16:12,310 --> 00:16:13,830 Tam asi je. 331 00:16:13,830 --> 00:16:15,990 Pokud byste chtěli pad out řetězec, pokud byste 332 00:16:15,990 --> 00:16:17,470 chtěl vzít zpět polovina z řetězce, pokud byste 333 00:16:17,470 --> 00:16:20,370 Líbí se probírat řetězec, pokud byste chtěli rozbít pár věcí 334 00:16:20,370 --> 00:16:22,420 spolu s řetězcem s čárkami mezi nimi, 335 00:16:22,420 --> 00:16:24,640 tam jsou standardní knihovna funkce pro to udělat. 336 00:16:24,640 --> 00:16:27,190 >> A to dělá váš život jednodušší, pokud je používáte 337 00:16:27,190 --> 00:16:29,240 místo vyvalit vše na vlastní pěst 338 00:16:29,240 --> 00:16:31,650 v pěti řádků kódu zde, pět řádků kódu zde. 339 00:16:31,650 --> 00:16:34,430 To opravdu začíná na přidat až reálném čase. 340 00:16:34,430 --> 00:16:37,430 >> Jedním ze zajímavých věcí, o tom, jak to volána. 341 00:16:37,430 --> 00:16:39,980 Všimněte si, že je tu tečka věc. 342 00:16:39,980 --> 00:16:43,490 Mám nějaký objekt na levé straně, a pak jsem volal tečku funkce. 343 00:16:43,490 --> 00:16:49,780 To je jeden z paradigmat, že Python používá pro připevnění metody na objekty. 344 00:16:49,780 --> 00:16:54,410 Promluvíme si o tom, co to je velmi krátce na konci, 345 00:16:54,410 --> 00:16:58,510 ale víme, že se můžeme oba pracovat na věci podle přičemž ta věc říká tečku 346 00:16:58,510 --> 00:17:01,690 co, nebo na telefonním čísle funkce, která vezme 347 00:17:01,690 --> 00:17:04,339 že předmět a některé další argumenty. 348 00:17:04,339 --> 00:17:07,450 >> Tak to jsou oba způsoby, se věci dělají v Pythonu. 349 00:17:07,450 --> 00:17:09,780 A zda konkrétní funkčnost je implementována 350 00:17:09,780 --> 00:17:14,230 v tomto stylu, nebo to styl je něco, co vás 351 00:17:14,230 --> 00:17:19,990 by měl vypadat, dokud se dostanete viset pro který z nich je pravděpodobné, aby se dostal do. 352 00:17:19,990 --> 00:17:22,660 Je tu více či méně kohezní filozofií Python 353 00:17:22,660 --> 00:17:24,930 že jste většinou absorbují tím, že píše hodně v něm. 354 00:17:24,930 --> 00:17:28,190 Na nějakém místě, které jeden z nich něco, co se bude implementován jako 355 00:17:28,190 --> 00:17:29,470 vypadá přirozeně. 356 00:17:29,470 --> 00:17:32,420 Pro tuto chvíli, je to prostě něco, se naučíte, jak si přijít na to, 357 00:17:32,420 --> 00:17:34,140 každá jednotlivá věc. 358 00:17:34,140 --> 00:17:36,420 >> Takže standardní knihovna Funkce jsou vaši přátelé, 359 00:17:36,420 --> 00:17:41,320 a oni vám umožní psát věci, které zabírají tolik místa opravdu krátce, 360 00:17:41,320 --> 00:17:42,040 opravdu elegantně. 361 00:17:42,040 --> 00:17:45,670 A to je ve skutečnosti pravděpodobně více čitelné, řekl bych, než program C 362 00:17:45,670 --> 00:17:46,780 támhle. 363 00:17:46,780 --> 00:17:49,730 Nemluvě o tom, že je tak short se vejde celý slon 364 00:17:49,730 --> 00:17:52,250 v prostoru, že jsme zachráněni. 365 00:17:52,250 --> 00:17:56,270 >> Další věc, to je implementace Mario je to tečka C, což myslím, že 366 00:17:56,270 --> 00:17:57,890 je nejkratší můžete dostat. 367 00:17:57,890 --> 00:18:00,757 Nemá get int, ale že je těžké kódy hodnota 10 368 00:18:00,757 --> 00:18:02,090 stejným způsobem, že tento člověk dělá. 369 00:18:02,090 --> 00:18:06,080 Ukázalo se, že tento jeden hodiny v na 84 znaků, zatímco Python je 64. 370 00:18:06,080 --> 00:18:11,490 A to je nekonečně více čitelný než tento odpad zde. 371 00:18:11,490 --> 00:18:14,610 Takže Python je účinnější v prostoru. 372 00:18:14,610 --> 00:18:17,260 Je to o něco méně efektivní v čase, ale ne o mnoho. 373 00:18:17,260 --> 00:18:18,890 >> Seznamy jsou důležitá věc v Pythonu. 374 00:18:18,890 --> 00:18:21,540 375 00:18:21,540 --> 00:18:24,587 Nemáme je neviděl, ale oni fungují podobně jako pole dělat v C. 376 00:18:24,587 --> 00:18:27,170 Tak tady, můžete je deklarovat, můžete předat je do věci. 377 00:18:27,170 --> 00:18:29,810 Nyní čtverce je držitelem řada z těchto věcí. 378 00:18:29,810 --> 00:18:33,480 Opět jsme se deklarován jako typ, ale jestli se někdy zkuste ji použít, 379 00:18:33,480 --> 00:18:36,260 něco, co byste očekávali pracovat na pole celých čísel 380 00:18:36,260 --> 00:18:40,130 bude pracovat na pole celých čísel. 381 00:18:40,130 --> 00:18:42,030 >> To je věc, která si absolutně nemůžete 382 00:18:42,030 --> 00:18:47,390 dělat v C, protože paměť je tak ruce na, 383 00:18:47,390 --> 00:18:48,950 ale je velmi snadné udělat v Pythonu. 384 00:18:48,950 --> 00:18:55,310 Jestli Chci pole být větší, mohu připojit prvek k ní, a to je v pořádku. 385 00:18:55,310 --> 00:18:57,150 >> Co se děje v zákulisí? 386 00:18:57,150 --> 00:18:59,150 Tlumočník půjde out a získat nějaké paměti, 387 00:18:59,150 --> 00:19:00,860 a možná to bude dostat trochu více paměti, 388 00:19:00,860 --> 00:19:03,090 takže si nemyslím, takže nemám na realloc pokaždé. 389 00:19:03,090 --> 00:19:04,897 Ale kolik mají více paměti to potřebujete? 390 00:19:04,897 --> 00:19:06,730 To nejsou rozhodnutí že musíte udělat, 391 00:19:06,730 --> 00:19:10,540 jedná o rozhodnutí, že interpret se chystá udělat. 392 00:19:10,540 --> 00:19:12,270 >> Zde vidíme rozsah může trvat dva argumenty, 393 00:19:12,270 --> 00:19:16,430 ale je to stále bude inkluzivní z vrcholu, takže přidáme 1 tam. 394 00:19:16,430 --> 00:19:21,970 To je idiom, což je ještě více chytrý způsob, jak psát věci, jako je toto. 395 00:19:21,970 --> 00:19:25,980 Jmenuje se to seznam s porozuměním, a tady, co říkáme 396 00:19:25,980 --> 00:19:32,560 je Rád bych, aby v i na druhou pro každou hodnotu i v tomto rozsahu. 397 00:19:32,560 --> 00:19:35,770 To, co na pravé straně by mohl být další pole, a to, co v levé 398 00:19:35,770 --> 00:19:40,740 se, že by zvláštní funkci že by se v i jako proměnná 399 00:19:40,740 --> 00:19:42,250 a dej mi nějaký výsledek. 400 00:19:42,250 --> 00:19:43,480 >> Co budu dělat, je, Chystám se postavit 401 00:19:43,480 --> 00:19:46,200 matice, která je všechny tyto věci pro každou hodnotu v tomto rozmezí. 402 00:19:46,200 --> 00:19:48,960 403 00:19:48,960 --> 00:19:55,670 A to je super elegantní, super krátký, a je to velmi jasné, co to znamená. 404 00:19:55,670 --> 00:19:59,190 To je jeden z things-- to je opět, 405 00:19:59,190 --> 00:20:03,860 jedním of-- velmi symbolický důvody, které lidi, jako Python. 406 00:20:03,860 --> 00:20:05,900 Pokud máte rádi programování takhle, pak Python 407 00:20:05,900 --> 00:20:07,830 je jazyk, která by vás mohla učit. 408 00:20:07,830 --> 00:20:10,950 >> A opět, tam jsou technické Důvody, proč to funguje. 409 00:20:10,950 --> 00:20:14,730 Ale co jsme týká, jsme více či méně je to jedno. 410 00:20:14,730 --> 00:20:18,500 >> Takže pokud chcete vytisknout seznam, některé stejné stylů jsou užitečné. 411 00:20:18,500 --> 00:20:20,940 Pro i v tomto rozsahu, mohli bychom index přes všechny věci, 412 00:20:20,940 --> 00:20:23,140 a pak vytisknout je všechny ven. 413 00:20:23,140 --> 00:20:24,650 A uvidíte tu len. 414 00:20:24,650 --> 00:20:27,150 Pokud jste někdy chtěli dostat délka pole, to je 415 00:20:27,150 --> 00:20:31,150 v Pythonu velmi snadné, je to velmi těžké v C. 416 00:20:31,150 --> 00:20:33,720 To by vytisknout přesně co byste očekávat, že to. 417 00:20:33,720 --> 00:20:36,986 Mohli bychom také, jak jsme viděli dříve, iterovat přes prvků v poli 418 00:20:36,986 --> 00:20:39,860 přímo, a pak už jen mluvit o tom, je, spíše než index 419 00:20:39,860 --> 00:20:43,190 zpět do pole pokaždé. 420 00:20:43,190 --> 00:20:45,990 >> A to je věc, kterou můžete udělat. 421 00:20:45,990 --> 00:20:49,984 Tak v C, pokud se zeptáte na něco takhle, tisk by řekl, 422 00:20:49,984 --> 00:20:51,150 to je pole celých čísel. 423 00:20:51,150 --> 00:20:53,456 To rozhodně není řetězec, nemohu vytisknout. 424 00:20:53,456 --> 00:20:54,830 Python více či méně nestará. 425 00:20:54,830 --> 00:20:57,496 Je to jako, existuje způsob, který jsem by to mohlo obrátit na řetězec? 426 00:20:57,496 --> 00:20:58,500 Jo, udělám to. 427 00:20:58,500 --> 00:21:01,600 A tak jsem si jen vytisknout to ven. 428 00:21:01,600 --> 00:21:03,640 To znamená, že můžete dělat věci jako-- tito 429 00:21:03,640 --> 00:21:06,530 je většina z pevných částí hry patnácti, písemné 430 00:21:06,530 --> 00:21:08,930 velmi stručně v Pythonu. 431 00:21:08,930 --> 00:21:11,320 >> Uvidíte, že je tu trochu of-- zde 432 00:21:11,320 --> 00:21:14,441 Já jsem cast celé číslo na řetězec, a musím to udělat ručně. 433 00:21:14,441 --> 00:21:16,190 A já se přidat že na jiném řetězci, 434 00:21:16,190 --> 00:21:17,590 nebo jinak Python dostane zmatený. 435 00:21:17,590 --> 00:21:19,840 Ale ať už když jste přidá řetězec na celé číslo, 436 00:21:19,840 --> 00:21:22,630 Myslím, že jsem se dostat integer zpět nebo řetězec zpátky? 437 00:21:22,630 --> 00:21:24,480 Ale na druhou stranu, pokud jste právě volejte str na věc, 438 00:21:24,480 --> 00:21:27,240 a mohla by v každém možný world být převedena na řetězec, 439 00:21:27,240 --> 00:21:30,390 to bude asi převeden do řetězce. 440 00:21:30,390 --> 00:21:33,120 >> Tady vidíme použití Seznam vnořených porozumění 441 00:21:33,120 --> 00:21:38,690 na levé straně, některé indexování, který je přesně tak, jak byste být použity na to, 442 00:21:38,690 --> 00:21:40,060 a někteří vytisknout věcí. 443 00:21:40,060 --> 00:21:42,560 Opět jsme definovány některé funkce a zavoláme je dolů 444 00:21:42,560 --> 00:21:45,820 v hlavní kdy jsme skutečně dostat soubor. 445 00:21:45,820 --> 00:21:52,004 return funguje přesně tak, jak byste očekáváte od práce s C. Najít, 446 00:21:52,004 --> 00:21:54,420 můžeme nastavit věci jako tohle-- tady je seznam s porozuměním 447 00:21:54,420 --> 00:21:59,245 tam je přiřazení k proměnné, a můžeme skutečně udělat ještě jednodušší. 448 00:21:59,245 --> 00:22:01,870 Nepotřebujeme psát hledání, protože vestavěné do jazyka 449 00:22:01,870 --> 00:22:04,230 je-li to, co je v tomto poli. 450 00:22:04,230 --> 00:22:05,680 Vrací true, jinak return false. 451 00:22:05,680 --> 00:22:08,830 Tak to je celistvost najít. 452 00:22:08,830 --> 00:22:12,230 >> Celistvost druhu zahrnuje volání druhu, 453 00:22:12,230 --> 00:22:15,462 což je-- existují implementace z toho vestavěný do jistých C knihovny. 454 00:22:15,462 --> 00:22:17,170 Pokud byste takhle druh zpět, vám 455 00:22:17,170 --> 00:22:20,450 můžete potlačit tento volitelný Argument v opačném směru s opravdovým. 456 00:22:20,450 --> 00:22:23,350 457 00:22:23,350 --> 00:22:27,860 A pokud byste chtěli seřadit přes řetězce, který je vestavěný stejně. 458 00:22:27,860 --> 00:22:31,950 >> Takže to není říkat to jsou věci, které musíte dělat každý den, 459 00:22:31,950 --> 00:22:34,280 ale myšlenka je, že tento je filozofie Python, 460 00:22:34,280 --> 00:22:37,530 že všechny tyto věci, které byste druh chcete dělat jsou vestavěné. 461 00:22:37,530 --> 00:22:42,410 A většina standardní funkce, tak nějak, délka, cokoliv, 462 00:22:42,410 --> 00:22:44,380 podporovat nejvíce logicky rozumný vstup. 463 00:22:44,380 --> 00:22:49,020 Budete volat len ​​na poli ve stejném jak jste volání len na provázku. 464 00:22:49,020 --> 00:22:55,785 Ty multiply-- seřadit řetězce stejným způsobem třídit pole. 465 00:22:55,785 --> 00:22:58,930 466 00:22:58,930 --> 00:23:00,740 >> Většina standardních funkcí že lidé stavět, 467 00:23:00,740 --> 00:23:03,000 a většina třetích stran knihoven, které lidé 468 00:23:03,000 --> 00:23:06,980 stavět, protože jsou emulovat konstrukce standardní knihovny, 469 00:23:06,980 --> 00:23:10,190 lze nazvat o všem, že jste jako, proč se to jen práce, 470 00:23:10,190 --> 00:23:12,800 v C. Více nebo méně, to bude fungovat v Pythonu 471 00:23:12,800 --> 00:23:15,930 proto, že lidé pracují za obr co věc je, a pak pracovat 472 00:23:15,930 --> 00:23:17,510 patřičně na to. 473 00:23:17,510 --> 00:23:22,760 Takže znovu, technické zázemí, ale to dělá náš život snazší, neboť programátoři. 474 00:23:22,760 --> 00:23:26,820 >> Tak tady je soubor I / O. soubor I / O má spoustu málo věcí, které dělají to složité, 475 00:23:26,820 --> 00:23:29,890 a tak tam jsou zdroje on-line, ale ve zkratce, 476 00:23:29,890 --> 00:23:33,010 říkáte otevřít na souboru jméno s určitým typem. 477 00:23:33,010 --> 00:23:37,640 Tak to je číst, číst a psát, psát nebo připojit. 478 00:23:37,640 --> 00:23:41,790 Přečetli jste si určitý počet znaky ven a tisknete ty, 479 00:23:41,790 --> 00:23:42,595 dostanete Dobrý den! 480 00:23:42,595 --> 00:23:43,970 Mám na mysli, jako je tento soubor měl Dobrý den! 481 00:23:43,970 --> 00:23:46,480 V tom, volání číst, a to, co dostanete zpět 482 00:23:46,480 --> 00:23:49,520 je řetězec, který má všechny zbytku pole, 483 00:23:49,520 --> 00:23:50,860 nebo všechny zbývající části spisu. 484 00:23:50,860 --> 00:23:53,805 485 00:23:53,805 --> 00:23:56,055 Pokud zavoláte znovu číst, jste na konci souboru, 486 00:23:56,055 --> 00:23:58,138 a tak nemusíte dostat něco, a tak se budete ukončit. 487 00:23:58,138 --> 00:24:02,510 Znovu, toto je .close spíše než Zavřít soubor, protože by to bylo v C. 488 00:24:02,510 --> 00:24:07,190 Toto je více nebo méně, protože f je věc, a chcete na f zavřít. 489 00:24:07,190 --> 00:24:12,092 Ale základní soubor I / O, není obzvláště složité. 490 00:24:12,092 --> 00:24:15,300 Opět platí, že pokud si přejete otevřít soubor, pokud chcete přečíst určitou řadu, 491 00:24:15,300 --> 00:24:17,870 můžete dostat z konkrétní line-- tu vestavby pro to. 492 00:24:17,870 --> 00:24:19,995 Pokud byste chtěli napsat věc, můžete napsat to. 493 00:24:19,995 --> 00:24:23,412 Pokud byste chtěli vypsat individuální kousnutí, můžete napsat ty. 494 00:24:23,412 --> 00:24:25,620 A pokud byste chtěli iteraci na tratích souboru 495 00:24:25,620 --> 00:24:29,557 jednotlivě, jako jsme to udělali v kuse od Před několika týdny, můžete to udělat, aby. 496 00:24:29,557 --> 00:24:32,140 Opět platí, že většina objektů, které byste chtěli mít možnost s iterovat přes 497 00:24:32,140 --> 00:24:33,780 Podpora Iterace nad nimi. 498 00:24:33,780 --> 00:24:37,430 V Pythons, soubor je možná věc, která Rád bych s iterovat přes řádek po řádku. 499 00:24:37,430 --> 00:24:39,138 Pokud by to bylo slovníku slova a já jsem byl 500 00:24:39,138 --> 00:24:42,181 se snaží dostat ty jednotlivce slova se, pak se, v rámci této smyčky, 501 00:24:42,181 --> 00:24:44,180 linka, že to bude Každé slovo v pořadí, a to 502 00:24:44,180 --> 00:24:47,880 se bude popraven za každou linku v souboru až do konce souboru. 503 00:24:47,880 --> 00:24:52,280 A opět, když jsem vytisknout každý linka, linky přicházet s novými linkami, 504 00:24:52,280 --> 00:24:54,740 takže jsem nastavení koncového zpět k věci, jako je tento. 505 00:24:54,740 --> 00:24:56,580 Pak bych si obsah mého souboru. 506 00:24:56,580 --> 00:25:03,610 507 00:25:03,610 --> 00:25:07,480 >> Druhá věc, která působí v některé způsoby, jako například seznamy a v některých ohledech 508 00:25:07,480 --> 00:25:11,870 jako něco podstatně silnější, 509 00:25:11,870 --> 00:25:16,170 jsou slovníky, které jsou opravdu pohodě použít, ale jsou v podstatě hash 510 00:25:16,170 --> 00:25:17,670 Tabulky v přestrojení. 511 00:25:17,670 --> 00:25:23,330 Můžete vytvořit jeden pomocí přesně dvě postavy, což je úžasné 512 00:25:23,330 --> 00:25:25,959 pokud jste se pokusili implementovat hash tabulky pro váš problém set, 513 00:25:25,959 --> 00:25:27,250 Víte, mnoho bolesti, která může být. 514 00:25:27,250 --> 00:25:29,390 Ale lidé dělali to, a udělal to tak dobře, 515 00:25:29,390 --> 00:25:32,260 že nemáte na si s tím starosti ještě. 516 00:25:32,260 --> 00:25:35,180 >> Pak můžete vkládat jednotlivé věci. 517 00:25:35,180 --> 00:25:38,110 Hash tables-- nebo slovníky ne zvlášť 518 00:25:38,110 --> 00:25:40,240 jedno, co jste ukládání v nich. 519 00:25:40,240 --> 00:25:44,210 Takže pokud některé položky jsou čísla, a některé položky jsou seznamy, 520 00:25:44,210 --> 00:25:47,360 pokud některé položky jsou další slovníky, a některé položky jsou řetězce, 521 00:25:47,360 --> 00:25:49,930 Python ne tolik péče. 522 00:25:49,930 --> 00:25:53,460 >> Opět platí, že pokud jdete do toho očekával řetězec, a to, co se dostanete zpět 523 00:25:53,460 --> 00:25:56,269 je pole, to je váš problém. 524 00:25:56,269 --> 00:25:58,810 A možná je to vina toho, kdo myslel, že to bylo uvedení věci 525 00:25:58,810 --> 00:26:00,476 ve slovníku, možná, že jsi to ty. 526 00:26:00,476 --> 00:26:02,350 Pokud to byl někdo, ostatní, doufejme, že byly 527 00:26:02,350 --> 00:26:04,520 dobře vychovaný o čem se děje ve slovníku 528 00:26:04,520 --> 00:26:07,420 a neopustil žádné nástrahy pro vás spadnout do. 529 00:26:07,420 --> 00:26:10,890 >> Ale standardní funkce budou vám zpět dobře se chovajících věci. 530 00:26:10,890 --> 00:26:13,500 Tak oni říkají, že toto se vrací zpět slovníku řetězců, 531 00:26:13,500 --> 00:26:15,860 pak vše, co jdeš se dostat ven z je řetězec. 532 00:26:15,860 --> 00:26:20,710 Pokud se vám něco z toho, a to výlety jste si, dobře, to může být na vás. 533 00:26:20,710 --> 00:26:25,542 Python určitě vám dává dost lano se oběsit, pokud budete chtít. 534 00:26:25,542 --> 00:26:28,250 Nyní můžeme vytisknout individuální prvky tohle a tohle se vrací 535 00:26:28,250 --> 00:26:29,935 přesně to, co byste očekávali. 536 00:26:29,935 --> 00:26:32,810 Přesně to, co byste očekávali, myslím, je výraz, který jsem pomocí hodně, 537 00:26:32,810 --> 00:26:35,070 ale to je více nebo méně jak Python funguje. 538 00:26:35,070 --> 00:26:39,880 Zeptáte-li se o věc, která není to, Python bude vyhodit chybu 539 00:26:39,880 --> 00:26:43,194 a to bude přestat vás z bez ohledu na program, který byl v. 540 00:26:43,194 --> 00:26:45,360 Bude to vlastně vytisknout více informací, než to, 541 00:26:45,360 --> 00:26:49,110 to bude bod vás-- to bude přidat čáru, a tak. 542 00:26:49,110 --> 00:26:52,190 >> A opět, možná chceme přecházet přes slovníky 543 00:26:52,190 --> 00:26:54,410 a najít všechny věci v něm. 544 00:26:54,410 --> 00:26:57,440 Zde jsme iterace přes ve stejnou dobu dvě věci. 545 00:26:57,440 --> 00:27:03,040 A tak budeme dělat s klíčem, hodnota, ale pak vytisknout všechny tyto. 546 00:27:03,040 --> 00:27:06,300 >> A pokud bychom chtěli cast-- pokud jsme vlastně běžel to, 547 00:27:06,300 --> 00:27:10,840 budeme mít nějaké problémy z následujících důvodů on-- když jsme šli s Davidem, 548 00:27:10,840 --> 00:27:13,920 to nemohlo add-- kdybychom ne vrci řetězec jako první, 549 00:27:13,920 --> 00:27:17,802 jsme nemohli dodat, že pole řetězců na palubu řetězce. 550 00:27:17,802 --> 00:27:19,760 Ale pokud budeme obsadil ji do A string, dostaneme něco 551 00:27:19,760 --> 00:27:22,590 jako je tento, což je možná to, co jsme chtěli přečíst. 552 00:27:22,590 --> 00:27:27,000 553 00:27:27,000 --> 00:27:30,500 >> A to je speller. 554 00:27:30,500 --> 00:27:32,460 Právě čteme ve věcech. 555 00:27:32,460 --> 00:27:35,770 Takže můžeme číst v jednotlivá slova jsou čáry. 556 00:27:35,770 --> 00:27:38,240 My utnout poslední věc, takže tlustého střeva minus 1 557 00:27:38,240 --> 00:27:41,651 Chomps z poslední věc, která we-- poslední znak řetězce. 558 00:27:41,651 --> 00:27:42,150 Řekneme. 559 00:27:42,150 --> 00:27:44,730 OK, z nichž každý jeden z těch, dostane vloží do tohoto slovníku, 560 00:27:44,730 --> 00:27:45,810 mapování na hodnotu 1. 561 00:27:45,810 --> 00:27:48,006 Děláme nijak zvlášť péče o, že jeden, 562 00:27:48,006 --> 00:27:51,130 ale je to jen tam říct, oh no, tahle věc Dám do slovníku. 563 00:27:51,130 --> 00:27:53,182 Vzhledem k tomu, později to, co jsme chystá udělat, je, že jsme 564 00:27:53,182 --> 00:27:55,390 chtěl říct, dobře, pokud je to ve slovníku vůbec. 565 00:27:55,390 --> 00:27:57,650 >> Opět platí, že tato kontrola pro Členství je až provozní 566 00:27:57,650 --> 00:28:00,940 za použití zcela jiný algoritmus, než to bude v seznamu, 567 00:28:00,940 --> 00:28:05,709 ale říkáme to stejným způsobem, který Je něco z toho Python cukrovou polevou 568 00:28:05,709 --> 00:28:07,250 věci, tak, že jsou jednodušší. 569 00:28:07,250 --> 00:28:10,230 A opět jsme viděli než se věci, jako je tento. 570 00:28:10,230 --> 00:28:12,940 To je v podstatě najít, nebo je to přesně stejné syntaxe 571 00:28:12,940 --> 00:28:16,480 as najít, ale je v provozu více než zcela odlišná struktura. 572 00:28:16,480 --> 00:28:20,170 A my to nijak zvlášť nezajímá. 573 00:28:20,170 --> 00:28:25,540 Takže to jsou věci, které byste byli požádáni, aby splnit pro pravopisu. 574 00:28:25,540 --> 00:28:29,278 Při tomto tempu, budeme se dostat více či méně všechny psets udělat. 575 00:28:29,278 --> 00:28:31,474 >> Publikum: Tak, že v podstatě jen se vrací 576 00:28:31,474 --> 00:28:34,852 jako nesprávně napsáno, pokud to není odpovídaly něco v slovníku? 577 00:28:34,852 --> 00:28:36,060 ROSS RHEINGANS-YOO: Ano, ano. 578 00:28:36,060 --> 00:28:38,964 579 00:28:38,964 --> 00:28:40,880 A tak, jedná se o adaptace problému set 580 00:28:40,880 --> 00:28:43,150 který se vás zeptá, abyste udělali přesně to. 581 00:28:43,150 --> 00:28:46,357 >> Diváků: Proč je řada minus 1 tam? 582 00:28:46,357 --> 00:28:48,190 ROSS RHEINGANS-YOO: So když jste iterace 583 00:28:48,190 --> 00:28:50,300 přes soubor s žádostí o od vedení, linky 584 00:28:50,300 --> 00:28:53,900 přicházejí s znak nového řádku na konci to-- mínus 1 585 00:28:53,900 --> 00:28:55,260 je prostě nakupovat ty pryč. 586 00:28:55,260 --> 00:28:59,549 A to je mimořádně flexibilní způsob indexování do věcí. 587 00:28:59,549 --> 00:29:01,590 Takže pokud máte řetězec, a chtěli byste, no já jsem 588 00:29:01,590 --> 00:29:05,340 začnou na charakteru tři a já půjdu až do konce. 589 00:29:05,340 --> 00:29:07,140 3 dvojtečka udělá za vás. 590 00:29:07,140 --> 00:29:10,570 Pokud jste stejně jako, chci začít u začínají a jít na poslední minus 1 591 00:29:10,570 --> 00:29:12,400 znak, tlustého střeva minus 1. 592 00:29:12,400 --> 00:29:14,940 A pokud byste chtěli jít od Třetí do minus jako první, 593 00:29:14,940 --> 00:29:16,570 pak bych řekl, že 3 minus 1. 594 00:29:16,570 --> 00:29:19,464 595 00:29:19,464 --> 00:29:22,400 >> Navíc, pokud chcete, aby index do věcí počítání zezadu, 596 00:29:22,400 --> 00:29:24,470 stačí index s čísly minus. 597 00:29:24,470 --> 00:29:26,980 A protože kde C exploduje nebo možná 598 00:29:26,980 --> 00:29:31,090 krmit další paměť, kterou neměli Přístup k, slyšet, můžete říct minus 1 599 00:29:31,090 --> 00:29:34,104 znamená, že poslední, ale 1 znak v řetězci. 600 00:29:34,104 --> 00:29:36,950 601 00:29:36,950 --> 00:29:43,590 >> Moduly jsou version-- jsou analogů knihoven C 602 00:29:43,590 --> 00:29:45,119 a jsou užitečné pro spoustu věcí. 603 00:29:45,119 --> 00:29:46,910 Hodně věcí byste chtěli dělat v Pythonu, 604 00:29:46,910 --> 00:29:50,040 Kromě jednoduché manipulace proměnných, 605 00:29:50,040 --> 00:29:52,290 Chcete-li připojit do větší knihovny s větší 606 00:29:52,290 --> 00:29:55,910 rozhraní a další funkce pro interakci 607 00:29:55,910 --> 00:29:57,195 s jinými částmi světa. 608 00:29:57,195 --> 00:29:58,910 sys je jedním z těch, s partou nástrojů 609 00:29:58,910 --> 00:30:01,159 které jsou vhodné pro interakci s samotném systému 610 00:30:01,159 --> 00:30:05,050 a importovat ji jako import sys. 611 00:30:05,050 --> 00:30:07,820 >> Je tu další dokumentace od To, co jste tu mohli jít, 612 00:30:07,820 --> 00:30:11,490 nebo jste mohli najít na Googlu googling Python sys. 613 00:30:11,490 --> 00:30:12,640 Zadáte v zadání. 614 00:30:12,640 --> 00:30:15,140 První odkaz bude dokumentace v Pythonu 2, 615 00:30:15,140 --> 00:30:19,260 Druhá vazba se chystá být dokumentace Python 3. 616 00:30:19,260 --> 00:30:24,830 >> A pokud bychom napsal soubor, který vypadal jako tohle-- If zejména jsme 617 00:30:24,830 --> 00:30:27,910 při pohledu na působí na argumenty příkazového řádku, 618 00:30:27,910 --> 00:30:30,040 stejně jako jsme se naučili dělat velmi brzy v této třídě. 619 00:30:30,040 --> 00:30:32,190 To není obtížné. Můžete dostat ven argv, 620 00:30:32,190 --> 00:30:34,565 což je jedna z těch věcí, který je implementován sys. 621 00:30:34,565 --> 00:30:37,210 Není to vestavěný do základní balík, ale znovu, 622 00:30:37,210 --> 00:30:40,080 lze prodloužit pomocí importu že funkčnost z sys. 623 00:30:40,080 --> 00:30:41,090 Budete říkat sys. 624 00:30:41,090 --> 00:30:42,611 cokoliv. 625 00:30:42,611 --> 00:30:43,360 Zde je argv. 626 00:30:43,360 --> 00:30:45,193 Je tu vlastně žádný argc v sys, protože vás 627 00:30:45,193 --> 00:30:47,880 Můžete si jej tak snadno voláním len. 628 00:30:47,880 --> 00:30:55,390 My pak vytisknout, že ven, pak jsme běžel na našem terminálu echo-args.py. 629 00:30:55,390 --> 00:30:58,360 Máme se vrátit pole, který Je to první argument. 630 00:30:58,360 --> 00:31:02,240 Opět platí, že toto je argv 0, což je jméno té věci, která dostala volal. 631 00:31:02,240 --> 00:31:04,870 Pokud bychom nazývali to s přídavnou argumenty, dostali bychom ty zpátky. 632 00:31:04,870 --> 00:31:07,687 633 00:31:07,687 --> 00:31:09,770 To je jeden způsob, jak dostat argumenty příkazového řádku. 634 00:31:09,770 --> 00:31:13,440 Chcete-li příznaky, kde odbočíte zvláštní věci na nebo přepsání 635 00:31:13,440 --> 00:31:16,050 konkrétní výchozí, argparse je váš přítel. 636 00:31:16,050 --> 00:31:21,550 A opět zjistíte, že on-line v pythonu argparse na Google. 637 00:31:21,550 --> 00:31:24,300 >> Existuje několik užitečnosti moduly, které najdete sami pomocí 638 00:31:24,300 --> 00:31:27,630 a znovu, pokud budete trávit nějaký čas tohoto jazyka importu jsons 639 00:31:27,630 --> 00:31:33,300 pro čtení a ven z JSON Soubory, není tak složité. 640 00:31:33,300 --> 00:31:37,139 Můžete otevřít soubor, nazvaný json.load v tomto souboru a vrátit věc. 641 00:31:37,139 --> 00:31:37,930 Co je to za věc? 642 00:31:37,930 --> 00:31:40,329 Je to JSON objekt. 643 00:31:40,329 --> 00:31:42,370 V případě, že JSON má pole, Python má pole. 644 00:31:42,370 --> 00:31:44,420 V případě, že má JSON asociativní pole, Pythonův 645 00:31:44,420 --> 00:31:48,810 slovníky, řetězce, a čísla, a tak dále. 646 00:31:48,810 --> 00:31:53,560 Chcete-li výpis, že z vás, otevřít nový soubor, říkáte výpis, 647 00:31:53,560 --> 00:31:57,590 a zatížení a skládek na jít dovnitř a ven z řetězců. 648 00:31:57,590 --> 00:32:02,120 >> Podobně, lák volána v podstatě stejné rozhraní. 649 00:32:02,120 --> 00:32:04,740 To je o něco více užitečné, pokud jste dumping Python objekty. 650 00:32:04,740 --> 00:32:08,370 Takže pokud jste někdy chtěli ušetřit verze aktuálního stavu 651 00:32:08,370 --> 00:32:11,930 proměnné pro budoucnost běh vašeho programu, 652 00:32:11,930 --> 00:32:14,740 okurka je Python je knihovna za to, že. 653 00:32:14,740 --> 00:32:19,140 >> Máte-li nějaký druh proměnná, která může být napsána 654 00:32:19,140 --> 00:32:21,990 za obdobných slov a znaků a bytes-- jako je tento slovník, 655 00:32:21,990 --> 00:32:24,230 můžeme napsat, my mohl napsat to dolů as 656 00:32:24,230 --> 00:32:26,670 jako json objektu, který byl doslova tyto znaky. 657 00:32:26,670 --> 00:32:29,420 A pak by bylo velmi snadné člověk otevřít to up-- otevřít 658 00:32:29,420 --> 00:32:30,889 a přečtěte si ji. 659 00:32:30,889 --> 00:32:33,180 Kdybychom nijak zvlášť péče o lidech to čtení, 660 00:32:33,180 --> 00:32:38,490 bychom mohli balíček ještě efektivněji do forem, které by mohly být později vybaleno 661 00:32:38,490 --> 00:32:42,860 nebo že by později mohl být nahuštěny. 662 00:32:42,860 --> 00:32:46,740 A to ušetří 80% prostor, který vaše předměty by se mohly 663 00:32:46,740 --> 00:32:49,390 trvat, pokud jste napsal ven latinkou. 664 00:32:49,390 --> 00:32:52,384 >> Zavoláte nálev moc totéž way-- skládka, zatížení, 665 00:32:52,384 --> 00:32:53,800 a pak se dostat své věci zpět. 666 00:32:53,800 --> 00:32:56,880 Takže pokud píšete velmi Python krátké programy, které 667 00:32:56,880 --> 00:32:59,952 chtějí ušetřit stát, a pak si přečtěte jim později, takové věci 668 00:32:59,952 --> 00:33:00,660 jsou vaši přátelé. 669 00:33:00,660 --> 00:33:02,640 Že byste mohli velmi snadno vypsat je jako formátu JSON. 670 00:33:02,640 --> 00:33:04,550 Většina objektů Python může vypsat ven JSON 671 00:33:04,550 --> 00:33:11,310 jestli je nějaká naděje, že strukturálně mohly by být zastoupeny tímto způsobem. 672 00:33:11,310 --> 00:33:14,410 >> To jsou jen špička ledovec moduly, které jsou užitečné. 673 00:33:14,410 --> 00:33:19,510 Takže sys, os, multiprocessing, jsou druh základních tahounů pro věci, 674 00:33:19,510 --> 00:33:23,120 musíme komunikovat s souborový systém os., 675 00:33:23,120 --> 00:33:28,764 jako os.isfile, os.isdirectory, os.makefile, to jsou vaši přátelé. 676 00:33:28,764 --> 00:33:30,930 Pokud chcete komunikovat s konkrétním typem souboru, 677 00:33:30,930 --> 00:33:32,190 JSON, lák, csv. 678 00:33:32,190 --> 00:33:37,160 Chcete-li komunikovat s web Stránky se urllib pro získání http 679 00:33:37,160 --> 00:33:41,370 stránek. bs4-- BeautifulSoup-- je to nádherný parser pro HTML. 680 00:33:41,370 --> 00:33:47,047 Můžete jej spustit na html a vy získat tento vnořený objekt Array teď, 681 00:33:47,047 --> 00:33:49,630 které si můžete procházet přes lookin, jako se jen hledá 682 00:33:49,630 --> 00:33:52,380 pokud je, v, což je fantastické. 683 00:33:52,380 --> 00:33:55,920 >> Je tu banda balíčky pro running-- 684 00:33:55,920 --> 00:33:57,960 za to zejména MATHY věci. 685 00:33:57,960 --> 00:34:01,790 Takže pokud chcete násobit, obrácení, transformace matice, 686 00:34:01,790 --> 00:34:05,690 numpy se používají lidé všech celém světě pro to. 687 00:34:05,690 --> 00:34:09,620 scipy je ještě užitečnější nástroje v tomto směru. 688 00:34:09,620 --> 00:34:13,980 sklearn-- strojové učení, zpracování přirozeného jazyka, 689 00:34:13,980 --> 00:34:17,880 Super užitečné věci, dostane implementovány v jazyce Python po celou dobu. 690 00:34:17,880 --> 00:34:21,469 >> A opět se mírně déle write-- líto, 691 00:34:21,469 --> 00:34:26,199 trvá o něco déle běžet, ale důvod, že skutečné inženýři mají tendenci 692 00:34:26,199 --> 00:34:29,900 Použití Python je proto, že mají tendenci být blokován na vás psaní kódu, spíše 693 00:34:29,900 --> 00:34:32,699 než váš počítač spuštěn kód. 694 00:34:32,699 --> 00:34:35,860 Takže pokud se chystáte napsat Program, který spousta dalších lidí 695 00:34:35,860 --> 00:34:37,699 se bude používat navždy, jako je Linux, vy 696 00:34:37,699 --> 00:34:41,900 může napsat, že v C. Pokud jste byli chystá napsat výpočetní motor, 697 00:34:41,900 --> 00:34:46,124 můžete psát v Pythonu, pokud jste potřebovali ji měnit každých pár měsíců. 698 00:34:46,124 --> 00:34:48,540 Někteří lidé by se napsat, že v C, protože jsou to takhle. 699 00:34:48,540 --> 00:34:51,100 700 00:34:51,100 --> 00:34:54,050 >> Takže jsme viděli import sys jako způsob, jak se věci 701 00:34:54,050 --> 00:34:57,070 jak se dostat modul do programu. 702 00:34:57,070 --> 00:35:00,370 Můžete také importovat jako přezdívka, pokud budete chtít. 703 00:35:00,370 --> 00:35:03,660 Opět multiprocessing je bolest zadejte ven pokaždé, tak import as mp 704 00:35:03,660 --> 00:35:05,900 a pak kdykoliv použít v programu, 705 00:35:05,900 --> 00:35:09,732 řeknete mp.process, nebo co jste. 706 00:35:09,732 --> 00:35:12,670 Pokud byste chtěli import pouze jediná věc, 707 00:35:12,670 --> 00:35:19,450 tak urllib má věc zvanou Požadavek, takže si můžete importovat jen to. 708 00:35:19,450 --> 00:35:22,610 Později, nebudete ji vyvolat jako urllib.request, ale stejně jako požadavek 709 00:35:22,610 --> 00:35:24,590 sám od sebe. 710 00:35:24,590 --> 00:35:30,110 >> A můžete importovat vše z modulu, pokud by se vám líbí. 711 00:35:30,110 --> 00:35:34,820 To je občas není dobrý idea-- to obvykle není dobrý nápad, ve skutečnosti. 712 00:35:34,820 --> 00:35:39,080 Protože jste very--, protože pokud něco V tomto modulu má název, který vás 713 00:35:39,080 --> 00:35:41,640 chtěli použít někde jinde ve vašem programu, nemůžete. 714 00:35:41,640 --> 00:35:44,127 >> A to není vždy zřejmé, že je tomu tak. 715 00:35:44,127 --> 00:35:46,460 S cílem zajistit, aby co jste dělali v bezpečí, 716 00:35:46,460 --> 00:35:47,920 budete muset otevřít modul a vidět všechny 717 00:35:47,920 --> 00:35:50,295 názvy, které končí v there-- všechny funkce, 718 00:35:50,295 --> 00:35:53,010 všechny proměnné že žijí v tomto modulu, 719 00:35:53,010 --> 00:35:57,040 protože jste přinášet všechny je do místního názvů. 720 00:35:57,040 --> 00:35:58,680 >> Takže lidé dělají to. 721 00:35:58,680 --> 00:36:01,322 Obecně se doporučuje že nemáte dělat. 722 00:36:01,322 --> 00:36:03,280 Ale lidé to vše čas, protože jsou 723 00:36:03,280 --> 00:36:05,180 líný a nechci psát ven MP. 724 00:36:05,180 --> 00:36:06,310 cokoliv, nikdy. 725 00:36:06,310 --> 00:36:09,560 726 00:36:09,560 --> 00:36:13,310 >> Všechny ty řeči o modulech aby mě kolem krátkém rozhovoru 727 00:36:13,310 --> 00:36:15,930 na tom, jak navrhovat programy v Pythonu. 728 00:36:15,930 --> 00:36:19,860 Prvním krokem je zkontrolovat, zda někdo jiný již udělal věc, 729 00:36:19,860 --> 00:36:22,160 nebo udělal 90% věci. 730 00:36:22,160 --> 00:36:26,010 Je pravděpodobné, že pravděpodobně mají, a vy by mělo jít dostat své věci a spustit to. 731 00:36:26,010 --> 00:36:28,900 Nebo napsat wrapper kolem něj přizpůsobit ji do svého účelu. 732 00:36:28,900 --> 00:36:31,250 Je to jen po tom má selhalo, že byste pak 733 00:36:31,250 --> 00:36:35,529 jít dál a začít přemýšlet o write-- Jak byste dal tuhle věc dohromady. 734 00:36:35,529 --> 00:36:37,320 Je tu spousta věcí tam, a to je 735 00:36:37,320 --> 00:36:39,180 jeden z nejužitečnějších věcí o Pythonu. 736 00:36:39,180 --> 00:36:40,930 Jako jazyk je elegantní, jazyk 737 00:36:40,930 --> 00:36:43,800 je snadno ovladatelný, ale také proto, je to tak elegantní a snadno ovladatelný, 738 00:36:43,800 --> 00:36:47,420 lidé používali to na dlouhá doba a je tu spousta věcí 739 00:36:47,420 --> 00:36:52,520 tam, že můžete využít pro vlastní potřebu. 740 00:36:52,520 --> 00:36:58,457 >> Takže poslední pravidlo Python je, někdo jiný už pravděpodobně psaný 741 00:36:58,457 --> 00:37:00,290 modul pro to, někdo jiný má již 742 00:37:00,290 --> 00:37:02,980 pravděpodobně psaný knihovnu za to. 743 00:37:02,980 --> 00:37:06,579 Předtím, než se pokusíte udělat něco, podívejte se aby zjistil, jestli to byla provedena. 744 00:37:06,579 --> 00:37:07,370 Není to tak těžké. 745 00:37:07,370 --> 00:37:11,960 Všechny moduly, které jsem dal nahoru předtím, snad s jedinou výjimkou, 746 00:37:11,960 --> 00:37:15,220 předinstalovány v každém standardní instalace Python. 747 00:37:15,220 --> 00:37:17,769 A tak se volání dovážet cokoliv, vás 748 00:37:17,769 --> 00:37:19,852 mít všechny této funkci na dosah ruky. 749 00:37:19,852 --> 00:37:24,660 750 00:37:24,660 --> 00:37:28,920 >> Začátek zabalit to povídat, existuje několik věcí, 751 00:37:28,920 --> 00:37:32,770 že jsem odešel jako černé skříňky a druh utajeno, 752 00:37:32,770 --> 00:37:37,217 a tam je několik White Lies, že jsem Řekl, že v zájmu poctivosti, 753 00:37:37,217 --> 00:37:39,050 Budu alespoň bodě tady, i když nebudu 754 00:37:39,050 --> 00:37:43,980 jdou extra hluboko do všech z nich a jejich technické vysvětlení. 755 00:37:43,980 --> 00:37:46,010 >> Spousta věcí, že jsem volal magie 756 00:37:46,010 --> 00:37:48,980 je to, co ostatní lidé by vyžadovalo objektově orientovaného programování. 757 00:37:48,980 --> 00:37:52,470 Takže existuje mnoho things-- tak proměnné jsou velmi často 758 00:37:52,470 --> 00:37:56,540 jednoduché bajtů sedí v, paměť, ale jsou velmi komplikované 759 00:37:56,540 --> 00:38:01,910 objekty, které mají interní stát o funkcích a spoustou 760 00:38:01,910 --> 00:38:05,570 z skryté proměnné, spousta skrytý funkčnost, která 761 00:38:05,570 --> 00:38:09,480 vám umožní proměnit je v řetězcích který umožňuje iteraci nad nimi. 762 00:38:09,480 --> 00:38:12,260 A pokud jste writing-- a z důvodu, že 763 00:38:12,260 --> 00:38:15,710 mají všechny tyto bohaté funkce Je tomu tak proto k people-- 764 00:38:15,710 --> 00:38:17,740 architektů language-- šly 765 00:38:17,740 --> 00:38:22,420 skrz a pro každý standardní objekt, dát do funkce 766 00:38:22,420 --> 00:38:26,970 říci, je to, jak je to jak to bude fungovat 767 00:38:26,970 --> 00:38:28,470 pokud někdo chce pro iteraci nad ním. 768 00:38:28,470 --> 00:38:31,240 >> Takže všechno, někdo by mohl případně chtějí iteraci, 769 00:38:31,240 --> 00:38:34,529 má logiku napsanou v ručně na tom, jak jste 770 00:38:34,529 --> 00:38:36,070 má iteraci tohoto objektu. 771 00:38:36,070 --> 00:38:40,274 Vše, co byste mohli přát dumpingové do řetězce je logické napsal. 772 00:38:40,274 --> 00:38:43,440 To je funkce, která vám zavolat, pokud Chcete-li vypsat na to na řetězec. 773 00:38:43,440 --> 00:38:45,273 To je důvod, proč můžete volat len ​​na věci, to 774 00:38:45,273 --> 00:38:49,900 je důvod, proč můžete volat v, to je proč si můžete zavolat, pokud o všem 775 00:38:49,900 --> 00:38:53,490 že byste chtěli, protože Všichni, kdo nesou s sebou, 776 00:38:53,490 --> 00:38:55,380 technické know-how k tomu, že. 777 00:38:55,380 --> 00:38:58,170 778 00:38:58,170 --> 00:39:00,432 >> To je něco, co jsem si Super nehodlá jít do. 779 00:39:00,432 --> 00:39:03,140 Ale pro věc v seznamu je decentně odlišné od C styl pro smyčky, 780 00:39:03,140 --> 00:39:06,160 a můžete přečíst vše o tom na internetu, pokud máte zájem. 781 00:39:06,160 --> 00:39:08,930 Tam je stinná stránka pro všechny z toho, že jsem se zmínil, 782 00:39:08,930 --> 00:39:10,359 takže je tu dvě věci. 783 00:39:10,359 --> 00:39:13,400 První je, že tento objekt orientovaný programování přidává spoustu režie 784 00:39:13,400 --> 00:39:16,080 na náhodné věci, takže můžete skončit up s použitím mnohem více paměti; 785 00:39:16,080 --> 00:39:18,640 můžete skončit s použitím trochu více Doba, než byste jinak. 786 00:39:18,640 --> 00:39:21,300 Other-- ale čím víc zákeřná temná strana, jak to 787 00:39:21,300 --> 00:39:24,047 je, pokud se věci prostě jednat jako chcete, aby 788 00:39:24,047 --> 00:39:27,130 aniž byste museli myslet supertvrdých o tom, zda by to mělo být int 789 00:39:27,130 --> 00:39:29,713 nebo zda by měla existovat float, to by mohlo být, že tady 790 00:39:29,713 --> 00:39:34,240 vyrábíte int, ale tady vám myslím, ale budou always-- líto, 791 00:39:34,240 --> 00:39:36,555 to by mohlo být to, že se zde si vyrobit plovák, 792 00:39:36,555 --> 00:39:39,430 ale když se dostanete do druhé části vašeho programu, myslíš, 793 00:39:39,430 --> 00:39:41,150 No jo, ale budou vždy podejte mi int. 794 00:39:41,150 --> 00:39:43,608 A pokud tomu tak není, je možné, že jste zaklíněný někde, 795 00:39:43,608 --> 00:39:47,600 pokud se pokusíte použít ho k indexu do pole, nebo co jste. 796 00:39:47,600 --> 00:39:51,050 >> Takže jeden z real užitečné věci, o C je 797 00:39:51,050 --> 00:39:54,219 to vás nutí k opravdu myslíte, tvrdě, než uděláte any-- 798 00:39:54,219 --> 00:39:56,510 Než si přinesete jakékoliv proměnné do existence, jako to, co 799 00:39:56,510 --> 00:39:58,764 je typ této proměnné. 800 00:39:58,764 --> 00:40:00,680 A to bude mít že typ pro všechny časy. 801 00:40:00,680 --> 00:40:02,410 >> To není pravda Python, a ve skutečnosti, budete 802 00:40:02,410 --> 00:40:04,740 can-- pokud jste jen nějak se podle sluchu, 803 00:40:04,740 --> 00:40:07,690 a vy některá rozhodnutí Jeden způsob, jak na jednom místě, 804 00:40:07,690 --> 00:40:09,870 a některá rozhodnutí jedním Způsob, na jiném místě 805 00:40:09,870 --> 00:40:12,960 aniž by dost materiálu za scény v jiném místě 806 00:40:12,960 --> 00:40:16,170 správně zachytit věci, vy Můžete získat některé velmi podivné chyby. 807 00:40:16,170 --> 00:40:19,200 A program může udržet v chodu po velmi dlouhou dobu, protože je to 808 00:40:19,200 --> 00:40:23,200 dělá hodně práce, říkat, dobře tato věc mohla fungovat tímto způsobem, 809 00:40:23,200 --> 00:40:25,070 takže budu běžet takhle. 810 00:40:25,070 --> 00:40:30,300 >> A ve skutečnosti, skutečnost, že se tlačí dopředu přes mnoho malých chyb 811 00:40:30,300 --> 00:40:33,260 znamená, že se často při chyba je ve skutečnosti špatný 812 00:40:33,260 --> 00:40:38,720 a vy vlastně chcete ho opravit, to skončí mil away-- programu 813 00:40:38,720 --> 00:40:41,780 skončí zastavení na míle daleko od okamžiku, kdy jsi měl chybu. 814 00:40:41,780 --> 00:40:46,590 A tak jedna věc, kterou bychom chtěli programy dělat, sometimes-- jednu věc 815 00:40:46,590 --> 00:40:48,910 že bychom chtěli programy dělat, když jsme ladění 816 00:40:48,910 --> 00:40:54,160 je selhání hlasitě a nedaří se velmi rychle, když se něco pokazí. 817 00:40:54,160 --> 00:40:55,510 >> Python je velmi špatná na to. 818 00:40:55,510 --> 00:40:58,820 Python je velmi dobrý v ne selhání a válcování vpřed 819 00:40:58,820 --> 00:41:00,320 přes nečekané věci. 820 00:41:00,320 --> 00:41:02,820 Což je výhodné, když píšete malých programů. 821 00:41:02,820 --> 00:41:07,110 Když se dostanete komplikovaný chyby Někdy 822 00:41:07,110 --> 00:41:09,300 trvá dlouhou dobu dráždit ven. 823 00:41:09,300 --> 00:41:12,210 >> Takže tam je temná strana pro všechny to, jako by to prostě funguje. 824 00:41:12,210 --> 00:41:13,860 Je to prostě funguje, jako byste očekávat, že to. 825 00:41:13,860 --> 00:41:18,320 Kromě toho, že pokud se tak nestane, můžete skončit up v úplně jiném místě 826 00:41:18,320 --> 00:41:21,530 a snaží se přijít na to, kde to bylo, že jste se pokazilo. 827 00:41:21,530 --> 00:41:25,180 >> Odvoz odpadu je-- tak jedna věc, kterou si všimnete 828 00:41:25,180 --> 00:41:28,110 je to, že některé z těchto věcí, které Přinesla jsem do existence-- 829 00:41:28,110 --> 00:41:34,114 Tato pole, tyto slovníky, tyto objektů, tyto files-- nikdy uvolněno. 830 00:41:34,114 --> 00:41:36,030 Nebylo volání zdarma v některé z této diskuse. 831 00:41:36,030 --> 00:41:40,340 A to byl na C-straně, protože Nikdy jsme se dostali do těch věcí. 832 00:41:40,340 --> 00:41:42,220 >> Ale v Python straně, není svobodný. 833 00:41:42,220 --> 00:41:43,970 Věci se automaticky uvolněna při Python 834 00:41:43,970 --> 00:41:45,386 si myslí, že nejste při pohledu na ně. 835 00:41:45,386 --> 00:41:49,640 Je to opravdu dobrý není uvolní věci, které můžete ještě mohlo být při pohledu na, 836 00:41:49,640 --> 00:41:54,262 ale to znamená, že pokud jste byli chystá přidělit tuto velkou věc, 837 00:41:54,262 --> 00:41:55,970 a jste jako, oh Skončil jsem s ním teď, 838 00:41:55,970 --> 00:42:00,360 to je těžké říct Python že jste udělal s tím teď. 839 00:42:00,360 --> 00:42:02,986 >> Někdy můžete nastavit tato proměnná není nikdo, 840 00:42:02,986 --> 00:42:05,110 a pak doufat, že nakonec garbage collector 841 00:42:05,110 --> 00:42:06,720 přichází skrze a čistí ji. 842 00:42:06,720 --> 00:42:10,177 Ale opět, vy ne mít kontrolu nad to. 843 00:42:10,177 --> 00:42:13,510 A jeden z důvodů, proč lidé používají C pro opravdu výkonnost kritické věci, 844 00:42:13,510 --> 00:42:16,570 je tato schopnost opravdu vědět, kdy je alokovaná paměť 845 00:42:16,570 --> 00:42:19,369 a když je uvolněno, a mají hodně kontroly nad říká, 846 00:42:19,369 --> 00:42:20,910 Jsem pomocí nic více paměti, než potřebuji. 847 00:42:20,910 --> 00:42:23,632 Což je něco, Python není to skvělé na adrese. 848 00:42:23,632 --> 00:42:25,090 Diváků: Můžu se vás na něco zeptat? 849 00:42:25,090 --> 00:42:29,800 Co jste myslel tím nepodaří hlasitě? 850 00:42:29,800 --> 00:42:32,070 >> ROSS RHEINGANS-YOO: Takže pokud se něco děje špatně 851 00:42:32,070 --> 00:42:34,950 a jste v ladění Režim, byste často 852 00:42:34,950 --> 00:42:38,510 chcete váš program vám říci, kde přesně se to pokazilo, 853 00:42:38,510 --> 00:42:42,360 a ne jen tiše zastavit běh. 854 00:42:42,360 --> 00:42:45,085 Ale vy byste ve skutečnosti je to pro tisk out všechny druhy informací o 855 00:42:45,085 --> 00:42:46,972 podobně, zde byla tato. 856 00:42:46,972 --> 00:42:53,957 To, co se stalo Pokud tisknete wen-- pokud používáte webový server-- 857 00:42:53,957 --> 00:42:55,390 >> Diváků: [Neslyšitelné] 858 00:42:55,390 --> 00:42:59,800 >> ROSS RHEINGANS-YOO: Jo, jestli máte spuštěnou webový server, 859 00:42:59,800 --> 00:43:02,680 je to někdy špatné, pokud jste vždy vyřazení chyby, 860 00:43:02,680 --> 00:43:04,530 a vy říkáte, dobře, že nefunguje. 861 00:43:04,530 --> 00:43:05,300 Jdu se zastavit. 862 00:43:05,300 --> 00:43:07,680 Já jsem prostě jít ignorovat to a jedeme dál. 863 00:43:07,680 --> 00:43:11,260 Vzhledem k tomu, pak se můžete dostat do stovky z těchto chyb, a ne vidět. 864 00:43:11,260 --> 00:43:13,910 >> Bylo by jistě užitečné pro účely ladění 865 00:43:13,910 --> 00:43:20,327 pokud pokaždé, když váš webový server proveden Chyba, jste měli trvalé záznamy o to. 866 00:43:20,327 --> 00:43:22,910 Možná si dokonce chtějí program zastavit, tak, aby tyto záznamy 867 00:43:22,910 --> 00:43:25,471 Nechápejte pohřben pod věcí. 868 00:43:25,471 --> 00:43:26,970 Ale zase, že je v režimu ladění. 869 00:43:26,970 --> 00:43:31,280 >> Často v režimu výroby, svět je trochu jiný. 870 00:43:31,280 --> 00:43:36,380 A v malých skriptů, které Běžím, kde to, co jsem řekl, dělat 871 00:43:36,380 --> 00:43:40,680 by mohl být jen trochu off z toho, co jsem chtěl, aby to udělat, 872 00:43:40,680 --> 00:43:44,010 pak nějak protlačit Chyby je něco, co budete chtít. 873 00:43:44,010 --> 00:43:49,410 A v těch případech, rozhodně Python opravdu vydělá jeho startů. 874 00:43:49,410 --> 00:43:54,617 >> Poslední věc, že ​​jsem neměl mluvit V tohle--, že jsem se mluvit o tom, 875 00:43:54,617 --> 00:43:57,700 ale může být ve skutečnosti vzteku první Čas máte jeden z těchto chyb, 876 00:43:57,700 --> 00:44:00,491 a druhý a třetí a čtvrtý když budete mít jednu tyto chyby. 877 00:44:00,491 --> 00:44:03,490 Python, jsem se zmínil, že používá bílý prostor 878 00:44:03,490 --> 00:44:06,700 vám říct, jakou úroveň odsazení a to, co funkční blok jste v, 879 00:44:06,700 --> 00:44:08,840 zachází tabulátory a mezery odlišně. 880 00:44:08,840 --> 00:44:12,780 Takže pokud jste na kartu více než čtyři, a pak další řádek má čtyři mezery, 881 00:44:12,780 --> 00:44:16,910 i když se objeví jako Stejné množství v editoru, 882 00:44:16,910 --> 00:44:20,160 Python neléčí jim totéž. 883 00:44:20,160 --> 00:44:23,610 >> Ve skutečnosti, Python zachází karet a prostory, jako je olej a voda. 884 00:44:23,610 --> 00:44:25,050 Jsou to jen rozdílné věci. 885 00:44:25,050 --> 00:44:27,264 Není zde žádné určité Délka, že karta je, 886 00:44:27,264 --> 00:44:30,180 takže to není jako karta rovná 8 prostory, a proto byste si kolem něj 887 00:44:30,180 --> 00:44:30,860 tímto způsobem. 888 00:44:30,860 --> 00:44:34,110 Stejně jako, když říká, co Úroveň prázdného místa jsem na, 889 00:44:34,110 --> 00:44:37,240 to je vlastně hledal vzor mezery a tabulátory. 890 00:44:37,240 --> 00:44:43,050 A tak, že nejlepší způsob, jak se s tím vypořádat je vždy použít mezery po celou dobu. 891 00:44:43,050 --> 00:44:47,510 >> A ve skutečnosti, v Cloud9 IDE a CS50 IDE, 892 00:44:47,510 --> 00:44:50,610 kartě klíčové vložky Čtyři prostory, v místo 893 00:44:50,610 --> 00:44:53,800 o kartu, která je super užitečné. 894 00:44:53,800 --> 00:44:57,074 Ačkoli znovu, pokud jste napsal Python program s kartami, které by bylo v pořádku, 895 00:44:57,074 --> 00:44:58,990 je to jen v případě, někdo šel a snažil se přidat 896 00:44:58,990 --> 00:45:02,655 jediný řádek do svého programu, který měl čtyři prostory pro každou kartu, 897 00:45:02,655 --> 00:45:03,280 to zlomí. 898 00:45:03,280 --> 00:45:07,800 A to by se zlomit způsobem že opravdu není vidět. 899 00:45:07,800 --> 00:45:12,390 I když skutečné chyby Zpráva, že to vrhá 900 00:45:12,390 --> 00:45:15,610 má co do činění s novým odsazení zde neočekává, 901 00:45:15,610 --> 00:45:18,700 nebo-- pokud se mluví o odrážky a vypadá to, že to je špatné, 902 00:45:18,700 --> 00:45:22,090 je to pravděpodobně proto, je tu problém, karta-space. 903 00:45:22,090 --> 00:45:24,154 Pořád vzteklý ladění. 904 00:45:24,154 --> 00:45:26,070 Největší celku, ty řeči, které jsem neměl 905 00:45:26,070 --> 00:45:29,740 dostat, protože je to opravdu složité, subtilní téma, 906 00:45:29,740 --> 00:45:34,760 a nebylo nutné provádět žádné z toho, co jsme udělali tak daleko, 907 00:45:34,760 --> 00:45:37,140 jsou koncept nazvaný tice. 908 00:45:37,140 --> 00:45:41,280 Jsou tam hodně jako pole, které nelze upravit. 909 00:45:41,280 --> 00:45:44,700 Dostanou používají po celém místě, protože jsou užitečné pro spoustu věcí 910 00:45:44,700 --> 00:45:46,300 že pole nejsou vhodné pro. 911 00:45:46,300 --> 00:45:49,890 >> Ale pokud chcete, aby se pole, a pak slibují interpret, který vás 912 00:45:49,890 --> 00:45:53,140 nikdy nebudou chtít upravit, že thing-- Ve skutečnosti, pokud chcete upravit, 913 00:45:53,140 --> 00:45:56,800 budete dělat nový s novým Hodnoty v to-- To jsou tice. 914 00:45:56,800 --> 00:45:58,800 Spíše než produkující je s hranatých závorek, 915 00:45:58,800 --> 00:46:00,341 vyrábíte je s kulatých závorek. 916 00:46:00,341 --> 00:46:05,074 Proč byste použili tyto věci, je trochu otázka. , 917 00:46:05,074 --> 00:46:06,990 Jediná věc, kterou budu říkají o vás, že je 918 00:46:06,990 --> 00:46:10,680 mohou používat jako n-tice Indexy pro slovníky. 919 00:46:10,680 --> 00:46:15,010 Nelze použít pole as Indexy pro slovníky. 920 00:46:15,010 --> 00:46:18,970 A proč je, opět, technické a Nebudu běžet do něj. 921 00:46:18,970 --> 00:46:23,140 >> Pset, že jsem se ani nedotkl Na této diskuse je pset6. 922 00:46:23,140 --> 00:46:25,837 Takže tady je návod, jak bys implementovat je-- tady je 923 00:46:25,837 --> 00:46:28,140 jak byste implementovat pset6 v Pythonu. 924 00:46:28,140 --> 00:46:32,680 Vedení na paměti Pythonu Design cyklus, první věc, 925 00:46:32,680 --> 00:46:34,760 co děláte, když jste psaní programů je kontrola 926 00:46:34,760 --> 00:46:38,030 aby zjistil, jestli to udělal někdo už. 927 00:46:38,030 --> 00:46:42,152 >> Ve skutečnosti, pokud chcete, na serve-- Apache 50 928 00:46:42,152 --> 00:46:44,110 činí přibližně to, kromě to nepřijde 929 00:46:44,110 --> 00:46:45,840 Standardní instalován na počítačích s Linuxem. 930 00:46:45,840 --> 00:46:50,490 Python a Python jednoduchý http server dělá stejně. 931 00:46:50,490 --> 00:46:54,717 Pokud jste někdy na počítači Linux, nebo vnější Cloud9 IDE z CS50 932 00:46:54,717 --> 00:46:57,550 a chcete, aby sloužil tento proud adresář určitý port, 933 00:46:57,550 --> 00:47:04,610 python-m SimpleHTTPServer Port slouží to. 934 00:47:04,610 --> 00:47:07,190 Můžete také importovat jednoduchý HTTP server 935 00:47:07,190 --> 00:47:11,240 a je to tu hodně funkce, pokud Chcete-li ji upravit, nebo jej změnit, 936 00:47:11,240 --> 00:47:15,860 nebo provozují to-- využít ji provozovat svůj vlastní server služby. 937 00:47:15,860 --> 00:47:18,032 >> Tak to je Python v kostce. 938 00:47:18,032 --> 00:47:20,280 A to bylo CS50. 939 00:47:20,280 --> 00:47:21,980 Děkuji. 940 00:47:21,980 --> 00:47:23,468