1 00:00:00,000 --> 00:00:05,426 2 00:00:05,426 --> 00:00:06,800 ROSS RHEINGANS-Yoo: Hi, ek is Ross. 3 00:00:06,800 --> 00:00:08,570 En dit is 'n CS50 seminaar. 4 00:00:08,570 --> 00:00:12,100 Dit sal julle uit programmering in C tot programmering in Python. 5 00:00:12,100 --> 00:00:15,120 >> Python is 'n script taal. 6 00:00:15,120 --> 00:00:17,870 Dit is grootliks soos C in sintaksis, hoewel sommige 7 00:00:17,870 --> 00:00:20,390 van die tegniese besonderhede van hoe dit sintaksis sal uitgevoer word 8 00:00:20,390 --> 00:00:22,240 is effens anders. 9 00:00:22,240 --> 00:00:24,780 Dit is minder kragtig as C in 'n paar maniere. 10 00:00:24,780 --> 00:00:28,130 Dit is minder ekspressiewe vir presies waar in jou rekenaar 11 00:00:28,130 --> 00:00:30,030 geheue kry uitgelê, hoe dit kry uitgelê, 12 00:00:30,030 --> 00:00:32,030 wanneer dit vryheid, en hierdie soort dinge. 13 00:00:32,030 --> 00:00:36,150 >> Dit is meer nuttig as C in sommige maniere, omdat dit makliker is om die program in. 14 00:00:36,150 --> 00:00:39,920 Die taal is, tot 'n mense, meer intuïtief. 15 00:00:39,920 --> 00:00:44,820 En regtig, die doel is om vir dit vinniger wees om die program 16 00:00:44,820 --> 00:00:46,490 en potensieel stadiger te voer. 17 00:00:46,490 --> 00:00:48,198 >> Nou as jy dink oor die bedrag van die tyd 18 00:00:48,198 --> 00:00:50,514 jy spandeer op jou laaste probleem gestel skryf 19 00:00:50,514 --> 00:00:52,430 jou kode teen die bedrag van die tyd wat jy spandeer 20 00:00:52,430 --> 00:00:55,310 op jou laaste probleem stel die uitvoering kode, 21 00:00:55,310 --> 00:00:58,300 jy dink dat die taal wat twee keer so vinnig om te skryf, 22 00:00:58,300 --> 00:01:02,170 en twee keer so stadig om uit te voer, kan wees 'n verbetering oor C in 'n paar maniere. 23 00:01:02,170 --> 00:01:05,730 Beslis wanneer jy probeer om te skryf klein programme min dinge te doen, 24 00:01:05,730 --> 00:01:08,520 Python is 'n nuttige taal van keuse. 25 00:01:08,520 --> 00:01:10,620 >> En aan die einde van hierdie seminaar, ek hoop jy sal 26 00:01:10,620 --> 00:01:12,950 in staat wees om die maak keuse in toekomstige projekte 27 00:01:12,950 --> 00:01:17,710 oor watter taal is korrekte gebruik, nie die idee 28 00:01:17,710 --> 00:01:21,405 dat een taal meer reg al die tyd. 29 00:01:21,405 --> 00:01:23,030 'N Paar dinge oor wat die seminaar is. 30 00:01:23,030 --> 00:01:25,910 Hierdie seminaar is nie bedoel om leer jou Python van nuuts af. 31 00:01:25,910 --> 00:01:28,310 Python is baie soortgelyk C, en ek neem 32 00:01:28,310 --> 00:01:34,056 dat jy 'n CS50 student, of iemand met 'n soortgelyke bekendheid met C. 33 00:01:34,056 --> 00:01:36,700 >> As jy CS50 student rondom probleem gestel 6, 34 00:01:36,700 --> 00:01:38,866 So jy het 'n baie te sien dinge in C, sal ek jou gee 35 00:01:38,866 --> 00:01:40,740 die groot verskille, en 'n paar van die dinge 36 00:01:40,740 --> 00:01:42,840 dat Python verskillende maak en spesiale en nuttige, 37 00:01:42,840 --> 00:01:45,256 maar ek is nie van plan om te gaan vir wat 'n programmeertaal is 38 00:01:45,256 --> 00:01:46,920 en hoe om programme te skryf. 39 00:01:46,920 --> 00:01:49,820 Dit sal egter hierdie seminaar te leer jy 'n Python programme te skryf 40 00:01:49,820 --> 00:01:52,310 As jy een van die min groepe. 41 00:01:52,310 --> 00:01:54,820 Weer ons sal kyk hoe sou jy psets-- implementeer 42 00:01:54,820 --> 00:01:57,550 wat moet 1-6 in Python-- en verskaf riglyne 43 00:01:57,550 --> 00:02:00,322 amptelike dokumentasie vir toekomstige verwysing. 44 00:02:00,322 --> 00:02:03,030 Die ander ding wat belangrik is oor hoe hierdie gesprek opgedra, 45 00:02:03,030 --> 00:02:05,360 hierdie video sal wees aanlyn, met vergunning van CS50, 46 00:02:05,360 --> 00:02:07,550 so moet jy nie lus wat jy nodig het om notas te neem. 47 00:02:07,550 --> 00:02:11,180 Jy kan altyd terug gaan en kyk na dit later as 'n verwysing. 48 00:02:11,180 --> 00:02:13,340 Daarbenewens is die skyfies is nou beskikbaar 49 00:02:13,340 --> 00:02:16,480 op hierdie terrein, wat moet neem jy 'n Google doc doen. 50 00:02:16,480 --> 00:02:21,010 Dit is 'n effens verkorte weergawe van wat ek wys op die skerm. 51 00:02:21,010 --> 00:02:24,850 >> Versigtig caveat voor ons spring in, Python 3 52 00:02:24,850 --> 00:02:26,700 is 'n ander taal uit Python 2. 53 00:02:26,700 --> 00:02:30,020 Hulle lyk baie dieselfde; daar is baie geringe tegniese verskille 54 00:02:30,020 --> 00:02:32,530 dat programme sal veroorsaak geskryf in Python 2 55 00:02:32,530 --> 00:02:37,140 nie in staat wees om uitgevoer word in die Python 3 omgewing. 56 00:02:37,140 --> 00:02:41,969 >> Die CS50 toestel kom met Python, by verstek dit gebruik Python 2. 57 00:02:41,969 --> 00:02:44,010 Jy kan dit toets deur tik in jou command line 58 00:02:44,010 --> 00:02:51,310 python --version, wat moet uitloop 2.7.6 oor die huidige toestel. 59 00:02:51,310 --> 00:02:53,580 Probeer Python 3, wat doen werk in die toestel, 60 00:02:53,580 --> 00:02:58,500 As Python standaard 2.X.Y, hetsy op die toestel of op jou eie masjiene. 61 00:02:58,500 --> 00:03:03,730 Jy moet Python 3 enige tyd te vervang In hierdie gesprek wat ek skryf Python. 62 00:03:03,730 --> 00:03:05,760 As jou masjien is hardloop 2 by verstek, tipe 63 00:03:05,760 --> 00:03:09,770 Python 3 in staat te wees om werklik volg saam en hierdie dinge uit te voer. 64 00:03:09,770 --> 00:03:12,280 >> Daarbenewens, sal ek jou wys by nou amptelik hulpbronne. 65 00:03:12,280 --> 00:03:16,082 docs.python.org/3--~~V versigtig dat dit is 'n 3 en nie 'n 2-- 66 00:03:16,082 --> 00:03:17,030 het nuttige verwysings. 67 00:03:17,030 --> 00:03:19,280 Handleiding sal jou deur baie van dieselfde dinge 68 00:03:19,280 --> 00:03:21,460 wat ek nou doen nie, behalwe in die teks vorm. 69 00:03:21,460 --> 00:03:23,725 Verwysing is nuttig as 'n verwysingsraamwerk vir die taal, 70 00:03:23,725 --> 00:03:26,100 en die Standard Biblioteek gee jy 'n paar van die uitbreidings 71 00:03:26,100 --> 00:03:27,770 met bykomende funksies. 72 00:03:27,770 --> 00:03:31,300 >> So 'n heel eerste Python program. 73 00:03:31,300 --> 00:03:34,410 Aan die linkerkant ons het die standaard C, op die regte, het ons Python. 74 00:03:34,410 --> 00:03:36,780 Jy dalk erken hierdie probleem, is dit 75 00:03:36,780 --> 00:03:40,760 een van die eerste probleem stelle in CS50, en dit 76 00:03:40,760 --> 00:03:42,677 los dit met dieselfde oplossing. 77 00:03:42,677 --> 00:03:45,010 Nou, die rede dat ons kyk na hierdie langs mekaar 78 00:03:45,010 --> 00:03:46,830 is sodat ons kan kyk na sintaktiese verskille. 79 00:03:46,830 --> 00:03:49,580 Een van die olifante in die kamer dat jy reg dalk opgemerk 80 00:03:49,580 --> 00:03:56,350 van die kolf af, is dat Python het geen hooffunksie wikkel rondom die kode. 81 00:03:56,350 --> 00:03:59,170 So in C, 'n klomp van wat jy skryf lêers, jy hulle met mekaar te verbind, 82 00:03:59,170 --> 00:04:02,590 en die program begin uitvoer op hierdie ding genaamd int main. 83 00:04:02,590 --> 00:04:04,930 >> In Python, jy skryf 'n lêer wat jy, die lêer uit te voer, 84 00:04:04,930 --> 00:04:07,882 die program begin uitvoer aan die bokant van die lêer. 85 00:04:07,882 --> 00:04:09,590 So dit gaan om te begin aan die bokant van die lêer 86 00:04:09,590 --> 00:04:11,280 gaan af totdat dit iets anders te vind. 87 00:04:11,280 --> 00:04:14,440 Indien 'n funksie definisie dit sal nie eintlik wat die kode uit te voer, 88 00:04:14,440 --> 00:04:15,940 sal dit eenvoudig die funksie te definieer. 89 00:04:15,940 --> 00:04:18,459 Maar hier, wanneer die eerste program is N gelyk aan 10, 90 00:04:18,459 --> 00:04:21,273 die eerste ding wat hierdie program sal doen, is om hierdie waarde van 10 91 00:04:21,273 --> 00:04:24,120 en sit dit in 'n veranderlike genaamd n. 92 00:04:24,120 --> 00:04:27,690 >> Praat van die lyn, een van ander things-- hierdie sorry-- 93 00:04:27,690 --> 00:04:31,040 beteken dat C-programme, jy sal hulle skryf, 94 00:04:31,040 --> 00:04:34,899 jy sal dit maak, wat sal roep 'n paar klang opdragte, 95 00:04:34,899 --> 00:04:36,690 en dan sal jy 'n loop gevolg uitvoerbare. 96 00:04:36,690 --> 00:04:41,030 Python programme, jy hardloop die teks file-- hierdie mario.py mag 97 00:04:41,030 --> 00:04:44,900 wees hierdie lêer dat ek het net you-- jy die lêer hardloop 98 00:04:44,900 --> 00:04:47,450 en jy sal uit te voer, en die inhoud daarvan 99 00:04:47,450 --> 00:04:50,390 uitgevoer sal word deur die Python tolk. 100 00:04:50,390 --> 00:04:52,470 Jy kan dit doen in jou IDE. 101 00:04:52,470 --> 00:05:02,260 >> So as ek 'n Hallo lêer, wat het eenvoudig hierdie inhoud. 102 00:05:02,260 --> 00:05:04,840 Dit is eintlik Python 2, nie Python 3, so moenie 103 00:05:04,840 --> 00:05:06,600 bekommerd oor die sintaksis vir nou. 104 00:05:06,600 --> 00:05:14,230 Maar ek sal hardloop Python, op hello.py en dit loop. 105 00:05:14,230 --> 00:05:18,890 >> Nog 'n manier wat ek kan gebruik Python dat Ek sal nie met so baie in hierdie gesprek, 106 00:05:18,890 --> 00:05:21,840 is as ek tik net Python, dit druppels my in 'n omgewing waar 107 00:05:21,840 --> 00:05:24,370 Ek kan dit voed Python lyn deur die lyn. 108 00:05:24,370 --> 00:05:31,260 So hier, as ek tik in Druk ruimte 'hallo, wêreld. 109 00:05:31,260 --> 00:05:32,360 Tik betree. 110 00:05:32,360 --> 00:05:37,430 Dit sal my spoeg dat die resultate terug dat individuele lyn onmiddellik. 111 00:05:37,430 --> 00:05:38,470 >> Dit is dalk nuttig wees. 112 00:05:38,470 --> 00:05:40,700 In hierdie gesprek sal ek dinge op skyfies. 113 00:05:40,700 --> 00:05:43,940 En so sal jy in staat wees om te volg saam óf hier, of deur te skryf 114 00:05:43,940 --> 00:05:45,725 werklike lêers en dan die uitvoering van hulle. 115 00:05:45,725 --> 00:05:48,340 116 00:05:48,340 --> 00:05:50,995 >> Maar, terug te gaan na die kode, nog 'n ding 117 00:05:50,995 --> 00:05:53,230 wat jy mag hê noticed-- Wel, daar is 118 00:05:53,230 --> 00:05:55,980 twee dinge wat jy dalk op oor hierdie blokke. 119 00:05:55,980 --> 00:05:59,280 Die eerste, eerder meer aards is, is dat die Python het geen sleep kommapunt. 120 00:05:59,280 --> 00:06:02,630 >> Kommapunte is opsioneel oral en opreg oral. 121 00:06:02,630 --> 00:06:03,722 Jy kan dit byvoeg. 122 00:06:03,722 --> 00:06:06,430 Dit mag dalk mense wat skryf maak Python vir 'n lewe gehinnik op jou 123 00:06:06,430 --> 00:06:08,860 agter jou rug, want hulle is nie nodig nie. 124 00:06:08,860 --> 00:06:13,497 Hulle is dikwels 'n teken van gehou oor van C. Die ontwerpers van die taal 125 00:06:13,497 --> 00:06:16,580 voel dat dit meer duidelik op hierdie manier en dat dit nie nodig is om te verklaar 126 00:06:16,580 --> 00:06:18,700 elke keer as jy die einde van 'n lyn. 127 00:06:18,700 --> 00:06:21,799 >> Nog 'n vreemde ding oor hierdie N is dit nie 'n tipe aangeheg. 128 00:06:21,799 --> 00:06:24,590 Een van die magic stukke Python-- en ek gaan om dit te magic noem, 129 00:06:24,590 --> 00:06:26,381 maar daar is baie tegniese redes waarom dit 130 00:06:26,381 --> 00:06:28,560 works-- een van die magic stukke Python 131 00:06:28,560 --> 00:06:32,700 is dat veranderlikes kan uitbrei of krimp tot watter data bevat 132 00:06:32,700 --> 00:06:34,530 tipes sou jy hulle wil hê. 133 00:06:34,530 --> 00:06:35,580 >> So dit is 'n 10. 134 00:06:35,580 --> 00:06:40,060 As later af Ek aan hierdie N 0.5, sal dit neem dat 0,5. 135 00:06:40,060 --> 00:06:43,770 Maak nie saak wat dit is 'n int hier en dryf daar enigiets wat hierdie N gebruik 136 00:06:43,770 --> 00:06:47,057 sal min of meer in staat wees om tjoef saam as dit een van dié. 137 00:06:47,057 --> 00:06:49,640 Tensy daar is 'n paar baie werklike rede waarom dit die data nie kan gebruik 138 00:06:49,640 --> 00:06:52,170 tik dat n oomblik het, op watter punt sal dit kry 139 00:06:52,170 --> 00:06:54,490 ingewig en gooi 'n fout, en dié soort dinge. 140 00:06:54,490 --> 00:06:57,050 >> Maar hier, Python nie regtig omgee wat 141 00:06:57,050 --> 00:06:59,140 dit is dat ek gaan om te hou in hierdie vonnis, soos, julle hierdie ding wil hê? 142 00:06:59,140 --> 00:06:59,840 Hierdie ding in dit? 143 00:06:59,840 --> 00:07:00,640 Ja, dit is soort van 'n ding. 144 00:07:00,640 --> 00:07:01,810 Ek sal dit hou in die einde. 145 00:07:01,810 --> 00:07:04,740 Dit sal 'n probleem later, indien iemand wat wil hê dat die einde gebruik 146 00:07:04,740 --> 00:07:05,710 kan dit nie hanteer nie. 147 00:07:05,710 --> 00:07:08,500 Dit is een van die grootste verskille tussen Python en C 148 00:07:08,500 --> 00:07:10,790 wat maak dit maklik om te skryf baie groot C programme 149 00:07:10,790 --> 00:07:15,120 en maak dit makliker om te skryf baie klein Python program. 150 00:07:15,120 --> 00:07:19,564 >> Die sintaksis vir is nie baie anders wat dit doen. 151 00:07:19,564 --> 00:07:21,480 Dit is effens anders in hoe dit uitgespreek. 152 00:07:21,480 --> 00:07:25,370 So, dit is 'n baie, wat genoem word Pythonic, manier om dit te skryf. 153 00:07:25,370 --> 00:07:28,969 vir ry in die reeks (n), dit is die omvang van getalle van 0 tot n, 154 00:07:28,969 --> 00:07:31,010 inklusiewe op die onderste en eksklusiewe op die top. 155 00:07:31,010 --> 00:07:34,790 So dit is van 0 tot n-1, wat presies wat die C-kode doen, 156 00:07:34,790 --> 00:07:38,690 behalwe dit is 'n baie makliker om te kyk na miskien. 157 00:07:38,690 --> 00:07:42,710 >> Die betrokke blok is nie verreken deur draadjies, 158 00:07:42,710 --> 00:07:44,540 plaas dit verreken hierdie inkeping. 159 00:07:44,540 --> 00:07:47,580 So al hierdie lyne is vier ruimtes oor die reg, 160 00:07:47,580 --> 00:07:50,410 of soos oor 'n olifant breedte. 161 00:07:50,410 --> 00:07:54,570 En dit is die kinders wat gaan uitgevoer word in hierdie vir. 162 00:07:54,570 --> 00:07:57,020 As ek gemors die inkeping op hierdie en ek 163 00:07:57,020 --> 00:08:01,420 stoot dat druk terug na die oorspronklike inkeping, 164 00:08:01,420 --> 00:08:04,320 wat druk sal laat die lus. 165 00:08:04,320 --> 00:08:08,560 In teenstelling met C, waar ek eintlik hier moet daardie geslote stut rond te beweeg. 166 00:08:08,560 --> 00:08:11,820 >> Dit beteken dat jy nie foute te kry wat uit spring op jou omdat jy 167 00:08:11,820 --> 00:08:13,580 sit 'n stut in verkeerde plek. 168 00:08:13,580 --> 00:08:16,460 Dit beteken nie dat jy foute te kry wat uit spring op jou omdat jy 169 00:08:16,460 --> 00:08:17,620 ingekeep 'n lyn verkeerd. 170 00:08:17,620 --> 00:08:19,290 So dit maak inkepings super versigtig. 171 00:08:19,290 --> 00:08:22,123 Hopelik is jy om super versigtig met jou inkeping in elk geval, 172 00:08:22,123 --> 00:08:25,300 en so is dit nie dat veel meer van 'n las. 173 00:08:25,300 --> 00:08:28,762 >> Maar 'n basiese reël vir Python, en ons sal 'n paar van hierdie het 174 00:08:28,762 --> 00:08:30,970 sodat ons deur gaan deur die loop van die gesprek, 175 00:08:30,970 --> 00:08:33,840 is probeer natuurlike sintaksis voordat enigiets op te kyk. 176 00:08:33,840 --> 00:08:37,610 So hierdie sintaksis, vir hierdie nommer in die reeks, 177 00:08:37,610 --> 00:08:41,460 is baie kenmerkende in terme van styl. 178 00:08:41,460 --> 00:08:45,260 Baie van die dinge in Python ons sal sien wat hierdie vorm. 179 00:08:45,260 --> 00:08:47,420 >> En so as jy kom met 'n nuwe voorwerp wat jy 180 00:08:47,420 --> 00:08:50,870 dink jy moet in staat wees om Itereer oor hierdie, in hierdie formaat, 181 00:08:50,870 --> 00:08:53,720 blyk dit waarskynlik ondersteun dat formaat. 182 00:08:53,720 --> 00:08:56,990 Ons is nie van plan om in te gaan super diep die tegniese redes waarom dit is waar. 183 00:08:56,990 --> 00:09:00,167 >> Maar dit is 'n nuttige intuïsie om wanneer jy nader Python programme, 184 00:09:00,167 --> 00:09:01,750 dat hierdie ding is net gaan om te werk. 185 00:09:01,750 --> 00:09:03,020 Probeer dit. 186 00:09:03,020 --> 00:09:06,480 Boot die Command Line Tolk, kyk of dit werk, 187 00:09:06,480 --> 00:09:09,827 beweeg met die dinge, voordat jy eens nodig om oop te maak Google en sê 188 00:09:09,827 --> 00:09:11,660 wat is die sintaksis vir hierdie spesifieke ding? 189 00:09:11,660 --> 00:09:14,740 Baie van die Python jy kan ontdek net deur te probeer. 190 00:09:14,740 --> 00:09:19,005 >> Dit is selfs meer as soortgelyke C dan die fors is. 191 00:09:19,005 --> 00:09:20,380 Let daarop dat daar is geen hakies. 192 00:09:20,380 --> 00:09:23,490 Die hakies is, weer, skadeloos, maar onnodig. 193 00:09:23,490 --> 00:09:25,750 Daar is 'n punt aan die einde net soos die vir loops, 194 00:09:25,750 --> 00:09:30,800 en weer, die relatiewe blokke ingekeep eerder as verreken deur draadjies. 195 00:09:30,800 --> 00:09:33,080 Dit is anders aan die oorspronklike vlak van inkeping, 196 00:09:33,080 --> 00:09:35,930 en sy betrokke blok weer ingekeep. 197 00:09:35,930 --> 00:09:41,720 Diegene werk presies soos hulle doen in C. 198 00:09:41,720 --> 00:09:44,520 >> Dit is eintlik baie dieselfde. 199 00:09:44,520 --> 00:09:49,430 Weereens, druk verloor een karakter af van printf Jy slaag paar snare. 200 00:09:49,430 --> 00:09:51,520 Dit blyk uit snare kan óf afgemerk 201 00:09:51,520 --> 00:09:53,562 by 'n enkele aanhalings of dubbele aanhalingstekens. 202 00:09:53,562 --> 00:09:55,270 Daar is geen verskil nie, behalwe dat die binnekant 203 00:09:55,270 --> 00:09:57,722 van enkele aanhalings wat jy kan gebruik dubbele aanhalingstekens met oorgawe, 204 00:09:57,722 --> 00:09:59,430 eerder as om te ontsnap almal van hulle. 205 00:09:59,430 --> 00:10:01,480 En binnekant van dubbele aanhalingstekens, jy kan enkele aanhalings met oorgawe gebruik 206 00:10:01,480 --> 00:10:02,420 sonder om hulle te ontsnap. 207 00:10:02,420 --> 00:10:04,253 As jy wil meng hulle, kan jy beslis 208 00:10:04,253 --> 00:10:06,100 kyk aanlyn hoe om dit te doen. 209 00:10:06,100 --> 00:10:09,581 >> Jy sal dit hier sien, Ek het geslaag in end = hierdie ding. 210 00:10:09,581 --> 00:10:12,580 Dit is 'n voorbeeld van 'n opsionele argument, wat is een van daardie dinge 211 00:10:12,580 --> 00:10:14,990 dat Python ondersteun wat maak dit baie nuttig. 212 00:10:14,990 --> 00:10:18,240 So druk het eintlik 'n baie argumente, wat gewoonlik 213 00:10:18,240 --> 00:10:20,140 stel om hul standaard waarde, maar hier het ek 214 00:10:20,140 --> 00:10:21,924 besluit om die een wat geroep einde oorheers. 215 00:10:21,924 --> 00:10:24,340 Die rede is dat ek moet ignoreer dit met 'n leë string 216 00:10:24,340 --> 00:10:26,756 is dat druk in Python, deur verstek druk uit 'n nuwe lyn 217 00:10:26,756 --> 00:10:28,630 na die ding wat jy dit ook gesê. 218 00:10:28,630 --> 00:10:31,462 >> So hierdie hash is eintlik gaan druk 'n hash in 'n nuwe lyn. 219 00:10:31,462 --> 00:10:34,670 En as ek nie wil hash uit te druk 'n nuwe lyn nadat dit, dan moet ek sê 220 00:10:34,670 --> 00:10:35,340 druk nie een nie. 221 00:10:35,340 --> 00:10:37,980 222 00:10:37,980 --> 00:10:43,690 Maar, tog so, die een laaste ding wat hierdie program ontbreek wat 'n mens is 223 00:10:43,690 --> 00:10:44,960 'n sluit by die top. 224 00:10:44,960 --> 00:10:48,120 Print gebak in Python so basies dat daar geen kop of module 225 00:10:48,120 --> 00:10:49,869 wat jy nodig het om sluit, maar indien wou 226 00:10:49,869 --> 00:10:52,029 om ander dinge insluit in 'n Python script, 227 00:10:52,029 --> 00:10:55,320 Ek sou dit in 'n baie soortgelyke lêerformaat die woorde is net effens anders. 228 00:10:55,320 --> 00:10:58,840 229 00:10:58,840 --> 00:11:01,360 >> Ek het genoem dat ons nie 'n hoof hier nodig het, 230 00:11:01,360 --> 00:11:03,372 omdat die Python begin uitvoering aan die bokant. 231 00:11:03,372 --> 00:11:05,080 As ek wou draai dit in 'n funksie, ek 232 00:11:05,080 --> 00:11:07,667 sou dit te doen soos ek this-- sou def funksie naam sê, 233 00:11:07,667 --> 00:11:10,500 argumente kan hier gaan en ons sal sien 'n paar van daardie later, kolon, 234 00:11:10,500 --> 00:11:13,040 en dan weer, hierdie hele verreken blok 235 00:11:13,040 --> 00:11:16,810 is wat die operasionele sluit vir daardie funksie. 236 00:11:16,810 --> 00:11:18,560 So dit is die definisie van die funksie. 237 00:11:18,560 --> 00:11:21,587 En daar is 'n verklaring, dan af hier is, kan ek net noem die funksie. 238 00:11:21,587 --> 00:11:23,920 En weer, die program tolk, begin by die top, 239 00:11:23,920 --> 00:11:25,280 sal sien dit is die definisie. 240 00:11:25,280 --> 00:11:27,960 Dit sal dit nie uit te voer totdat dit kry hier, en dan is dit soos, ag 241 00:11:27,960 --> 00:11:30,860 nou het jy dit genoem word, het ek dink ek moet dit uit te voer. 242 00:11:30,860 --> 00:11:33,850 >> A ding wat baie algemeen om te sien in Python lêers, 243 00:11:33,850 --> 00:11:36,700 veral Python lêers wat is aan die publiek vrygestel 244 00:11:36,700 --> 00:11:41,650 en ontwikkel by-- en ontwikkel en gehandhaaf, is iets van hierdie vorm. 245 00:11:41,650 --> 00:11:44,540 Dit is so omdat basically-- Python, jy begin by die top 246 00:11:44,540 --> 00:11:50,310 en dan af te voer jy aan die onderkant, Ek as ek moes net Mario uitgeroep hier 247 00:11:50,310 --> 00:11:54,190 dan enige tyd wat ek ingesluit hierdie lêer in 'n ander lêer, want ek wou om te gebruik 248 00:11:54,190 --> 00:11:58,580 is Mario funksie, wat ander lêer sou het ook hierdie oproep om Mario in. 249 00:11:58,580 --> 00:12:01,000 En toe ek gehardloop lêer, dit sou Mario noem. 250 00:12:01,000 --> 00:12:04,520 >> Dus is dit moontlik dat ek net wil hierdie hardloop as ek het eintlik 251 00:12:04,520 --> 00:12:07,290 uitgevoer hierdie spesifieke lêer. 252 00:12:07,290 --> 00:12:11,520 En so kan ek dit draai in 'n idioom soos hierdie, waar ek sê, 253 00:12:11,520 --> 00:12:14,820 As die naam van hierdie uitvoering omgewing is hoofsaaklik 254 00:12:14,820 --> 00:12:16,200 dan wil ek hierdie dinge doen nie. 255 00:12:16,200 --> 00:12:18,710 Anders iemand anders kan use-- sluit my function-- 256 00:12:18,710 --> 00:12:22,510 my lêer, en net om te kry toegang tot hierdie funksies 257 00:12:22,510 --> 00:12:25,552 sonder om die dinge te hardloop wat ek wil om uit te voer in hierdie lêer. 258 00:12:25,552 --> 00:12:27,260 Dit is, weer, opsioneel maar baie algemeen. 259 00:12:27,260 --> 00:12:30,450 260 00:12:30,450 --> 00:12:33,840 >> Hierdie dinge is entirely-- is presies dieselfde tussen C en Python, 261 00:12:33,840 --> 00:12:35,100 seker in 3. 262 00:12:35,100 --> 00:12:38,610 Ek dink in 2, die verdeling operateur soms gee jou terug dryf wanneer 263 00:12:38,610 --> 00:12:41,450 jy geopereer SY, en óf julle wat wou of jy het nie. 264 00:12:41,450 --> 00:12:44,777 Maar plus, minus, en tye werk presies soos jy sou verwag, 265 00:12:44,777 --> 00:12:46,110 behalwe oor effens meer tipes. 266 00:12:46,110 --> 00:12:49,740 Sodat jy kan dryf vermenigvuldig met SY, en hierdie soort van dinge. 267 00:12:49,740 --> 00:12:52,480 >> stel werk presies dieselfde. 268 00:12:52,480 --> 00:12:54,310 Jy kan twee gelyke tekens gebruik. 269 00:12:54,310 --> 00:12:59,000 inequals-- groter as, minder as, hierdie soort van things-- 270 00:12:59,000 --> 00:13:02,580 die betekenis wat jy vertroud is met hulle. 271 00:13:02,580 --> 00:13:05,770 >> Waar C gebruik hierdie operateurs, Python gebruik effens meer Engels 272 00:13:05,770 --> 00:13:06,390 leesbare kinders. 273 00:13:06,390 --> 00:13:09,348 So in plaas van twee,-karakters, kan jy letterlik tik die woord "en", "of," 274 00:13:09,348 --> 00:13:10,740 of nie." 275 00:13:10,740 --> 00:13:13,420 Soos in jou if-- in jou voorwaardelike stellings, 276 00:13:13,420 --> 00:13:17,670 ons vroeër gesien het dat dit sintaksis in C ooreenstem met die sintaksis in Python. 277 00:13:17,670 --> 00:13:21,010 En daar is nie 'n baie verskillende daar, behalwe vir 'n bietjie 278 00:13:21,010 --> 00:13:24,780 leestekengebruik rondom die kante. 279 00:13:24,780 --> 00:13:28,890 Weereens, waar C sou anders As, Python gebruik elif, 280 00:13:28,890 --> 00:13:33,960 maar dit is meestal oppervlak veranderinge. 281 00:13:33,960 --> 00:13:38,450 >> Iterasie soos hierdie is dikwels geskryf in hierdie idioom in Python. 282 00:13:38,450 --> 00:13:42,350 Jy kan hierdie soort van vervaardiging ding met 'n while lus aan die buitekant 283 00:13:42,350 --> 00:13:46,387 as jy wou, maar jy beslis nie hoef te. 284 00:13:46,387 --> 00:13:48,970 En weer, as jy wil hê die druk elemente in van 'n skikking 285 00:13:48,970 --> 00:13:50,560 jy dalk dit te doen op hierdie manier. 286 00:13:50,560 --> 00:13:52,927 Een van die lekker dinge oor Python al is, 287 00:13:52,927 --> 00:13:54,760 is dat jy nie nodig het hierdie paradigma gebruik, 288 00:13:54,760 --> 00:13:57,290 en jy kan 'n gebruik effens meer elegante een. 289 00:13:57,290 --> 00:13:59,370 Jy sê vir 'n in ary. 290 00:13:59,370 --> 00:14:02,980 >> So eerder as hier gaan en loop oor die indekse, 291 00:14:02,980 --> 00:14:05,630 en dan trek uit individuele elemente, 292 00:14:05,630 --> 00:14:08,644 vertel die vir om werklik net loop oor die elemente self. 293 00:14:08,644 --> 00:14:11,060 En dan alles wat jy doen binnekant kan direk bedryf 294 00:14:11,060 --> 00:14:13,260 op die elemente, wat is redelik pret. 295 00:14:13,260 --> 00:14:16,710 En ons sal ons gebruik see-- weer en weer dat idioom 296 00:14:16,710 --> 00:14:18,050 soos ons loop deur die kode. 297 00:14:18,050 --> 00:14:20,091 >> Dit is weer 'n voorbeeld van iets wat ek sal 298 00:14:20,091 --> 00:14:23,300 noem Python magic, maar daar is baie tegniese redes waarom dit werk. 299 00:14:23,300 --> 00:14:26,340 En daar is tegniese dinge wat nodig om waar oor verskeidenheid in orde wees 300 00:14:26,340 --> 00:14:28,340 vir hierdie om te werk agter die skerms. 301 00:14:28,340 --> 00:14:31,390 Die ding is dat die meeste tipes wat jy sou verwag van hierdie om te werk 302 00:14:31,390 --> 00:14:36,610 gehad het vir hierdie geïmplementeer wat jy in die gebou in die taal. 303 00:14:36,610 --> 00:14:40,030 >> Nog 'n ding wat dit sal lekker wees As dit gewerk het in elke taal, 304 00:14:40,030 --> 00:14:45,460 maar daar is 'n paar redes waarom dit nie kan nie, druk hierdie string keer hierdie getal. 305 00:14:45,460 --> 00:14:48,860 Blyk in Python, dit doen presies wat jy wil, wat net pret, 306 00:14:48,860 --> 00:14:52,840 en beteken dat ons kan eintlik hierdie program te verminder, weer mario.c. 307 00:14:52,840 --> 00:14:57,150 Eerder as iterating 'n baie, ons kan net sê, ek wil 'n paar aantal ruimtes, 308 00:14:57,150 --> 00:15:01,120 Ek wil die aantal hashes, en 'n paar hashes aan die einde. 309 00:15:01,120 --> 00:15:02,640 En weer, gebruik ons ​​hierdie formaat. 310 00:15:02,640 --> 00:15:05,340 >> Hier is ons verby in 'n veranderlike op hierdie manier. 311 00:15:05,340 --> 00:15:08,050 Weereens, het ons nie nodig om te sê watter tipe veranderlike dit, 312 00:15:08,050 --> 00:15:11,322 en die enigste tyd sal ons kry foute is te hardloop tyd. 313 00:15:11,322 --> 00:15:13,030 Wanneer iemand probeer om iets in te slaag, 314 00:15:13,030 --> 00:15:14,860 dit sal net 'n boete in die funksie kom. 315 00:15:14,860 --> 00:15:18,240 As ons hier wig, want dit is nie die ding wat jy reekse oor kan skep, 316 00:15:18,240 --> 00:15:22,100 Ek sal 'n looptydfout daar te kom, en ek sal hê om dit te ontfout dat die pad. 317 00:15:22,100 --> 00:15:25,050 Maar in die tussentyd, het ek nie baie versigtig wees oor wat 318 00:15:25,050 --> 00:15:32,800 kry geslaag, so lank as wat in die werklike uitvoering dit alles werk baie skoon. 319 00:15:32,800 --> 00:15:35,080 >> Ek kon dit selfs 'n bietjie skoner 320 00:15:35,080 --> 00:15:41,770 met behulp van 'n bepaalde gebou-in-funksie op snare, wat reg is Regverdig. 321 00:15:41,770 --> 00:15:45,250 Dit is net 'n nuttige funksie rondlê die biblioteek. 322 00:15:45,250 --> 00:15:47,660 Dit is in die dokumentasie as jy gaan kyk vir dit. 323 00:15:47,660 --> 00:15:51,650 En ek sê, goed ek gaan hê hierdie string, sommige aantal hashes, 324 00:15:51,650 --> 00:15:56,390 en ek wil graag it-- pad reg te regverdig dit uit met spasies om hierdie lank wees. 325 00:15:56,390 --> 00:16:00,584 >> Weereens, dit is in die dokumentasie wat us-- bring 326 00:16:00,584 --> 00:16:03,500 Ek sal eintlik kliek deur these-- Dit bring ons by ons tweede reël 327 00:16:03,500 --> 00:16:06,990 vir Python-- standaard biblioteek funksie metodes is jou vriende. 328 00:16:06,990 --> 00:16:09,880 En dit is dikwels die moeite werd om te gaan soek na ek wonder 329 00:16:09,880 --> 00:16:12,310 As daar is 'n ding wat net dit doen. 330 00:16:12,310 --> 00:16:13,830 Daar is waarskynlik. 331 00:16:13,830 --> 00:16:15,990 As jy wil om pad 'n string, as jy wil 332 00:16:15,990 --> 00:16:17,470 graag die terug te neem helfte van 'n string, as jy wil 333 00:16:17,470 --> 00:16:20,370 wil om te soek deur 'n string, as jy wil graag 'n paar van die dinge smash 334 00:16:20,370 --> 00:16:22,420 tesame met 'n string met kommas tussen hulle, 335 00:16:22,420 --> 00:16:24,640 Daar is standaard biblioteek funksies om dit te doen. 336 00:16:24,640 --> 00:16:27,190 >> En dit maak jou lewe makliker as jy dit gebruik 337 00:16:27,190 --> 00:16:29,240 in plaas van die uitrol alles op jou eie 338 00:16:29,240 --> 00:16:31,650 vyf reëls van die kode hier, vyf reëls van die kode hier. 339 00:16:31,650 --> 00:16:34,430 Dit begin regtig by voeg tot real time. 340 00:16:34,430 --> 00:16:37,430 >> Een van die interessante dinge oor hoe dit raak genoem. 341 00:16:37,430 --> 00:16:39,980 Jy sal sien dat daar is 'n dot ding. 342 00:16:39,980 --> 00:16:43,490 Ek het 'n paar voorwerp aan die linkerkant, en dan het ek 'n punt 'n funksie. 343 00:16:43,490 --> 00:16:49,780 Dit is een van die paradigmas wat Python gebruik vir die bevestiging van metodes om voorwerpe. 344 00:16:49,780 --> 00:16:54,410 Ons sal praat oor wat dit is baie kortliks aan die einde, 345 00:16:54,410 --> 00:16:58,510 maar weet dat ons kan albei werk op dinge deur daardie ding sê dot 346 00:16:58,510 --> 00:17:01,690 wat ook al, of deur te bel 'n funksie wat neem 347 00:17:01,690 --> 00:17:04,339 daardie voorwerp en 'n paar ander argumente. 348 00:17:04,339 --> 00:17:07,450 >> So dit is beide maniere wat dinge gedoen in Python. 349 00:17:07,450 --> 00:17:09,780 En of 'n bepaalde funksie geïmplementeer 350 00:17:09,780 --> 00:17:14,230 in hierdie styl of hierdie styl is iets wat jy 351 00:17:14,230 --> 00:17:19,990 moet kyk totdat jy 'n hang kry vir watter een dit is waarskynlik in om te val. 352 00:17:19,990 --> 00:17:22,660 Daar is 'n min of meer samehangende filosofie agter Python 353 00:17:22,660 --> 00:17:24,930 dat jy meestal absorbeer deur 'n baie in dit. 354 00:17:24,930 --> 00:17:28,190 Op 'n sekere punt, wat een van hierdie iets sal geïmplementeer word as 355 00:17:28,190 --> 00:17:29,470 word die natuurlike. 356 00:17:29,470 --> 00:17:32,420 Vir nou, is dit net iets jy leer as jy uitvind 357 00:17:32,420 --> 00:17:34,140 elke individuele ding. 358 00:17:34,140 --> 00:17:36,420 >> So standaard biblioteek funksies is jou vriende, 359 00:17:36,420 --> 00:17:41,320 en hulle laat jy dinge skryf wat neem dit baie ruimte regtig kort, 360 00:17:41,320 --> 00:17:42,040 regtig elegant. 361 00:17:42,040 --> 00:17:45,670 En dit is eintlik waarskynlik meer leesbaar, wil ek sê, as die C-program 362 00:17:45,670 --> 00:17:46,780 daar. 363 00:17:46,780 --> 00:17:49,730 Nie aan die feit dat so noem kort kan jy 'n hele olifant pas 364 00:17:49,730 --> 00:17:52,250 in die ruimte wat ons gered het. 365 00:17:52,250 --> 00:17:56,270 >> Nog 'n ding, dit is 'n implementering Mario dis dot C, wat ek dink 366 00:17:56,270 --> 00:17:57,890 is die kortste jy kan dit te kry. 367 00:17:57,890 --> 00:18:00,757 Dit hoef nie die get int, maar dit moeilik kodes die waarde van 10 368 00:18:00,757 --> 00:18:02,090 Op dieselfde wyse dat hierdie een nie. 369 00:18:02,090 --> 00:18:06,080 Blyk dat hierdie een horlosies by 84 karakters, terwyl Python is 64. 370 00:18:06,080 --> 00:18:11,490 En dit is oneindig meer leesbare as hierdie gemors hier. 371 00:18:11,490 --> 00:18:14,610 So Python is meer doeltreffend in die ruimte. 372 00:18:14,610 --> 00:18:17,260 Dit is effens minder doeltreffend in die tyd, maar nie veel nie. 373 00:18:17,260 --> 00:18:18,890 >> Lyste is 'n belangrike ding in Python. 374 00:18:18,890 --> 00:18:21,540 375 00:18:21,540 --> 00:18:24,587 Ons het dit nie gesien nie, maar hulle werk baie soos skikkings te doen in C. 376 00:18:24,587 --> 00:18:27,170 So hier is, kan jy verklaar hulle jy kan hulle slaag in 'n ding. 377 00:18:27,170 --> 00:18:29,810 Nou blokkies hou 'n verskeidenheid van hierdie dinge. 378 00:18:29,810 --> 00:18:33,480 Weereens, ons het nie verklaar tipe, maar as ons ooit probeer om dit te gebruik, 379 00:18:33,480 --> 00:18:36,260 enigiets wat jy sou verwag om werk op 'n verskeidenheid van heelgetalle 380 00:18:36,260 --> 00:18:40,130 gaan om te werk 'n verskeidenheid van heelgetalle. 381 00:18:40,130 --> 00:18:42,030 >> Dit is 'n saak wat jy absoluut kan nie 382 00:18:42,030 --> 00:18:47,390 doen in C, omdat die geheue dit so hande op, 383 00:18:47,390 --> 00:18:48,950 maar is baie maklik om te doen in Python. 384 00:18:48,950 --> 00:18:55,310 As ek wil my skikking om groter te wees, ek kan voeg 'n element om dit en dit is goed. 385 00:18:55,310 --> 00:18:57,150 >> Wat gaan aan agter die skerms? 386 00:18:57,150 --> 00:18:59,150 Die tolk gaan uit en kry 'n paar geheue, 387 00:18:59,150 --> 00:19:00,860 en miskien sal dit 'n te kry bietjie ekstra geheue, 388 00:19:00,860 --> 00:19:03,090 sodat ek nie, so ek het nie ' elke keer realloc. 389 00:19:03,090 --> 00:19:04,897 Maar hoeveel meer geheue beteken dit nodig? 390 00:19:04,897 --> 00:19:06,730 Dit is nie besluite wat jy moet maak, 391 00:19:06,730 --> 00:19:10,540 dit is besluite wat die tolk gaan doen. 392 00:19:10,540 --> 00:19:12,270 >> Hier sien ons reeks kan neem twee argumente, 393 00:19:12,270 --> 00:19:16,430 maar dit is nog steeds gaan inklusiewe te wees van die top sodat ons daar by te voeg 1. 394 00:19:16,430 --> 00:19:21,970 Dit is 'n idioom wat 'n selfs meer slim manier om dinge soos hierdie te skryf. 395 00:19:21,970 --> 00:19:25,980 Dit is genoem lys begrip, en hier wat ons sê 396 00:19:25,980 --> 00:19:32,560 is Ek wil graag in te sit i kwadraat vir elke waarde van i in hierdie reeks. 397 00:19:32,560 --> 00:19:35,770 Hierdie ding op die regte kan nog wees skikking, en hierdie ding aan die linkerkant 398 00:19:35,770 --> 00:19:40,740 om 'n bepaalde funksie wees wat sou neem in i as 'n veranderlike 399 00:19:40,740 --> 00:19:42,250 en gee my 'n paar resultaat. 400 00:19:42,250 --> 00:19:43,480 >> Wat gaan ek doen, is, Ek gaan om te bou 401 00:19:43,480 --> 00:19:46,200 'n skikking wat al hierdie dinge vir elke waarde in hierdie reeks. 402 00:19:46,200 --> 00:19:48,960 403 00:19:48,960 --> 00:19:55,670 En dit is super elegant, super kort, en dit is baie duidelik wat dit beteken. 404 00:19:55,670 --> 00:19:59,190 Dit is een van die things-- dit is weer 405 00:19:59,190 --> 00:20:03,860 een of-- baie tekenend van die redes dat mense soos Python. 406 00:20:03,860 --> 00:20:05,900 As jy wil programmering soos hierdie, dan Python 407 00:20:05,900 --> 00:20:07,830 is 'n taal wat jy dalk wil om te leer. 408 00:20:07,830 --> 00:20:10,950 >> En weer, daar is tegniese redes waarom dit werk. 409 00:20:10,950 --> 00:20:14,730 Maar so ver as wat ons betref, ons min of meer nie omgee nie. 410 00:20:14,730 --> 00:20:18,500 >> So as jy wil om uit te druk lyste sommige van dieselfde idiome is nuttig. 411 00:20:18,500 --> 00:20:20,940 Want ek in hierdie reeks, kan ons indeks deur al die dinge 412 00:20:20,940 --> 00:20:23,140 en dan druk hulle almal uit. 413 00:20:23,140 --> 00:20:24,650 En jy sal sien hier Len. 414 00:20:24,650 --> 00:20:27,150 As jy al ooit wou om te kry die lengte van die skikking, wat 415 00:20:27,150 --> 00:20:31,150 baie maklik in Python, dit is baie moeilik in C. 416 00:20:31,150 --> 00:20:33,720 Dit sou presies uit te druk wat jy dit sou verwag om. 417 00:20:33,720 --> 00:20:36,986 Ons kan ook, soos ons gesien het nie, Itereer oor die elemente in die rigting 418 00:20:36,986 --> 00:20:39,860 direk, en dan net te praat oor hulle, eerder as om die indeks 419 00:20:39,860 --> 00:20:43,190 terug in die skikking elke keer. 420 00:20:43,190 --> 00:20:45,990 >> En dit is 'n ding wat jy kan doen. 421 00:20:45,990 --> 00:20:49,984 So in C, as jy vra vir iets soos hierdie, sou druk sê 422 00:20:49,984 --> 00:20:51,150 dit is 'n verskeidenheid van heelgetalle. 423 00:20:51,150 --> 00:20:53,456 Dit is beslis nie 'n string, kan ek nie druk nie. 424 00:20:53,456 --> 00:20:54,830 Python min of meer nie omgee nie. 425 00:20:54,830 --> 00:20:57,496 Dit is soos, is daar 'n manier dat ek kan dit tot 'n string draai in? 426 00:20:57,496 --> 00:20:58,500 Ja, ek sal dit doen. 427 00:20:58,500 --> 00:21:01,600 En so sal ek net druk dat uit. 428 00:21:01,600 --> 00:21:03,640 Dit beteken dat jy kan dinge like-- hierdie dinge te doen 429 00:21:03,640 --> 00:21:06,530 is die meeste van die harde dele spel van vyftien, geskryf 430 00:21:06,530 --> 00:21:08,930 baie kortliks in Python. 431 00:21:08,930 --> 00:21:11,320 >> Jy sal sien dat daar 'n bietjie of-- hier 432 00:21:11,320 --> 00:21:14,441 Ek het 'n heelgetal te gooi 'n string, en ek het dat die hand te doen. 433 00:21:14,441 --> 00:21:16,190 En ek gaan om by te voeg na 'n ander string, 434 00:21:16,190 --> 00:21:17,590 of anders Python verward raak. 435 00:21:17,590 --> 00:21:19,840 Maar of wanneer jy toevoeging van 'n string na 'n heelgetal, 436 00:21:19,840 --> 00:21:22,630 ek veronderstel is om te kry 'n heel getal rug of 'n string terug? 437 00:21:22,630 --> 00:21:24,480 Maar weereens, as jy net noem str op 'n ding, 438 00:21:24,480 --> 00:21:27,240 en dit kan in enige moontlike wêreld omskep word in 'n string, 439 00:21:27,240 --> 00:21:30,390 dit sal waarskynlik omskep in 'n string. 440 00:21:30,390 --> 00:21:33,120 >> Hier sien ons die gebruik van geneste lys begrip 441 00:21:33,120 --> 00:21:38,690 aan die linkerkant, sommige kruip, wat is presies soos jy wil gebruik om dit te, 442 00:21:38,690 --> 00:21:40,060 en 'n paar uit te druk van die dinge. 443 00:21:40,060 --> 00:21:42,560 Weereens het ons 'n paar gedefinieer funksies en ons sal hulle noem af 444 00:21:42,560 --> 00:21:45,820 in die belangrikste wanneer ons eintlik kry die lêer. 445 00:21:45,820 --> 00:21:52,004 terugkeer werk presies soos jy wil verwag van die werk met C. Vind, 446 00:21:52,004 --> 00:21:54,420 ons kan stel aan dinge soos this-- hier is n lys begrip 447 00:21:54,420 --> 00:21:59,245 daar is 'n opdrag om 'n veranderlike, en ons kan werklik doen dit nog makliker. 448 00:21:59,245 --> 00:22:01,870 Ons hoef nie te soek skryf, omdat ingeboude om die taal 449 00:22:01,870 --> 00:22:04,230 is as hierdie woord is in hierdie reeks. 450 00:22:04,230 --> 00:22:05,680 Terugkeer waar, anders terugkeer onwaar. 451 00:22:05,680 --> 00:22:08,830 So wat is die geheel van vonds. 452 00:22:08,830 --> 00:22:12,230 >> Die geheel van soort behels die roeping soort, 453 00:22:12,230 --> 00:22:15,462 wat is-- daar implementasies van hierdie gebou in sekere C biblioteke. 454 00:22:15,462 --> 00:22:17,170 As jy wil graag hierdie soort van agtertoe, jy 455 00:22:17,170 --> 00:22:20,450 kan ignoreer hierdie opsionele argument in reverse met 'n ware. 456 00:22:20,450 --> 00:22:23,350 457 00:22:23,350 --> 00:22:27,860 En as jy wil oor te sorteer snare, wat is gebou in so goed. 458 00:22:27,860 --> 00:22:31,950 >> So dit is nie te sê dit is dinge wat jy nodig het om elke dag te doen, 459 00:22:31,950 --> 00:22:34,280 maar die idee is dat hierdie is die filosofie van Python, 460 00:22:34,280 --> 00:22:37,530 dat al hierdie dinge wat jy wil soort wil doen is gebou in. 461 00:22:37,530 --> 00:22:42,410 En die meeste standaard funksies, so soort, lengte, wat ook al, 462 00:22:42,410 --> 00:22:44,380 ondersteun die meeste logies sinvolle insette. 463 00:22:44,380 --> 00:22:49,020 Jy noem Len op 'n verskeidenheid dieselfde roep jy Len op 'n string. 464 00:22:49,020 --> 00:22:55,785 Jy multiply-- jy snare sorteer dieselfde manier wat jy skikkings te sorteer. 465 00:22:55,785 --> 00:22:58,930 466 00:22:58,930 --> 00:23:00,740 >> Die meeste standaard funksies dat mense bou, 467 00:23:00,740 --> 00:23:03,000 en die meeste derde party biblioteke wat mense 468 00:23:03,000 --> 00:23:06,980 bou, want hulle is die navolging die ontwerp van die standaard biblioteek, 469 00:23:06,980 --> 00:23:10,190 genoem kan word op alles wat jy soos, waarom dit nie net werk nie, 470 00:23:10,190 --> 00:23:12,800 in C. Meer of minder, dit sal werk in Python 471 00:23:12,800 --> 00:23:15,930 omdat mense werk agter figuur uit te vind wat 'n ding is en dan te werk 472 00:23:15,930 --> 00:23:17,510 toepaslik op dit. 473 00:23:17,510 --> 00:23:22,760 So weer, tegniese agtergrond, maar dit maak ons ​​lewens makliker as programmeerders. 474 00:23:22,760 --> 00:23:26,820 >> So hier is lêer I / O. lêer I / O het baie van die klein dingetjies wat dit ingewikkeld maak, 475 00:23:26,820 --> 00:23:29,890 en so is daar hulpbronne aanlyn, maar in 'n neutedop, 476 00:23:29,890 --> 00:23:33,010 jy bel oop op 'n lêer naam met 'n spesifieke tipe. 477 00:23:33,010 --> 00:23:37,640 So dit is lees, lees en skryf, skryf of voeg. 478 00:23:37,640 --> 00:23:41,790 Jy lees 'n sekere aantal karakters uit en jy druk diegene 479 00:23:41,790 --> 00:23:42,595 jy kry Hello! 480 00:23:42,595 --> 00:23:43,970 Ek bedoel, soos hierdie lêer moes Hello! 481 00:23:43,970 --> 00:23:46,480 In dit, bel om te lees, en wat jy sal terug te kry 482 00:23:46,480 --> 00:23:49,520 is 'n string wat al het van die res van die skikking, 483 00:23:49,520 --> 00:23:50,860 of al die res van die lêer. 484 00:23:50,860 --> 00:23:53,805 485 00:23:53,805 --> 00:23:56,055 As jy weer 'n beroep te lees, jy aan die einde van die lêer, 486 00:23:56,055 --> 00:23:58,138 en so kry jy nie enigiets en sodat jy sluit. 487 00:23:58,138 --> 00:24:02,510 Weereens, dit is .close eerder as naby lêer, soos dit in C. sou wees 488 00:24:02,510 --> 00:24:07,190 Dit is min of meer, want f is 'n ding, en jy wil vir f om te sluit. 489 00:24:07,190 --> 00:24:12,092 Maar basiese lêer I / O is nie veral ingewikkeld. 490 00:24:12,092 --> 00:24:15,300 Weereens, as jy wil graag 'n lêer oop te maak, as jy wil 'n bepaalde lyn te lees, 491 00:24:15,300 --> 00:24:17,870 wat jy kan kry uit die besonder line-- daar gebou-ins vir daardie. 492 00:24:17,870 --> 00:24:19,995 As jy wil graag 'n skryf ding, kan jy dit skryf. 493 00:24:19,995 --> 00:24:23,412 As jy wil om uit te skryf individuele byt, kan jy die skryf. 494 00:24:23,412 --> 00:24:25,620 En as jy wil Itereer oor die lyne van 'n lêer 495 00:24:25,620 --> 00:24:29,557 individueel, soos ons gedoen het in 'n stuk van 'n Paar weke gelede, kan jy dit doen om. 496 00:24:29,557 --> 00:24:32,140 Weereens, die meeste voorwerpe wat jy wil graag in staat wees om oor te Itereer 497 00:24:32,140 --> 00:24:33,780 ondersteuning iterating oor hulle. 498 00:24:33,780 --> 00:24:37,430 In Luislange, 'n lêer is dalk 'n ding wat Ek wil graag Itereer oor lyn deur die lyn. 499 00:24:37,430 --> 00:24:39,138 As dit was 'n woordeboek van woorde en ek was 500 00:24:39,138 --> 00:24:42,181 probeer om die individuele kry woorde uit, dan, in hierdie lus, 501 00:24:42,181 --> 00:24:44,180 line dit gaan wees elke woord in sy beurt en dit 502 00:24:44,180 --> 00:24:47,880 gaan word uitgevoer vir elke lyn in die lêer tot die einde van die lêer. 503 00:24:47,880 --> 00:24:52,280 En weer, as ek gedruk elke lyn, die lyne kom met die nuwe reëls, 504 00:24:52,280 --> 00:24:54,740 so ek die opstel van die einde terug na 'n ding soos hierdie. 505 00:24:54,740 --> 00:24:56,580 Dan wil ek die inhoud van my lêer. 506 00:24:56,580 --> 00:25:03,610 507 00:25:03,610 --> 00:25:07,480 >> Die tweede ding wat werk in sommige maniere, soos lyste, en in sommige maniere 508 00:25:07,480 --> 00:25:11,870 as iets wesenlik meer kragtige, 509 00:25:11,870 --> 00:25:16,170 is woordeboeke, wat werklik is cool om te gebruik, maar is basies hash 510 00:25:16,170 --> 00:25:17,670 tafels in disguise. 511 00:25:17,670 --> 00:25:23,330 Jy een deur presies te skep twee karakters, wat is awesome 512 00:25:23,330 --> 00:25:25,959 as jy probeer om die implementering hash tafel jou probleem stel, 513 00:25:25,959 --> 00:25:27,250 jy weet baie pyn wat kan wees. 514 00:25:27,250 --> 00:25:29,390 Maar mense gedoen het , en dit gedoen so goed, 515 00:25:29,390 --> 00:25:32,260 dat jy nie hoef te bekommerd daaroor nie. 516 00:25:32,260 --> 00:25:35,180 >> Dan kan jy individuele dinge voeg. 517 00:25:35,180 --> 00:25:38,110 Hash tables-- of woordeboeke doen nie besonder 518 00:25:38,110 --> 00:25:40,240 omgee wat jy stoor in hulle nie. 519 00:25:40,240 --> 00:25:44,210 So as 'n paar inskrywings is getalle, en 'n paar inskrywings is lyste, 520 00:25:44,210 --> 00:25:47,360 as sommige inskrywings is ander woordeboeke, en 'n paar inskrywings is snare, 521 00:25:47,360 --> 00:25:49,930 Python nie veel sorg. 522 00:25:49,930 --> 00:25:53,460 >> Weereens, as jy gaan in dit verwag 'n string en wat jy terug te kry 523 00:25:53,460 --> 00:25:56,269 is 'n skikking, wat is jou probleem. 524 00:25:56,269 --> 00:25:58,810 En miskien is dit die skuld van elkeen gedink dit was om dinge 525 00:25:58,810 --> 00:26:00,476 in die woordeboek, miskien was jy. 526 00:26:00,476 --> 00:26:02,350 As dit was iemand anders, hopelik was hulle 527 00:26:02,350 --> 00:26:04,520 goed gedra oor wat gaan in die woordeboek 528 00:26:04,520 --> 00:26:07,420 en het nie enige slaggate te verlaat vir julle in te val. 529 00:26:07,420 --> 00:26:10,890 >> Maar die standaard funksies sal gee jou terug goed gedra dinge. 530 00:26:10,890 --> 00:26:13,500 Sodat hulle sê dit opbrengste terug 'n woordeboek van snare, 531 00:26:13,500 --> 00:26:15,860 dan is alles wat jy gaan om uit 'n string. 532 00:26:15,860 --> 00:26:20,710 As jy 'n paar van hierdie te doen en dit reise jy, wel, wat kan wees op jou. 533 00:26:20,710 --> 00:26:25,542 Python gee jou beslis genoeg tou om jouself te hang, as jy wil. 534 00:26:25,542 --> 00:26:28,250 Nou kan ons individuele druk elemente van dit en dit opbrengste 535 00:26:28,250 --> 00:26:29,935 presies wat jy sou verwag. 536 00:26:29,935 --> 00:26:32,810 Presies wat jy sou verwag, dink ek, is 'n frase wat ek gebruik 'n baie, 537 00:26:32,810 --> 00:26:35,070 maar dit is meer of minder hoe Python werk. 538 00:26:35,070 --> 00:26:39,880 As jy vra vir 'n ding wat nie dit sal Python gooi uit 'n fout 539 00:26:39,880 --> 00:26:43,194 en dit sal jy ophou uit watter program jy in. 540 00:26:43,194 --> 00:26:45,360 Dit sal eintlik druk meer inligting as dit, 541 00:26:45,360 --> 00:26:49,110 dit sal wys you-- Dit sal voeg 'n lyn, en so. 542 00:26:49,110 --> 00:26:52,190 >> En weer, miskien wil ons om Itereer oor woordeboeke 543 00:26:52,190 --> 00:26:54,410 en vind al die dinge wat in dit. 544 00:26:54,410 --> 00:26:57,440 Hier is ons iterating oor twee dinge op dieselfde tyd. 545 00:26:57,440 --> 00:27:03,040 En so sal ons dit doen met 'n sleutel, waarde, maar dan druk al hierdie. 546 00:27:03,040 --> 00:27:06,300 >> En as ons wou cast-- As ons werklik hierdie gehardloop, 547 00:27:06,300 --> 00:27:10,840 sou ons 'n paar probleme, want het on-- toe ons in met Dawid 548 00:27:10,840 --> 00:27:13,920 kon dit nie add-- as ons nie gooi dit eers 'n string, 549 00:27:13,920 --> 00:27:17,802 ons kon nie byvoeg dat array snare op 'n string. 550 00:27:17,802 --> 00:27:19,760 Maar as ons gooi dit na 'n string, iets wat ons kry 551 00:27:19,760 --> 00:27:22,590 soos hierdie, wat is dalk wat ons wil om te lees. 552 00:27:22,590 --> 00:27:27,000 553 00:27:27,000 --> 00:27:30,500 >> En dit is speller. 554 00:27:30,500 --> 00:27:32,460 Ons lees net in dinge. 555 00:27:32,460 --> 00:27:35,770 So kan ons lees in individuele woorde as lyne. 556 00:27:35,770 --> 00:27:38,240 Ons afkap die laaste ding, so kolon minus 1 557 00:27:38,240 --> 00:27:41,651 hap uit die laaste ding wat we-- die laaste karakter van 'n string. 558 00:27:41,651 --> 00:27:42,150 Ons sal sê. 559 00:27:42,150 --> 00:27:44,730 OK, elkeen van daardie kry plaas in die woordeboek, 560 00:27:44,730 --> 00:27:45,810 kartering van 'n waarde van 1. 561 00:27:45,810 --> 00:27:48,006 Ons doen veral nie omgee dat een, 562 00:27:48,006 --> 00:27:51,130 maar dit is net daar om te sê, oh well, hierdie ding wat ek sal in die woordeboek sit. 563 00:27:51,130 --> 00:27:53,182 Want later wat ons gaan doen, is ons 564 00:27:53,182 --> 00:27:55,390 gaan om te sê, goed, as dit in die woordeboek nie. 565 00:27:55,390 --> 00:27:57,650 >> Weereens, dit tjek vir lidmaatskap is up bedryfstelsel 566 00:27:57,650 --> 00:28:00,940 met behulp van 'n heeltemal ander algoritme as wat dit sal in 'n lys, 567 00:28:00,940 --> 00:28:05,709 maar ons noem dit die dieselfde manier, wat is 'n paar van daardie Python suiker coating 568 00:28:05,709 --> 00:28:07,250 dinge, sodat hulle is makliker om te gebruik. 569 00:28:07,250 --> 00:28:10,230 En weer, ons het gesien dinge soos hierdie voor. 570 00:28:10,230 --> 00:28:12,940 Dit is basies vind, of dit is presies dieselfde sintaksis 571 00:28:12,940 --> 00:28:16,480 as te vind, maar is die werk oor 'n heeltemal ander struktuur. 572 00:28:16,480 --> 00:28:20,170 En ons het nie veral sorg. 573 00:28:20,170 --> 00:28:25,540 So dit is die dinge wat jy is gevra om te implementeer vir speller. 574 00:28:25,540 --> 00:28:29,278 Teen hierdie koers, ons gaan kry min of meer al die psets gedoen. 575 00:28:29,278 --> 00:28:31,474 >> GEHOOR: Sodat basies kom net terug 576 00:28:31,474 --> 00:28:34,852 as verkeerd gespel as dit nie pas iets in die woordeboek? 577 00:28:34,852 --> 00:28:36,060 ROSS RHEINGANS-Yoo: Ja, ja. 578 00:28:36,060 --> 00:28:38,964 579 00:28:38,964 --> 00:28:40,880 En so is dit 'n aanpassing van 'n probleem te stel 580 00:28:40,880 --> 00:28:43,150 wat vra dat jy presies dit te doen. 581 00:28:43,150 --> 00:28:46,357 >> GEHOOR: Hoekom is die lyn minus 1 is daar? 582 00:28:46,357 --> 00:28:48,190 ROSS RHEINGANS-Yoo: So wanneer jy iterating 583 00:28:48,190 --> 00:28:50,300 oor 'n lêer te vra vir deur lyne, die lyne 584 00:28:50,300 --> 00:28:53,900 kom met 'n nuwe lyn karakter aan die einde van die it-- minus 1 585 00:28:53,900 --> 00:28:55,260 is net om te shop diegene af. 586 00:28:55,260 --> 00:28:59,549 En dit is 'n besonder buigsaam manier kruip in dinge. 587 00:28:59,549 --> 00:29:01,590 So as jy 'n string, en jy wil, en ek is 588 00:29:01,590 --> 00:29:05,340 gaan om te begin op karakter drie en ek gaan om te gaan na die einde. 589 00:29:05,340 --> 00:29:07,140 3 kolon sal dit doen vir jou. 590 00:29:07,140 --> 00:29:10,570 As jy wil, ek wil om te begin by die begin en gaan na die laaste minus 1 591 00:29:10,570 --> 00:29:12,400 karakter, kolon minus 1. 592 00:29:12,400 --> 00:29:14,940 En as jy wil om te gaan van die derde na die eerste minus, 593 00:29:14,940 --> 00:29:16,570 dan moet jy wil sê 3 minus 1. 594 00:29:16,570 --> 00:29:19,464 595 00:29:19,464 --> 00:29:22,400 >> Verder, as jy wil indeks in dinge tel van die rug, 596 00:29:22,400 --> 00:29:24,470 jy net indeks met minus getalle. 597 00:29:24,470 --> 00:29:26,980 En omdat, waar C sou ontplof of miskien 598 00:29:26,980 --> 00:29:31,090 voed jy ander geheue jy het nie toegang tot hoor wat jy kan sê minus 1 599 00:29:31,090 --> 00:29:34,104 beteken die laaste, maar 1 karakter in 'n string. 600 00:29:34,104 --> 00:29:36,950 601 00:29:36,950 --> 00:29:43,590 >> Modules is version-- is analoë aan biblioteke in C 602 00:29:43,590 --> 00:29:45,119 en is nuttig vir 'n baie van die dinge. 603 00:29:45,119 --> 00:29:46,910 Baie van die dinge wat jy wil wil doen in Python, 604 00:29:46,910 --> 00:29:50,040 Behalwe eenvoudige manipulasie van veranderlikes, 605 00:29:50,040 --> 00:29:52,290 jy wil om te haak in die groter biblioteke met groter 606 00:29:52,290 --> 00:29:55,910 koppelvlakke en meer moontlikhede vir interaksie 607 00:29:55,910 --> 00:29:57,195 met ander dele van die wêreld. 608 00:29:57,195 --> 00:29:58,910 sys is een van daardie met 'n klomp van die gereedskap 609 00:29:58,910 --> 00:30:01,159 wat nuttig is vir die interaksie is met die stelsel self 610 00:30:01,159 --> 00:30:05,050 en sal dit in te voer, soos die invoer sys. 611 00:30:05,050 --> 00:30:07,820 >> Daar is meer dokumentasie van dit wat jy hier kan gaan, 612 00:30:07,820 --> 00:30:11,490 of jy kan vind op Google deur googlen Python sys. 613 00:30:11,490 --> 00:30:12,640 Jy tik in te gaan. 614 00:30:12,640 --> 00:30:15,140 Die eerste skakel gaan wees die dokumentasie in Python 2, 615 00:30:15,140 --> 00:30:19,260 die tweede skakel gaan wees die dokumentasie Python 3. 616 00:30:19,260 --> 00:30:24,830 >> En as ons geskryf uit 'n lêer wat lyk soos this-- As in die besonder, ons is 617 00:30:24,830 --> 00:30:27,910 kyk na wat op command line argumente, 618 00:30:27,910 --> 00:30:30,040 soos ons geleer om baie te doen vroeg in hierdie klas. 619 00:30:30,040 --> 00:30:32,190 Dit is nie moeilik nie. Jy kan kry uit argv, 620 00:30:32,190 --> 00:30:34,565 Dit is een van daardie dinge wat geïmplementeer deur sys. 621 00:30:34,565 --> 00:30:37,210 Dit is nie 'n ingeboude in die basis pakket, maar weer, jy 622 00:30:37,210 --> 00:30:40,080 kan dit uit te brei deur die invoer wat funksionaliteit van sys. 623 00:30:40,080 --> 00:30:41,090 Jy sal dit sys noem. 624 00:30:41,090 --> 00:30:42,611 wat ook al. 625 00:30:42,611 --> 00:30:43,360 Hier is daar argv. 626 00:30:43,360 --> 00:30:45,193 Daar is eintlik geen argc in sys, omdat jy 627 00:30:45,193 --> 00:30:47,880 kan dit so maklik deur die roeping van Len. 628 00:30:47,880 --> 00:30:55,390 Ons het toe gedruk wat uit is, dan het ons hardloop op ons terminale echo-args.py. 629 00:30:55,390 --> 00:30:58,360 Ons kry weer 'n skikking, wat is die eerste argument. 630 00:30:58,360 --> 00:31:02,240 Weereens, dit is argv 0, wat is die Naam van die ding wat het genoem. 631 00:31:02,240 --> 00:31:04,870 As ons noem dit met bykomende argumente, sou ons die rug. 632 00:31:04,870 --> 00:31:07,687 633 00:31:07,687 --> 00:31:09,770 Dit is een manier om command line argumente. 634 00:31:09,770 --> 00:31:13,440 As jy wil vlae waar jy draai bepaalde dinge op of ignoreer 635 00:31:13,440 --> 00:31:16,050 'n bepaalde standaard, argparse is jou vriend. 636 00:31:16,050 --> 00:31:21,550 En weer jy vind dat aanlyn op python argparse op Google. 637 00:31:21,550 --> 00:31:24,300 >> Daar is 'n paar van nut modules wat jy jouself met behulp van 638 00:31:24,300 --> 00:31:27,630 en weer, as jy enige tyd te spandeer van hierdie taal invoer jsons 639 00:31:27,630 --> 00:31:33,300 vir die lees van in en uit into lêers, nie dat ingewikkeld. 640 00:31:33,300 --> 00:31:37,139 Jy maak 'n lêer, jy json.load genoem op die lêer en jy kry terug 'n ding. 641 00:31:37,139 --> 00:31:37,930 Wat is die ding? 642 00:31:37,930 --> 00:31:40,329 Dit is 'n into voorwerp. 643 00:31:40,329 --> 00:31:42,370 Waar daardie into het skikking, die Python het skikkings. 644 00:31:42,370 --> 00:31:44,420 Waar daardie into het assosiatiewe skikkings, Python se 645 00:31:44,420 --> 00:31:48,810 woordeboeke, snare, en nommers, en so aan. 646 00:31:48,810 --> 00:31:53,560 Jy wil om te stort wat uit jou open 'n nuwe lêer, jy stort noem, 647 00:31:53,560 --> 00:31:57,590 en vragte en mynhope te gaan in en uit snare. 648 00:31:57,590 --> 00:32:02,120 >> Net so, kry piekel genoem in basies dieselfde koppelvlak. 649 00:32:02,120 --> 00:32:04,740 Dit is effens meer nuttig as jy storting Python voorwerpe. 650 00:32:04,740 --> 00:32:08,370 So as jy ooit wou om te spaar 'n weergawe van die huidige status 651 00:32:08,370 --> 00:32:11,930 van 'n veranderlike vir 'n toekomstige hardloop van jou program, 652 00:32:11,930 --> 00:32:14,740 piekel is Python se biblioteek vir dit te doen. 653 00:32:14,740 --> 00:32:19,140 >> As jy enige soort van veranderlike wat geskryf kan word uit 654 00:32:19,140 --> 00:32:21,990 in soos woorde en karakters en bytes-- soos hierdie woordeboek, 655 00:32:21,990 --> 00:32:24,230 ons kon skryf, het ons kon dit neerskryf as 656 00:32:24,230 --> 00:32:26,670 soos 'n into voorwerp, wat was letterlik hierdie karakters. 657 00:32:26,670 --> 00:32:29,420 En dan sou dit baie maklik wees vir 'n mens om dit oop te up-- oopmaak 658 00:32:29,420 --> 00:32:30,889 en lees dit. 659 00:32:30,889 --> 00:32:33,180 As ons gedoen het nie besonder omgee mense om dit te lees, 660 00:32:33,180 --> 00:32:38,490 Ons kan selfs meer doeltreffend te verpak in vorms wat later kan word uitgepak 661 00:32:38,490 --> 00:32:42,860 of dat later kon word opgeblaas. 662 00:32:42,860 --> 00:32:46,740 En dit spaar 80% van die ruimte wat jou voorwerpe mag 663 00:32:46,740 --> 00:32:49,390 neem as jy het hulle uit skuldbewys. 664 00:32:49,390 --> 00:32:52,384 >> Jy noem piekel baie dieselfde way-- stort, vrag, 665 00:32:52,384 --> 00:32:53,800 en dan kry jy jou dinge terug. 666 00:32:53,800 --> 00:32:56,880 So as jy baie skryf kort Python programme wat 667 00:32:56,880 --> 00:32:59,952 wil staat te red, en lees dan dit later terug, dinge soos hierdie 668 00:32:59,952 --> 00:33:00,660 is jou vriende. 669 00:33:00,660 --> 00:33:02,640 Dat jy kan baie hulle maklik te stort as into. 670 00:33:02,640 --> 00:33:04,550 Die meeste Python voorwerpe kan stort uit die into 671 00:33:04,550 --> 00:33:11,310 as daar enige hoop wat struktureel hulle kan verteenwoordig op die manier. 672 00:33:11,310 --> 00:33:14,410 >> Dit is net die punt van die ysberg op modules wat nuttig is. 673 00:33:14,410 --> 00:33:19,510 So sys, os, multi, is soort van basiese werkesels vir dinge 674 00:33:19,510 --> 00:33:23,120 ons nodig het om met die lêerstelsel os., 675 00:33:23,120 --> 00:33:28,764 soos os.isfile, os.isdirectory, os.makefile, dit is jou vriende. 676 00:33:28,764 --> 00:33:30,930 As jy wil om te kommunikeer met 'n spesifieke lêer tipe, 677 00:33:30,930 --> 00:33:32,190 into piekel, CSV. 678 00:33:32,190 --> 00:33:37,160 As jy wil om te kommunikeer met die web bladsye, die urllib vir die kry http 679 00:33:37,160 --> 00:33:41,370 bladsye. bs4-- BeautifulSoup-- dit is 'n wonderlike parser vir html. 680 00:33:41,370 --> 00:33:47,047 Jy loop dit op 'n HTML en jy kry hierdie sub-array voorwerp nou, 681 00:33:47,047 --> 00:33:49,630 wat jy oor kan deurkruis Lookin, met soos net op soek na 682 00:33:49,630 --> 00:33:52,380 As is, in, wat is fantasties. 683 00:33:52,380 --> 00:33:55,920 >> Daar is 'n klomp van die pakkette vir running-- 684 00:33:55,920 --> 00:33:57,960 om dit te doen veral Mathy dinge. 685 00:33:57,960 --> 00:34:01,790 So as jy wil om te vermeerder, Keer, herskep matrikse, 686 00:34:01,790 --> 00:34:05,690 Numpy word gebruik deur mense oor die hele wêreld vir wat. 687 00:34:05,690 --> 00:34:09,620 Scipy is selfs meer bruikbaar gereedskap in daardie rigting. 688 00:34:09,620 --> 00:34:13,980 sklearn-- masjien leer, natuurlike taal verwerking, 689 00:34:13,980 --> 00:34:17,880 super nuttige dinge, kry geïmplementeer in Python al die tyd. 690 00:34:17,880 --> 00:34:21,469 >> En weer, neem effens langer write-- jammer, 691 00:34:21,469 --> 00:34:26,199 neem effens langer om te hardloop, maar die rede dat ware ingenieurs is geneig 692 00:34:26,199 --> 00:34:29,900 gebruik Python is omdat jy is geneig om te wees geblokkeer oor jou skryf die kode, eerder 693 00:34:29,900 --> 00:34:32,699 as jou rekenaar die kode. 694 00:34:32,699 --> 00:34:35,860 So as jy gaan om 'n skrywe program, wat baie van die ander mense 695 00:34:35,860 --> 00:34:37,699 gaan gebruik vir ewig, soos Linux, jy 696 00:34:37,699 --> 00:34:41,900 mag dit skryf in C. As jy gaan 'n berekening enjin skryf, 697 00:34:41,900 --> 00:34:46,124 jy in Python kan skryf as jy nodig om dit te verander elke paar maande. 698 00:34:46,124 --> 00:34:48,540 Sommige mense sou dit skryf in C, want hulle is soos dit. 699 00:34:48,540 --> 00:34:51,100 700 00:34:51,100 --> 00:34:54,050 >> So het ons die invoer sys gesien as 'n manier om dinge 701 00:34:54,050 --> 00:34:57,070 om module in jou program. 702 00:34:57,070 --> 00:35:00,370 Jy kan ook die invoer dit as 'n bynaam, as jy wil. 703 00:35:00,370 --> 00:35:03,660 Weereens multiprosessering is 'n pyn om tik elke keer, so voer as LP 704 00:35:03,660 --> 00:35:05,900 en dan wanneer jy gebruik dit in die program, 705 00:35:05,900 --> 00:35:09,732 jy sal sê mp.process, of wat jy het. 706 00:35:09,732 --> 00:35:12,670 As jy wil invoer slegs 'n enkele ding, 707 00:35:12,670 --> 00:35:19,450 so urllib het 'n ding genaamd versoek, so jy kan net invoer nie. 708 00:35:19,450 --> 00:35:22,610 Later, sal jy nie roep dit as urllib.request, maar net so versoek 709 00:35:22,610 --> 00:35:24,590 deur self. 710 00:35:24,590 --> 00:35:30,110 >> En jy kan alles invoer van 'n module indien jy wil. 711 00:35:30,110 --> 00:35:34,820 Dit is soms nie 'n goeie idea-- hierdie gewoonlik nie 'n goeie idee, eintlik. 712 00:35:34,820 --> 00:35:39,080 Omdat jy very-- want as enigiets in daardie module het 'n naam wat jy 713 00:35:39,080 --> 00:35:41,640 wou iewers anders gebruik in jou program, jy kan nie. 714 00:35:41,640 --> 00:35:44,127 >> En dit is nie altyd duidelik dat dit die geval is. 715 00:35:44,127 --> 00:35:46,460 Ten einde seker te maak dat wat jy doen is veilig, 716 00:35:46,460 --> 00:35:47,920 wat jy nodig het om oop te maak die module en sien al 717 00:35:47,920 --> 00:35:50,295 van die name wat eindig in there-- al die funksies, 718 00:35:50,295 --> 00:35:53,010 al die veranderlikes wat leef in daardie module, 719 00:35:53,010 --> 00:35:57,040 want jy bring al hulle in jou plaaslike naamruimte. 720 00:35:57,040 --> 00:35:58,680 >> So mense doen dit. 721 00:35:58,680 --> 00:36:01,322 Dit word algemeen aanbeveel dat jy dit nie doen nie. 722 00:36:01,322 --> 00:36:03,280 Maar mense doen dit al die tyd, want hulle is 723 00:36:03,280 --> 00:36:05,180 lui en wil nie tik mp. 724 00:36:05,180 --> 00:36:06,310 enigiets, ooit. 725 00:36:06,310 --> 00:36:09,560 726 00:36:09,560 --> 00:36:13,310 >> Al hierdie gepraat oor modules bring vir my om 'n kort praatjie 727 00:36:13,310 --> 00:36:15,930 oor hoe jy programme te ontwerp in Python. 728 00:36:15,930 --> 00:36:19,860 Die eerste stap is om te kyk om te sien of enigiemand anders het reeds die ding gedoen, 729 00:36:19,860 --> 00:36:22,160 of gedoen 90% van die ding. 730 00:36:22,160 --> 00:36:26,010 Die kans is dat hulle waarskynlik, en jy moet gaan kry hul ding en hardloop nie. 731 00:36:26,010 --> 00:36:28,900 Of skryf 'n wrapper rondom dit om dit aan te pas by jou doel. 732 00:36:28,900 --> 00:36:31,250 Dit is net ná wat versuim dat jy dan wil 733 00:36:31,250 --> 00:36:35,529 gaan op en write-- begin dink oor hoe jy hierdie ding saam sou sit. 734 00:36:35,529 --> 00:36:37,320 Daar is baie van die dinge daar buite, en dit is 735 00:36:37,320 --> 00:36:39,180 een van die mees bruikbare dinge oor Python. 736 00:36:39,180 --> 00:36:40,930 Soos die taal is elegant, die taal 737 00:36:40,930 --> 00:36:43,800 is maklik om te gebruik, maar ook omdat dit is so elegant en maklik om te gebruik, 738 00:36:43,800 --> 00:36:47,420 mense is wat dit gebruik vir 'n lang tyd en daar is 'n baie dinge 739 00:36:47,420 --> 00:36:52,520 daar buite wat jy kan benut vir jou eie gebruik. 740 00:36:52,520 --> 00:36:58,457 >> So laaste reël van die Python is, iemand anders het reeds waarskynlik geskryf 741 00:36:58,457 --> 00:37:00,290 'n module vir wat, iemand anders het reeds 742 00:37:00,290 --> 00:37:02,980 waarskynlik geskryf in 'n biblioteek vir daardie. 743 00:37:02,980 --> 00:37:06,579 Voordat jy probeer om 'n ding te doen, kyk om te sien of dit geïmplementeer is. 744 00:37:06,579 --> 00:37:07,370 Dit is nie so moeilik. 745 00:37:07,370 --> 00:37:11,960 Al die modules wat ek opgesit voor, met miskien 'n uitsondering, 746 00:37:11,960 --> 00:37:15,220 kom vooraf geïnstalleer in elke standaard Python installasie. 747 00:37:15,220 --> 00:37:17,769 En so met 'n oproep om invoer wat ook al, jy 748 00:37:17,769 --> 00:37:19,852 het al van daardie funksie op jou vingers. 749 00:37:19,852 --> 00:37:24,660 750 00:37:24,660 --> 00:37:28,920 >> Besig om te draai hierdie praat, is daar 'n paar dinge 751 00:37:28,920 --> 00:37:32,770 wat ek verlaat het as black boxes en soort van glansende oor, 752 00:37:32,770 --> 00:37:37,217 en daar is 'n paar wit lê dat ek vertel dat ter wille van eerlikheid, 753 00:37:37,217 --> 00:37:39,050 Ek sal ten minste punt hier, selfs al sal ek nie 754 00:37:39,050 --> 00:37:43,980 gaan super diep in almal van hulle en hul tegniese verduidelikings. 755 00:37:43,980 --> 00:37:46,010 >> Daar is baie van die dinge dat ek magie het genoem 756 00:37:46,010 --> 00:37:48,980 is wat ander mense sou noem objekgeoriënteerde programmering. 757 00:37:48,980 --> 00:37:52,470 So is daar baie things-- so veranderlikes is baie dikwels nie 758 00:37:52,470 --> 00:37:56,540 eenvoudige grepe sit in, geheue, maar is baie ingewikkeld 759 00:37:56,540 --> 00:38:01,910 voorwerpe wat interne het toestand oor funksies en baie 760 00:38:01,910 --> 00:38:05,570 verborge veranderlikes, baie verborge funksie, wat 761 00:38:05,570 --> 00:38:09,480 Kom jy hulle draai in snare, wat kan jy Itereer oor hulle. 762 00:38:09,480 --> 00:38:12,260 En as jy writing-- en die rede dat hulle 763 00:38:12,260 --> 00:38:15,710 het al van hierdie ryk funksionaliteit is omdat die people-- 764 00:38:15,710 --> 00:38:17,740 die argitekte van die language-- gegaan het 765 00:38:17,740 --> 00:38:22,420 deur en vir elke standaard voorwerp, sit in die funksie 766 00:38:22,420 --> 00:38:26,970 om te sê dit is hoe dit is hoe dit gaan om te werk 767 00:38:26,970 --> 00:38:28,470 As iemand wil Itereer daaroor. 768 00:38:28,470 --> 00:38:31,240 >> So alles wat iemand dalk moontlik wil oor Itereer, 769 00:38:31,240 --> 00:38:34,529 het logika geskryf in hand oor hoe jy 770 00:38:34,529 --> 00:38:36,070 veronderstel is om te Itereer oor daardie voorwerp. 771 00:38:36,070 --> 00:38:40,274 Alles wat jy moontlik kan wil gestort in 'n string het logika geskryf. 772 00:38:40,274 --> 00:38:43,440 Dit is die funksie wat jy bel as jy wil hierdie stort uit na 'n string. 773 00:38:43,440 --> 00:38:45,273 Dit is die rede waarom jy kan noem len op dinge, hierdie 774 00:38:45,273 --> 00:38:49,900 is die rede waarom jy kan bel in, dit is ' waarom jy nie kan bel as in op alles 775 00:38:49,900 --> 00:38:53,490 wat jy wil hê nie, want diegene al dra met hulle, 776 00:38:53,490 --> 00:38:55,380 die tegniese know-how om dit te doen. 777 00:38:55,380 --> 00:38:58,170 778 00:38:58,170 --> 00:39:00,432 >> Dit is iets wat ek is super gaan nie in te gaan. 779 00:39:00,432 --> 00:39:03,140 Maar vir ding in lys is subtiel anders C styl vir loops, 780 00:39:03,140 --> 00:39:06,160 en jy kan alles oor wat op lees die internet as jy belangstel. 781 00:39:06,160 --> 00:39:08,930 Daar is 'n donker kant aan almal van hierdie, wat ek genoem het, 782 00:39:08,930 --> 00:39:10,359 so daar is twee dinge. 783 00:39:10,359 --> 00:39:13,400 Die eerste is dat hierdie voorwerp-georiënteerde programmering voeg 'n baie oorhoofse 784 00:39:13,400 --> 00:39:16,080 ewekansige dinge, so jy uiteindelik met behulp van 'n baie meer geheue; 785 00:39:16,080 --> 00:39:18,640 beland jy met behulp van 'n bietjie meer tyd as wat jy andersins sou. 786 00:39:18,640 --> 00:39:21,300 Die other-- maar hoe meer verraderlike donker kant aan hierdie 787 00:39:21,300 --> 00:39:24,047 is, as dinge net te tree soos jy wil hê hulle moet 788 00:39:24,047 --> 00:39:27,130 sonder dat jy super hard dink oor of dit 'n int moet wees 789 00:39:27,130 --> 00:39:29,713 of daar moet 'n float, kan dit wees dat hier 790 00:39:29,713 --> 00:39:34,240 jy 'n int produseer, maar hier het julle dink, maar hulle sal jammer always--, 791 00:39:34,240 --> 00:39:36,555 dit kan wees dat hier 'n float produseer, 792 00:39:36,555 --> 00:39:39,430 maar wanneer jy die tweede deel van jou program, jy dink, 793 00:39:39,430 --> 00:39:41,150 Oh well, maar hulle sal altyd slaag vir my 'n int. 794 00:39:41,150 --> 00:39:43,608 En as hulle dit nie doen nie, is dit moontlik dat jy iewers ingedruk, 795 00:39:43,608 --> 00:39:47,600 as jy probeer om dit te gebruik na die indeks in 'n skikking, of wat jy het. 796 00:39:47,600 --> 00:39:51,050 >> So een van die werklike nuttige dinge oor C is 797 00:39:51,050 --> 00:39:54,219 dit dwing jou om regtig te dink hard te maak voordat u any-- 798 00:39:54,219 --> 00:39:56,510 voordat jy enige veranderlike bring ontstaan, soos wat 799 00:39:56,510 --> 00:39:58,764 is die soort van hierdie veranderlike. 800 00:39:58,764 --> 00:40:00,680 En dit gaan om dat die tipe vir alle tye. 801 00:40:00,680 --> 00:40:02,410 >> Dit is nie waar nie Python, en in die feit, jy 802 00:40:02,410 --> 00:40:04,740 can-- as jy net soort gaan deur die gehoor, 803 00:40:04,740 --> 00:40:07,690 en jy 'n paar besluite te neem een manier in een plek, 804 00:40:07,690 --> 00:40:09,870 en 'n paar besluite een manier in die ander plek 805 00:40:09,870 --> 00:40:12,960 sonder om genoeg dinge agter die tonele in die ander plek 806 00:40:12,960 --> 00:40:16,170 om dinge behoorlik te vang, moet jy kan 'n paar baie vreemde foute te kry. 807 00:40:16,170 --> 00:40:19,200 En die program kan hou hardloop vir 'n baie lang tyd, want dit is 808 00:40:19,200 --> 00:40:23,200 doen 'n baie werk om te sê, goed hierdie ding kan op hierdie manier te werk, 809 00:40:23,200 --> 00:40:25,070 so ek gaan om die manier te hardloop. 810 00:40:25,070 --> 00:40:30,300 >> En in die feit, die feit dat dit stoot stuur deur middel van 'n baie klein foute 811 00:40:30,300 --> 00:40:33,260 beteken dat, dikwels wanneer 'n fout is eintlik slegte 812 00:40:33,260 --> 00:40:38,720 en jy hoef eintlik wil hê om dit op te los, dit eindig myl away-- die program 813 00:40:38,720 --> 00:40:41,780 eindig stop myl weg uit wanneer jy jou fout het. 814 00:40:41,780 --> 00:40:46,590 En so 'n ding wat ons wil programme om te doen, sometimes-- een ding 815 00:40:46,590 --> 00:40:48,910 wat ons graag programme om te doen wanneer ons ontfouting 816 00:40:48,910 --> 00:40:54,160 is misluk hard en baie misluk vinnig wanneer iets verkeerd gaan. 817 00:40:54,160 --> 00:40:55,510 >> Python is baie sleg in daardie. 818 00:40:55,510 --> 00:40:58,820 Python is baie goed in nie versuim en rollende vorentoe 819 00:40:58,820 --> 00:41:00,320 deur onverwagte dinge. 820 00:41:00,320 --> 00:41:02,820 So, dit is nuttig vir wanneer jy skryf klein programme. 821 00:41:02,820 --> 00:41:07,110 Wanneer jy ingewikkeld foute soms 822 00:41:07,110 --> 00:41:09,300 neem 'n lang tyd om hulle terg. 823 00:41:09,300 --> 00:41:12,210 >> So is daar 'n donker kant aan almal van hierdie, soos dit werk net. 824 00:41:12,210 --> 00:41:13,860 Dit werk net soos jy sou verwag om dit te. 825 00:41:13,860 --> 00:41:18,320 Behalwe dat wanneer dit nie doen nie, beland jy in 'n heeltemal ander plek 826 00:41:18,320 --> 00:41:21,530 en probeer om uit te vind waar dit was dat jy verkeerd geloop het. 827 00:41:21,530 --> 00:41:25,180 >> Vullisverwydering is-- so een ding wat jy sal sien 828 00:41:25,180 --> 00:41:28,110 is dat enige van hierdie dinge wat Ek het in existence-- gebring 829 00:41:28,110 --> 00:41:34,114 hierdie skikkings, hierdie woordeboeke hierdie voorwerpe, hierdie files-- kry nooit bevry. 830 00:41:34,114 --> 00:41:36,030 Daar was geen oproep om gratis in enige van hierdie praat. 831 00:41:36,030 --> 00:41:40,340 En dit was op die C-span, want Ons het nooit in daardie dinge. 832 00:41:40,340 --> 00:41:42,220 >> Maar in Python-span, is daar nie 'n vrye. 833 00:41:42,220 --> 00:41:43,970 Dinge outomaties bevry wanneer Python 834 00:41:43,970 --> 00:41:45,386 dink jy nie op soek na hulle. 835 00:41:45,386 --> 00:41:49,640 Dit is regtig 'n goeie nie dinge wat bevry jy dalk nog steeds moontlik op soek na, 836 00:41:49,640 --> 00:41:54,262 maar dit beteken dat as jy gaan hierdie groot ding ken, 837 00:41:54,262 --> 00:41:55,970 en jy is soos, ag Ek is klaar met dit nou, 838 00:41:55,970 --> 00:42:00,360 dit is moeilik om te sê Python dat jy klaar is met dit nou. 839 00:42:00,360 --> 00:42:02,986 >> Jy kan soms stel dat veranderlike nie wees nie, 840 00:42:02,986 --> 00:42:05,110 en dan hoop dat uiteindelik die vullis versamelaar 841 00:42:05,110 --> 00:42:06,720 kom deur en maak skoon dit uit. 842 00:42:06,720 --> 00:42:10,177 Maar weereens, jy doen nie het beheer oor wat. 843 00:42:10,177 --> 00:42:13,510 En een van die redes wat mense gebruik C vir baie prestasie kritieke dinge, 844 00:42:13,510 --> 00:42:16,570 is hierdie vermoë om werklik weet wanneer geheue toegeken 845 00:42:16,570 --> 00:42:19,369 en wanneer dit vrygelaat, en het 'n baie beheer oor gesê: 846 00:42:19,369 --> 00:42:20,910 Ek gebruik nie meer gedink as ek nodig het. 847 00:42:20,910 --> 00:42:23,632 Dit is iets wat Python is nie dat groot op. 848 00:42:23,632 --> 00:42:25,090 GEHOOR: Kan ek vra jou 'n vraag? 849 00:42:25,090 --> 00:42:29,800 Wat het jy bedoel met misluk hard? 850 00:42:29,800 --> 00:42:32,070 >> ROSS RHEINGANS-Yoo: So as iets is verkeerd gaan 851 00:42:32,070 --> 00:42:34,950 en jy is in debugging af, sou jy baie dikwels 852 00:42:34,950 --> 00:42:38,510 wil hê dat jou program om jou te vertel presies waar dit verkeerd geloop, 853 00:42:38,510 --> 00:42:42,360 en nie net stil te hou hardloop. 854 00:42:42,360 --> 00:42:45,085 Maar jy wil eintlik dit te druk uit alle vorme van inligting oor 855 00:42:45,085 --> 00:42:46,972 soos hier was hierdie. 856 00:42:46,972 --> 00:42:53,957 Hierdie ding gebeur As jy druk 'n wen-- as jy 'n web server-- 857 00:42:53,957 --> 00:42:55,390 >> GEHOOR: [onhoorbaar] 858 00:42:55,390 --> 00:42:59,800 >> ROSS RHEINGANS-Yoo: Ja, as jy 'n web bediener, 859 00:42:59,800 --> 00:43:02,680 dit is soms sleg as jy altyd wegdoen foute, 860 00:43:02,680 --> 00:43:04,530 en jy sê, goed dat nie gewerk het nie. 861 00:43:04,530 --> 00:43:05,300 Ek gaan om te stop. 862 00:43:05,300 --> 00:43:07,680 Ek gaan net om te ignoreer dit en hou aan die gang. 863 00:43:07,680 --> 00:43:11,260 Want dan kan jy in honderde van hierdie foute en hulle nie sien nie. 864 00:43:11,260 --> 00:43:13,910 >> Dit sou beslis nuttig wees vir ontfouting doeleindes 865 00:43:13,910 --> 00:43:20,327 as elke keer as jou web bediener het 'n fout, jy het duursame rekords van daardie. 866 00:43:20,327 --> 00:43:22,910 Miskien is jy selfs wil hê dat die program om te stop, sodat daardie rekords 867 00:43:22,910 --> 00:43:25,471 Moenie begrawe onder dinge. 868 00:43:25,471 --> 00:43:26,970 Maar weereens, dit is in debugging mode. 869 00:43:26,970 --> 00:43:31,280 >> Dikwels in die produksie af, die wêreld is 'n bietjie anders. 870 00:43:31,280 --> 00:43:36,380 En in klein skrifte wat ek loop, waar die ding wat ek gesê het om te doen 871 00:43:36,380 --> 00:43:40,680 dalk net 'n bietjie af wees van wat ek wil om dit te doen, 872 00:43:40,680 --> 00:43:44,010 dan soort van druk deur foute is iets wat jy dalk wil. 873 00:43:44,010 --> 00:43:49,410 En in dié gevalle beslis Python verdien regtig sy begin. 874 00:43:49,410 --> 00:43:54,617 >> Die laaste ding wat ek nie praat in this-- dat ek nie praat oor 875 00:43:54,617 --> 00:43:57,700 maar kan regtig woedend die eerste tyd wat jy het een van hierdie foute, 876 00:43:57,700 --> 00:44:00,491 en die tweede en derde en vierde tyd wat jy het 'n hierdie foute. 877 00:44:00,491 --> 00:44:03,490 Python, ek genoem dat dit gebruik wit spasie 878 00:44:03,490 --> 00:44:06,700 om jou watter vlak van inkeping vertel en wat funksionele blok jy in, 879 00:44:06,700 --> 00:44:08,840 dit behandel oortjies en ruimtes anders. 880 00:44:08,840 --> 00:44:12,780 So as jy die blad oor vier, en dan die volgende lyn het vier ruimtes, 881 00:44:12,780 --> 00:44:16,910 selfs al het hulle vertoon as die dieselfde bedrag in jou redakteur, 882 00:44:16,910 --> 00:44:20,160 Python hulle nie behandel dieselfde. 883 00:44:20,160 --> 00:44:23,610 >> In werklikheid, Python behandel oortjies en ruimtes soos olie en water. 884 00:44:23,610 --> 00:44:25,050 Hulle is net verskillende dinge. 885 00:44:25,050 --> 00:44:27,264 Daar is geen spesifieke lengte wat 'n blad is, 886 00:44:27,264 --> 00:44:30,180 so dit is nie soos 'n blad is gelyk aan 8 ruimtes, en so sou jy rondom dit kry 887 00:44:30,180 --> 00:44:30,860 dat die pad. 888 00:44:30,860 --> 00:44:34,110 Soos, wanneer dit sê, wat vlak van wit spasie ek by, 889 00:44:34,110 --> 00:44:37,240 dit is eintlik op soek na ' patroon van ruimtes en tabs. 890 00:44:37,240 --> 00:44:43,050 En so, die beste manier om te gaan met hierdie is om altyd ruimtes al die tyd. 891 00:44:43,050 --> 00:44:47,510 >> En in die feit, in die Cloud9 IDE en die CS50 IDE, 892 00:44:47,510 --> 00:44:50,610 jou Tab-sleutel inserts vier spasies in plaas 893 00:44:50,610 --> 00:44:53,800 van 'n blad, wat is super nuttig. 894 00:44:53,800 --> 00:44:57,074 Hoewel weer, as jy 'n Python geskryf program met oortjies wat fyn sou wees, 895 00:44:57,074 --> 00:44:58,990 dit is net as iemand gaan toe in en probeer om by te voeg 896 00:44:58,990 --> 00:45:02,655 'n enkele lyn om jou program wat het vier ruimtes vir elke blad 897 00:45:02,655 --> 00:45:03,280 dit sou breek. 898 00:45:03,280 --> 00:45:07,800 En dit sou 'n manier breek dit is regtig nie sigbaar nie. 899 00:45:07,800 --> 00:45:12,390 Alhoewel die werklike fout boodskap wat dit gooi 900 00:45:12,390 --> 00:45:15,610 het te doen met 'n nuwe keep hier nie verwag word, 901 00:45:15,610 --> 00:45:18,700 or-- as dit praat oor koppeltekens en dit lyk asof dit is verkeerd, 902 00:45:18,700 --> 00:45:22,090 dit is waarskynlik omdat daar is 'n blad-ruimte probleem. 903 00:45:22,090 --> 00:45:24,154 Hulle is nog steeds woedend te ontfout. 904 00:45:24,154 --> 00:45:26,070 Die grootste geheel in hierdie gesprek, wat ek gedoen het nie 905 00:45:26,070 --> 00:45:29,740 kry, want dit is regtig 'n ingewikkelde, subtiele onderwerp 906 00:45:29,740 --> 00:45:34,760 en nodig is om enige te doen nie van die dinge wat ons tot dusver gedoen het, 907 00:45:34,760 --> 00:45:37,140 is 'n konsep genaamd tuples. 908 00:45:37,140 --> 00:45:41,280 Hulle is daar baie soos die skikkings wat jy nie kan verander. 909 00:45:41,280 --> 00:45:44,700 Hulle raak al oor die plek, want hulle is nuttig vir baie van die dinge 910 00:45:44,700 --> 00:45:46,300 dat skikkings is nie nuttig vir. 911 00:45:46,300 --> 00:45:49,890 >> Maar as jy wil graag 'n verskeidenheid te maak, en dan belowe die tolk dat jy 912 00:45:49,890 --> 00:45:53,140 gaan nooit wil verander wat thing-- in werklikheid, as jy wil verander, 913 00:45:53,140 --> 00:45:56,800 jy sal 'n nuwe een met die nuwe maak waardes in it-- diegene is tuples. 914 00:45:56,800 --> 00:45:58,800 Eerder as die vervaardiging van hulle met vierkantige hakies, 915 00:45:58,800 --> 00:46:00,341 jy hulle produseer met ronde hakies. 916 00:46:00,341 --> 00:46:05,074 Waarom jy hierdie dinge sou gebruik, is 'n bietjie van 'n vraag. . 917 00:46:05,074 --> 00:46:06,990 Die enigste ding wat ek sal sê oor wat jy 918 00:46:06,990 --> 00:46:10,680 kan tuples gebruik as indekse vir woordeboeke. 919 00:46:10,680 --> 00:46:15,010 Jy kan nie skikkings gebruik as indekse vir woordeboeke. 920 00:46:15,010 --> 00:46:18,970 En hoekom is, weer, tegniese en Ek gaan nie te loop in dit. 921 00:46:18,970 --> 00:46:23,140 >> Die pset wat ek nie aangeraak in hierdie gesprek is pset6. 922 00:46:23,140 --> 00:46:25,837 So hier is hoe jy 'd implementeer a-- hier is 923 00:46:25,837 --> 00:46:28,140 hoe jy pset6 sal implementeer in Python. 924 00:46:28,140 --> 00:46:32,680 Hou in gedagte die Python ontwerp siklus, die eerste ding 925 00:46:32,680 --> 00:46:34,760 wat jy doen wanneer jy die skryf van programme is tjek 926 00:46:34,760 --> 00:46:38,030 om te sien as iemand wat dit reeds gedoen het. 927 00:46:38,030 --> 00:46:42,152 >> In werklikheid, as jy wil om serve-- Apache 50 928 00:46:42,152 --> 00:46:44,110 doen ongeveer hierdie, behalwe dit kom nie 929 00:46:44,110 --> 00:46:45,840 standaard geïnstalleer op Linux masjiene. 930 00:46:45,840 --> 00:46:50,490 Python doen en die Python eenvoudige http bediener doen as goed. 931 00:46:50,490 --> 00:46:54,717 As jy al ooit op 'n Linux masjien, of die Cloud9 IDE buite CS50 932 00:46:54,717 --> 00:46:57,550 en jy wil die huidige dien gids om 'n bepaalde hawe, 933 00:46:57,550 --> 00:47:04,610 python-m SimpleHTTPServer hawe dien dit. 934 00:47:04,610 --> 00:47:07,190 Jy kan ook die invoer die eenvoudige http bediener 935 00:47:07,190 --> 00:47:11,240 en dit het 'n baie van die funksies of jy wil om dit aan te pas, of dit verander, 936 00:47:11,240 --> 00:47:15,860 of hardloop it-- inspan om dit te hardloop jou eie bediener dienste. 937 00:47:15,860 --> 00:47:18,032 >> So dit is Python in 'n neutedop. 938 00:47:18,032 --> 00:47:20,280 En dit is CS50. 939 00:47:20,280 --> 00:47:21,980 Dankie. 940 00:47:21,980 --> 00:47:23,468