1 00:00:00,000 --> 00:00:05,426 2 00:00:05,426 --> 00:00:06,800 ROSS RHEINGANS-YOO: Bună, eu sunt Ross. 3 00:00:06,800 --> 00:00:08,570 Și aceasta este o seminar CS50. 4 00:00:08,570 --> 00:00:12,100 Acesta vă va lua de la programare C programarea în Python în. 5 00:00:12,100 --> 00:00:15,120 >> Python este un limbaj de scripting. 6 00:00:15,120 --> 00:00:17,870 E ca și cum în mare parte C în sintaxă, deși unele 7 00:00:17,870 --> 00:00:20,390 cu privire la detaliile tehnice ale cum că sintaxa este executat 8 00:00:20,390 --> 00:00:22,240 sunt ușor diferite. 9 00:00:22,240 --> 00:00:24,780 Este mai puțin puternic decât C, în unele moduri. 10 00:00:24,780 --> 00:00:28,130 Este mai puțin expresiv pentru unde în calculatorul dumneavoastră 11 00:00:28,130 --> 00:00:30,030 Memoria devine prevăzute, cum se prevăzute, 12 00:00:30,030 --> 00:00:32,030 atunci când acesta devine libertate, și aceste felul de lucruri. 13 00:00:32,030 --> 00:00:36,150 >> E mai util decât C, în unele moduri, pentru că este mai ușor pentru a programa în. 14 00:00:36,150 --> 00:00:39,920 Limbajul este, într-o anumită oameni, mai mult intuitiv. 15 00:00:39,920 --> 00:00:44,820 Și într-adevăr, scopul este de să fie mai rapid pentru a programa 16 00:00:44,820 --> 00:00:46,490 si, posibil, mai lent pentru a executa. 17 00:00:46,490 --> 00:00:48,198 >> Acum, dacă te gândești la cantitatea de timp 18 00:00:48,198 --> 00:00:50,514 ati petrecut pe ultima set scris problemă 19 00:00:50,514 --> 00:00:52,430 codul dumneavoastră împotriva cantitate de timp petrecut 20 00:00:52,430 --> 00:00:55,310 pe ultima problemă set de executare codul, 21 00:00:55,310 --> 00:00:58,300 ai imagina că limbajul care a fost la fel de rapid la de două ori scrie, 22 00:00:58,300 --> 00:01:02,170 și de două ori la fel de lent pentru a executa, s-ar putea fi o imbunatatire fata C în unele moduri. 23 00:01:02,170 --> 00:01:05,730 Desigur, atunci când sunteți încercarea de a scrie programe mici pentru a face lucruri mici, 24 00:01:05,730 --> 00:01:08,520 Python este un limbaj util alegerea. 25 00:01:08,520 --> 00:01:10,620 >> Și la sfârșitul acestui seminar, sper că veți 26 00:01:10,620 --> 00:01:12,950 fi capabil să facă alegere în proiectele viitoare 27 00:01:12,950 --> 00:01:17,710 despre ce limbă este corect de a utiliza, nu ideea 28 00:01:17,710 --> 00:01:21,405 că o singură limbă este mai corectați tot timpul. 29 00:01:21,405 --> 00:01:23,030 Câteva lucruri despre ceea ce seminarului este. 30 00:01:23,030 --> 00:01:25,910 Acest seminar nu este destinat să vă învețe Python de la zero. 31 00:01:25,910 --> 00:01:28,310 Python este foarte asemănătoare la C, și eu sunt presupunând 32 00:01:28,310 --> 00:01:34,056 că ești un student CS50 sau cineva cu o familiaritate similară cu C. 33 00:01:34,056 --> 00:01:36,700 >> Daca esti elev CS50 în jurul valorii de problema set de 6, 34 00:01:36,700 --> 00:01:38,866 Deci ai vedea, o mulțime de lucruri în C, eu voi da 35 00:01:38,866 --> 00:01:40,740 diferențele majore, și unele din lucrurile 36 00:01:40,740 --> 00:01:42,840 care fac Python diferite și speciale și util, 37 00:01:42,840 --> 00:01:45,256 dar eu nu am de gând să meargă pentru ceea ce este un limbaj de programare 38 00:01:45,256 --> 00:01:46,920 și cum să scrie programe. 39 00:01:46,920 --> 00:01:49,820 Cu toate acestea, acest seminar va învăța să scrie programe Python 40 00:01:49,820 --> 00:01:52,310 daca esti unul dintre cele câteva grupuri. 41 00:01:52,310 --> 00:01:54,820 Din nou ne vom uita la modul în care v-ar pune în aplicare psets-- 42 00:01:54,820 --> 00:01:57,550 că ar trebui să fie 1-6 în Python-- și oferă indicii 43 00:01:57,550 --> 00:02:00,322 la documentația oficială de referință pentru viitor. 44 00:02:00,322 --> 00:02:03,030 Un alt lucru care este important despre modul în care se atribuie această discuție, 45 00:02:03,030 --> 00:02:05,360 Acest videoclip va fi on-line, prin amabilitatea CS50, 46 00:02:05,360 --> 00:02:07,550 așa că nu ar trebui să se simtă ca aveți nevoie să ia notițe. 47 00:02:07,550 --> 00:02:11,180 Puteți merge mereu înapoi și să căutați la ea mai târziu ca o referință. 48 00:02:11,180 --> 00:02:13,340 În plus diapozitivele sunt disponibile acum 49 00:02:13,340 --> 00:02:16,480 la acest site, care ar trebui ia sa faci o doc Google. 50 00:02:16,480 --> 00:02:21,010 Este o versiune ușor prescurtată din ceea ce am afișat pe ecran. 51 00:02:21,010 --> 00:02:24,850 >> O precizare atent înainte sărim în, Python 3 52 00:02:24,850 --> 00:02:26,700 este o limbă diferită de Python 2. 53 00:02:26,700 --> 00:02:30,020 Acestea arata mult la fel; Sunt diferențele tehnice foarte mici 54 00:02:30,020 --> 00:02:32,530 că va provoca programe scris în Python 2 55 00:02:32,530 --> 00:02:37,140 să nu poată să fie executat în mediul Python 3. 56 00:02:37,140 --> 00:02:41,969 >> Aparatul vine cu CS50 Python, în mod implicit se folosește Python 2. 57 00:02:41,969 --> 00:02:44,010 Puteți verifica acest lucru prin tastând în linia de comandă 58 00:02:44,010 --> 00:02:51,310 --version python, care ar trebui să ieșire 2.7.6 aparatul curent. 59 00:02:51,310 --> 00:02:53,580 Încercați Python 3, care face lucrează în aparatul, 60 00:02:53,580 --> 00:02:58,500 dacă implicite Python la 2.X.Y, fie pe aparatul sau de pe propriul dvs. mașini. 61 00:02:58,500 --> 00:03:03,730 Ar trebui să înlocuiți Python 3 oricând în această discuție pe care am scrie Python. 62 00:03:03,730 --> 00:03:05,760 Dacă aparatul este funcționare 2 în mod implicit, tipul 63 00:03:05,760 --> 00:03:09,770 Python 3, pentru a fi în măsură să efectiv urmați de-a lungul și să execute aceste lucruri. 64 00:03:09,770 --> 00:03:12,280 >> În plus, o să vă punctul la resursele oficiale acum. 65 00:03:12,280 --> 00:03:16,082 docs.python.org/3--~~V atent că e un 3 și nu o 2-- 66 00:03:16,082 --> 00:03:17,030 are referințe utile. 67 00:03:17,030 --> 00:03:19,280 Tutorial vă va purta prin o mare parte din aceleași lucruri 68 00:03:19,280 --> 00:03:21,460 că fac eu acum, cu excepția sub formă de text. 69 00:03:21,460 --> 00:03:23,725 Referință este util ca un referință pentru limba, 70 00:03:23,725 --> 00:03:26,100 și Biblioteca Standard dă vă unele dintre extensiile 71 00:03:26,100 --> 00:03:27,770 cu funcționalitate suplimentare. 72 00:03:27,770 --> 00:03:31,300 >> Deci un prim program foarte Python. 73 00:03:31,300 --> 00:03:34,410 În partea stângă avem C standard, pe dreapta, avem Python. 74 00:03:34,410 --> 00:03:36,780 Este posibil să fi recunoscut această problemă, e 75 00:03:36,780 --> 00:03:40,760 unul din prima problemei seturi în CS50, și acestea 76 00:03:40,760 --> 00:03:42,677 rezolva aceasta folosind aceeași soluție. 77 00:03:42,677 --> 00:03:45,010 Acum, motivul pentru care suntem Privind la aceste cot la cot 78 00:03:45,010 --> 00:03:46,830 este astfel încât să putem uita la diferențe sintactice. 79 00:03:46,830 --> 00:03:49,580 Unul dintre elefanți în cameră care este posibil să fi observat chiar 80 00:03:49,580 --> 00:03:56,350 pe bat, este că Python nu are Principalul ambalaj funcție în jurul codul. 81 00:03:56,350 --> 00:03:59,170 Deci, în C, scrii o grămadă de fișiere, le leagă împreună, 82 00:03:59,170 --> 00:04:02,590 și programul începe de executare la acest lucru numit principal Int. 83 00:04:02,590 --> 00:04:04,930 >> În Python, vă scrie un depuneți, executați fișierul, 84 00:04:04,930 --> 00:04:07,882 programul începe de executare în partea de sus a fișierului. 85 00:04:07,882 --> 00:04:09,590 Deci, este de gând să înceapă în partea de sus a fișierului 86 00:04:09,590 --> 00:04:11,280 merge în jos până când se găsesc altceva. 87 00:04:11,280 --> 00:04:14,440 Dacă găsește definiția unei funcții, nu va executa de fapt acest cod, 88 00:04:14,440 --> 00:04:15,940 se va defini pur și simplu funcția. 89 00:04:15,940 --> 00:04:18,459 Dar aici, când primul Programul este n egal 10, 90 00:04:18,459 --> 00:04:21,273 primul lucru pe care acest program va face este să ia această valoare de 10 91 00:04:21,273 --> 00:04:24,120 și a stabilit într-o variabilă numită n. 92 00:04:24,120 --> 00:04:27,690 >> Vorbind de această linie, unul dintre alte lucruri-- sorry-- acest 93 00:04:27,690 --> 00:04:31,040 inseamna ca programele C, le veți scrie, 94 00:04:31,040 --> 00:04:34,899 le vei face, ceea ce va invoca unele comenzi zăngănit, 95 00:04:34,899 --> 00:04:36,690 și apoi veți rula un executabil rezultat. 96 00:04:36,690 --> 00:04:41,030 Programe Python, executați Textul file-- acest mario.py ar putea 97 00:04:41,030 --> 00:04:44,900 fie acest fișier pe care tocmai am arătat Tu-- vei rula acest fișier 98 00:04:44,900 --> 00:04:47,450 și veți executa, și conținutul de ea 99 00:04:47,450 --> 00:04:50,390 vor fi executate de interpretul Python. 100 00:04:50,390 --> 00:04:52,470 Puteți face acest lucru în IDE dumneavoastră. 101 00:04:52,470 --> 00:05:02,260 >> Deci, dacă am un dosar Buna ziua, care are această pur și simplu conținut. 102 00:05:02,260 --> 00:05:04,840 Aceasta este, de fapt Python 2, nu Python 3, așa că nu 103 00:05:04,840 --> 00:05:06,600 vă faceți griji despre sintaxa pentru acum. 104 00:05:06,600 --> 00:05:14,230 Dar voi alerga Python, pe hello.py, si ruleaza. 105 00:05:14,230 --> 00:05:18,890 >> Un alt mod pe care le pot folosi Python care Nu voi face cu atât de mult în această discuție, 106 00:05:18,890 --> 00:05:21,840 este dacă am de tip Python, aceasta ma picături într-un mediu în care 107 00:05:21,840 --> 00:05:24,370 Pot să-l hrănească linie Python de linie. 108 00:05:24,370 --> 00:05:31,260 Deci, aici, dacă am de tip în spațiu print "Salut, lume". 109 00:05:31,260 --> 00:05:32,360 Tip intra. 110 00:05:32,360 --> 00:05:37,430 Mi-va scuipa înapoi rezultatele că linia individ imediat. 111 00:05:37,430 --> 00:05:38,470 >> Aceasta este ar putea fi util. 112 00:05:38,470 --> 00:05:40,700 În această discuție voi face lucruri pe lamele. 113 00:05:40,700 --> 00:05:43,940 Și așa vei putea să urmeze de-a lungul fie aici, sau prin scrierea 114 00:05:43,940 --> 00:05:45,725 fișierele reale și apoi de executare le. 115 00:05:45,725 --> 00:05:48,340 116 00:05:48,340 --> 00:05:50,995 >> Dar, merge înapoi la acest de cod, un alt lucru 117 00:05:50,995 --> 00:05:53,230 care le-ar putea avea noticed-- bine, nu e 118 00:05:53,230 --> 00:05:55,980 două lucruri pe care s-ar putea observa la aceste blocuri. 119 00:05:55,980 --> 00:05:59,280 Primul, mai degrabă mai banal, este faptul că Python nu are nici o virgulă trailing. 120 00:05:59,280 --> 00:06:02,630 >> Punct și virgulă sunt opționale peste tot și inofensiv pretutindeni. 121 00:06:02,630 --> 00:06:03,722 Le puteți adăuga. 122 00:06:03,722 --> 00:06:06,430 S-ar putea face pe oameni care scriu Python pentru un nechezat de viață la tine 123 00:06:06,430 --> 00:06:08,860 spate, pentru că nu sunt necesare. 124 00:06:08,860 --> 00:06:13,497 Sunt de multe ori un semn de a fi amânată din C. Designerii ale limbii 125 00:06:13,497 --> 00:06:16,580 simt că este mult mai clar în acest fel si ca nu este necesar să se declare 126 00:06:16,580 --> 00:06:18,700 de fiecare dată când se încheie o linie. 127 00:06:18,700 --> 00:06:21,799 >> Un alt lucru ciudat despre acest n este nu are un tip atașată. 128 00:06:21,799 --> 00:06:24,590 Una dintre piesele magice ale Python-- și am de gând să-l numesc magie, 129 00:06:24,590 --> 00:06:26,381 dar există foarte din motive tehnice de ce 130 00:06:26,381 --> 00:06:28,560 works-- una dintre cele piese magice de Python 131 00:06:28,560 --> 00:06:32,700 este că variabilele pot extinde sau micsora să conțină orice date 132 00:06:32,700 --> 00:06:34,530 Tipuri le să vrea. 133 00:06:34,530 --> 00:06:35,580 >> Deci, aceasta este o 10. 134 00:06:35,580 --> 00:06:40,060 Dacă mai târziu în jos am atribuit această n 0.5, ar fi nevoie de asta 0.5. 135 00:06:40,060 --> 00:06:43,770 Nu contează că este un int aici și plutesc acolo, ceva care folosește acest n 136 00:06:43,770 --> 00:06:47,057 va, mai mult sau mai puțin, putea chug de-a lungul în cazul în care devine una din cele. 137 00:06:47,057 --> 00:06:49,640 Dacă nu există niște foarte reală motiv pentru care nu se poate utiliza datele 138 00:06:49,640 --> 00:06:52,170 tip care n are în prezent, moment în care se va obține 139 00:06:52,170 --> 00:06:54,490 prins și arunca o eroare, și aceste felul de lucruri. 140 00:06:54,490 --> 00:06:57,050 >> Dar aici, Python nu într-adevăr ceea ce pasă 141 00:06:57,050 --> 00:06:59,140 este că am de gând să rămânem în această teză, cum ar fi, vrei chestia asta? 142 00:06:59,140 --> 00:06:59,840 Acest lucru in asta? 143 00:06:59,840 --> 00:07:00,640 Da, e cam un lucru. 144 00:07:00,640 --> 00:07:01,810 Voi lipi în cele din urmă. 145 00:07:01,810 --> 00:07:04,740 Va fi o problemă mai târziu, în cazul în care cineva care vrea să folosească în acest scop 146 00:07:04,740 --> 00:07:05,710 nu se poate ocupa. 147 00:07:05,710 --> 00:07:08,500 Aceasta este una dintre cele majore diferențe între Python și C 148 00:07:08,500 --> 00:07:10,790 care îl face ușor de scrie programe foarte mari C 149 00:07:10,790 --> 00:07:15,120 și face mai ușor de a scrie Programul Python foarte mic. 150 00:07:15,120 --> 00:07:19,564 >> FOR sintaxa nu este foarte diferite în ceea ce face. 151 00:07:19,564 --> 00:07:21,480 E puțin diferit în modul în care este exprimat. 152 00:07:21,480 --> 00:07:25,370 Deci acesta este un foarte, ceea ce se numește Pythonic, mod de a scrie aceasta. 153 00:07:25,370 --> 00:07:28,969 pentru rândul în gama (n), aceasta este Gama de numere de la 0 la n, 154 00:07:28,969 --> 00:07:31,010 inclusive pe fundul și exclusiv pe partea de sus. 155 00:07:31,010 --> 00:07:34,790 Deci, este de la 0 la n-1, care este exact ceea ce codul C este de a face, 156 00:07:34,790 --> 00:07:38,690 cu excepția că e mult mai ușor să se uite la, probabil,. 157 00:07:38,690 --> 00:07:42,710 >> Blocul este relevant nu a pornit de bretele, 158 00:07:42,710 --> 00:07:44,540 în schimb este pornit de acest indentare. 159 00:07:44,540 --> 00:07:47,580 Deci, toate aceste linii sunt patru spații de peste la dreapta, 160 00:07:47,580 --> 00:07:50,410 sau ca despre o lățime elefant. 161 00:07:50,410 --> 00:07:54,570 Și acestea sunt cele care sunt va fi executat în acest timp. 162 00:07:54,570 --> 00:07:57,020 Dacă am cârpăci indentare în acest sens și am 163 00:07:57,020 --> 00:08:01,420 împinge că de imprimantă la indentarea originală, 164 00:08:01,420 --> 00:08:04,320 că de imprimare va părăsi pentru bucla. 165 00:08:04,320 --> 00:08:08,560 Spre deosebire de C, unde aici am de fapt nevoie pentru a muta că bretele închis în jurul. 166 00:08:08,560 --> 00:08:11,820 >> Acest lucru înseamnă că nu te erori care sari la tine pentru că 167 00:08:11,820 --> 00:08:13,580 pune o proteză în loc greșit. 168 00:08:13,580 --> 00:08:16,460 Aceasta nu înseamnă că veți obține erori că sari pe tine pentru că 169 00:08:16,460 --> 00:08:17,620 indentate o greșit linie. 170 00:08:17,620 --> 00:08:19,290 Deci, se face crestături foarte atent. 171 00:08:19,290 --> 00:08:22,123 Sperăm că ai fost foarte atent cu indentare dumneavoastră oricum, 172 00:08:22,123 --> 00:08:25,300 și deci acesta nu este că mult mai mult de o povară. 173 00:08:25,300 --> 00:08:28,762 >> Dar o regulă de bază pentru Python, și vom avea o pereche de acestea 174 00:08:28,762 --> 00:08:30,970 că vom trece prin prin cursul vorbesc, 175 00:08:30,970 --> 00:08:33,840 este să încercați sintaxă naturale înainte de a privi ceva în sus. 176 00:08:33,840 --> 00:08:37,610 Deci această sintaxă, pentru acest număr în intervalul, 177 00:08:37,610 --> 00:08:41,460 este foarte distinctiv în termeni de stil. 178 00:08:41,460 --> 00:08:45,260 O mulțime de lucruri în Python vom vedea luând acest formular. 179 00:08:45,260 --> 00:08:47,420 >> Și așa, dacă ți-a venit cu un nou obiect care vă 180 00:08:47,420 --> 00:08:50,870 că ar trebui să fie în măsură să repeta peste acest lucru, în acest format, 181 00:08:50,870 --> 00:08:53,720 dovedește că, probabil, susține acest format. 182 00:08:53,720 --> 00:08:56,990 Noi nu merge super-adânc în motivele tehnice care e adevărat. 183 00:08:56,990 --> 00:09:00,167 >> Dar este o intuiție util de a avea atunci când sunteți apropie de programe Python, 184 00:09:00,167 --> 00:09:01,750 ca acest lucru este doar de gând să lucreze. 185 00:09:01,750 --> 00:09:03,020 Incearca-l. 186 00:09:03,020 --> 00:09:06,480 Cizme sus linia de comandă Interpret, vezi dacă funcționează, 187 00:09:06,480 --> 00:09:09,827 merge mai departe cu lucruri, înainte de a chiar trebuie să se deschidă Google și spune, 188 00:09:09,827 --> 00:09:11,660 ceea ce este sintaxa pentru acest lucru special? 189 00:09:11,660 --> 00:09:14,740 O mulțime de Python ai putea descoperi doar prin încercarea de. 190 00:09:14,740 --> 00:09:19,005 >> Aceasta în cazul în care este chiar mai asemănător la C apoi Fors sunt. 191 00:09:19,005 --> 00:09:20,380 Rețineți că nu există nici între paranteze. 192 00:09:20,380 --> 00:09:23,490 Parantezele sunt, din nou, inofensive, dar inutile. 193 00:09:23,490 --> 00:09:25,750 Există un colon la sfârșitul La fel ca pentru bucle, 194 00:09:25,750 --> 00:09:30,800 și din nou, blocurile relative sunt alin, mai degrabă decât a pornit de bretele. 195 00:09:30,800 --> 00:09:33,080 Acest altceva este la original nivel de indentare, 196 00:09:33,080 --> 00:09:35,930 și bloc de relevante indentate din nou. 197 00:09:35,930 --> 00:09:41,720 Cei de lucru exact așa cum o fac în C. 198 00:09:41,720 --> 00:09:44,520 >> Aceasta este de fapt foarte mult la fel. 199 00:09:44,520 --> 00:09:49,430 Din nou, print pierde un caracter off de printf Tu treci niște sfori. 200 00:09:49,430 --> 00:09:51,520 Siruri de caractere Se pare poate fi marcat fie pe 201 00:09:51,520 --> 00:09:53,562 de citate simple sau ghilimele. 202 00:09:53,562 --> 00:09:55,270 Nu e nici o diferență, cu excepția faptului că în interiorul 203 00:09:55,270 --> 00:09:57,722 de ghilimele simple puteți utiliza citate duble cu abandona, 204 00:09:57,722 --> 00:09:59,430 mai degrabă decât să scăpa toate. 205 00:09:59,430 --> 00:10:01,480 Și în interiorul ghilimele, tu poate folosi ghilimele simple cu abandon 206 00:10:01,480 --> 00:10:02,420 fără a fi nevoie să le scape. 207 00:10:02,420 --> 00:10:04,253 Dacă ați fi dorit să se amestecă le, puteți cu siguranță 208 00:10:04,253 --> 00:10:06,100 căuta online, cum să faci asta. 209 00:10:06,100 --> 00:10:09,581 >> Veți observa că aici, Am trecut de la capăt = chestia asta. 210 00:10:09,581 --> 00:10:12,580 Acesta este un exemplu de un opțional argument, care este unul din acele lucruri 211 00:10:12,580 --> 00:10:14,990 Python care sprijină această face destul de util. 212 00:10:14,990 --> 00:10:18,240 Deci imprimare de fapt, are o multime de argumente, care sunt de obicei 213 00:10:18,240 --> 00:10:20,140 setat la valorile implicite lor valoare, dar aici Am 214 00:10:20,140 --> 00:10:21,924 a decis pentru a trece peste cel numit final. 215 00:10:21,924 --> 00:10:24,340 Motivul pentru care am să suprascrie cu un șir gol 216 00:10:24,340 --> 00:10:26,756 este că de imprimare în Python, de implicit, imprimă o nouă linie 217 00:10:26,756 --> 00:10:28,630 după lucrul care l-ați spus prea. 218 00:10:28,630 --> 00:10:31,462 >> Deci, acest hash este, de fapt de gând să imprima un hash într-o nouă linie. 219 00:10:31,462 --> 00:10:34,670 Și dacă nu vreau să imprime hash o nouă linie după ea, atunci trebuie să spun 220 00:10:34,670 --> 00:10:35,340 nu se imprima o. 221 00:10:35,340 --> 00:10:37,980 222 00:10:37,980 --> 00:10:43,690 Dar, așa, un ultim lucru pe care acest program lipsește pe care o are este 223 00:10:43,690 --> 00:10:44,960 o includ în partea de sus. 224 00:10:44,960 --> 00:10:48,120 Print este copt în Python Deci, practic că nu există nici sau modul antet 225 00:10:48,120 --> 00:10:49,869 care aveți nevoie pentru a includ, deși în cazul în care a vrut 226 00:10:49,869 --> 00:10:52,029 pentru a include alte lucruri într-un script Python, 227 00:10:52,029 --> 00:10:55,320 Mi-ar face într-un format-- foarte asemănătoare cuvintele sunt doar ușor diferite. 228 00:10:55,320 --> 00:10:58,840 229 00:10:58,840 --> 00:11:01,360 >> Am menționat că nu au nevoie de un principal aici, 230 00:11:01,360 --> 00:11:03,372 deoarece Python începe executare, la partea de sus. 231 00:11:03,372 --> 00:11:05,080 Dacă aș fi vrut să-și încheie această într-o funcție, am 232 00:11:05,080 --> 00:11:07,667 ar face ca astea-- I ar spune def numele funcției, 233 00:11:07,667 --> 00:11:10,500 argumente ar putea merge aici și vom a se vedea unii dintre cei mai târziu, de colon, 234 00:11:10,500 --> 00:11:13,040 și apoi din nou, acest lucru întregul set off bloc 235 00:11:13,040 --> 00:11:16,810 este ceea ce este Operațional bloca pentru această funcție. 236 00:11:16,810 --> 00:11:18,560 Deci aceasta este definiția a funcției. 237 00:11:18,560 --> 00:11:21,587 Și există o declarație, apoi în jos aici, eu pot apela doar funcția. 238 00:11:21,587 --> 00:11:23,920 Și din nou, programul interpret, începând de la partea de sus, 239 00:11:23,920 --> 00:11:25,280 va vedea acest lucru este definiția. 240 00:11:25,280 --> 00:11:27,960 Acesta nu va executa acest lucru până când se ajunge aici, și apoi e ca, oh 241 00:11:27,960 --> 00:11:30,860 Acum ai sunat, am Cred că ar trebui să-l execute. 242 00:11:30,860 --> 00:11:33,850 >> Un lucru care este foarte frecvente pentru a vedea în fișiere Python, 243 00:11:33,850 --> 00:11:36,700 în special fișierele Python care sunt puse la dispoziția publicului 244 00:11:36,700 --> 00:11:41,650 și dezvoltat by-- și dezvoltat și menținut, este ceva de acest formular. 245 00:11:41,650 --> 00:11:44,540 Acest lucru este atât de deoarece basically-- Python, începi la partea de sus 246 00:11:44,540 --> 00:11:50,310 și apoi executați în jos la partea de jos, I, în cazul Am avut Mario chemat aici, 247 00:11:50,310 --> 00:11:54,190 atunci orice moment am inclus acest fișier în un alt fișier, pentru că am vrut să folosească 248 00:11:54,190 --> 00:11:58,580 este funcția Mario, că alt fișier ar au, de asemenea, acest apel la Mario în ea. 249 00:11:58,580 --> 00:12:01,000 Și când am fugit acel fișier, ar suna Mario. 250 00:12:01,000 --> 00:12:04,520 >> Deci, este posibil ca numai eu doriți să executați acest dacă am de fapt 251 00:12:04,520 --> 00:12:07,290 executat acest fișier special. 252 00:12:07,290 --> 00:12:11,520 Și așa că am putea încheia această într-o idiom ca aceasta, în cazul în care am spus, 253 00:12:11,520 --> 00:12:14,820 în cazul în care numele acestui execuție mediu este principalul, 254 00:12:14,820 --> 00:12:16,200 apoi vreau să facă aceste lucruri. 255 00:12:16,200 --> 00:12:18,710 În caz contrar, altcineva se poate use-- includ function-- meu 256 00:12:18,710 --> 00:12:22,510 dosarul meu, și doar pentru a obține accesul la aceste funcții 257 00:12:22,510 --> 00:12:25,552 fără a fi nevoie pentru a rula lucruri pe care vreau să execute în acest fișier. 258 00:12:25,552 --> 00:12:27,260 Aceasta este, din nou, opțional dar foarte frecvente. 259 00:12:27,260 --> 00:12:30,450 260 00:12:30,450 --> 00:12:33,840 >> Aceste lucruri sunt entirely-- sunt exact la fel între C și Python, 261 00:12:33,840 --> 00:12:35,100 cu siguranță în 3. 262 00:12:35,100 --> 00:12:38,610 Cred că în 2, operatorul divizie uneori vă oferă înapoi pluteste atunci când 263 00:12:38,610 --> 00:12:41,450 te operat int, și fie ai vrut sau că nu. 264 00:12:41,450 --> 00:12:44,777 Dar plus, minus, și ori lucra exact ca te-ai aștepta, 265 00:12:44,777 --> 00:12:46,110 excepteze pe ușor mai multe tipuri. 266 00:12:46,110 --> 00:12:49,740 Astfel încât să puteți multiplica flotoare de int, și acele felul de lucruri. 267 00:12:49,740 --> 00:12:52,480 >> set functioneaza exact la fel. 268 00:12:52,480 --> 00:12:54,310 Puteți utiliza două semne egale. 269 00:12:54,310 --> 00:12:59,000 inequals-- mai mare, mai decât, aceste tipuri de lucruri-- 270 00:12:59,000 --> 00:13:02,580 au semnificațiile care esti familiarizat cu ele. 271 00:13:02,580 --> 00:13:05,770 >> În cazul în care C folosește acești operatori, Python folosește puțin mai departe English 272 00:13:05,770 --> 00:13:06,390 cele care pot fi citite. 273 00:13:06,390 --> 00:13:09,348 Deci, în loc de două, and-urile, vă tip literal cuvântul "și", "sau," 274 00:13:09,348 --> 00:13:10,740 sau nu." 275 00:13:10,740 --> 00:13:13,420 Ca și în if-- dvs. în Declarații condiționale, 276 00:13:13,420 --> 00:13:17,670 am văzut mai devreme că această sintaxă în C corespunde această sintaxă în Python. 277 00:13:17,670 --> 00:13:21,010 Și există o mulțime diferită nu acolo, cu excepția un pic 278 00:13:21,010 --> 00:13:24,780 de punctuație în jurul părți. 279 00:13:24,780 --> 00:13:28,890 Din nou, în cazul în care C ar fi altceva dacă, Python folosește Elif, 280 00:13:28,890 --> 00:13:33,960 dar acestea sunt în mare parte Schimbări la nivel de suprafață. 281 00:13:33,960 --> 00:13:38,450 >> Repetare ca acest lucru este de multe ori scris în această expresie în Python. 282 00:13:38,450 --> 00:13:42,350 Puteți produce acest tip de chestia asta cu o buclă în timp ce la exterior 283 00:13:42,350 --> 00:13:46,387 dacă ai vrut, dar cu siguranță nu trebuie să. 284 00:13:46,387 --> 00:13:48,970 Și din nou, dacă ai vrut tipări elemente în dintr-o serie 285 00:13:48,970 --> 00:13:50,560 s-ar putea face în felul acesta. 286 00:13:50,560 --> 00:13:52,927 Unul dintre lucrurile distractive despre Python, deși, 287 00:13:52,927 --> 00:13:54,760 este că nu ai nevoie pentru a utiliza această paradigmă, 288 00:13:54,760 --> 00:13:57,290 și puteți utiliza un unul ceva mai elegant. 289 00:13:57,290 --> 00:13:59,370 Ai spus de o in ordinul. 290 00:13:59,370 --> 00:14:02,980 >> Deci, mai degrabă decât a merge aici și să fie difuzate peste indicilor, 291 00:14:02,980 --> 00:14:05,630 și apoi trăgând elemente individuale, 292 00:14:05,630 --> 00:14:08,644 vă spun pentru a de fapt doar rula peste elementele ei înșiși. 293 00:14:08,644 --> 00:14:11,060 Și apoi indiferent ce faceți interiorul poate opera direct 294 00:14:11,060 --> 00:14:13,260 pe elementele, care este destul de distractiv. 295 00:14:13,260 --> 00:14:16,710 Și vom see-- vom utiliza că idiom nou și din nou 296 00:14:16,710 --> 00:14:18,050 așa cum am mers pe jos prin codul. 297 00:14:18,050 --> 00:14:20,091 >> Aceasta este, din nou, un exemplu de ceva că voi 298 00:14:20,091 --> 00:14:23,300 apel Python magie, deși există motive foarte tehnice ce functioneaza. 299 00:14:23,300 --> 00:14:26,340 Și acolo sunt lucruri tehnice care trebuie să fie adevărat despre matrice pentru 300 00:14:26,340 --> 00:14:28,340 pentru ca aceasta să funcționeze în spatele scenei. 301 00:14:28,340 --> 00:14:31,390 Lucru este că cele mai multe tipuri care te-ai astepta ca acest lucru să funcționeze 302 00:14:31,390 --> 00:14:36,610 au avut acest implementat pentru te în limba built-in. 303 00:14:36,610 --> 00:14:40,030 >> Un alt lucru pe care ar fi frumos dacă aceasta a lucrat în toate limbile, 304 00:14:40,030 --> 00:14:45,460 dar există unele motive pentru care nu se poate, Tipărește această șir ori acest număr. 305 00:14:45,460 --> 00:14:48,860 Se pare că în Python, face exact acest ce ați dori, care este doar distractiv, 306 00:14:48,860 --> 00:14:52,840 și înseamnă că putem de fapt reduce acest program, din nou mario.c. 307 00:14:52,840 --> 00:14:57,150 Mai degrabă decât iterarea mult, putem doar spun, vreau un numar de spatii, 308 00:14:57,150 --> 00:15:01,120 Vreau numărul de hash, iar unele hash la sfârșitul. 309 00:15:01,120 --> 00:15:02,640 Și din nou, vom folosi acest format. 310 00:15:02,640 --> 00:15:05,340 >> Aici, ne trece în o variabilă în acest fel. 311 00:15:05,340 --> 00:15:08,050 Din nou, nu avem nevoie să spun ce tip de variabilă este, 312 00:15:08,050 --> 00:15:11,322 și singura dată am să obține erori este la momentul execuției. 313 00:15:11,322 --> 00:15:13,030 Când cineva încearcă să treacă ceva în, 314 00:15:13,030 --> 00:15:14,860 acesta va intra în funcția de bine. 315 00:15:14,860 --> 00:15:18,240 Dacă ne clin aici pentru că acest lucru nu este lucru pe care le puteți crea intervale de peste. 316 00:15:18,240 --> 00:15:22,100 Voi lua o eroare de execuție acolo, și voi trebuie să-l depanare în acest fel. 317 00:15:22,100 --> 00:15:25,050 Dar, în același timp, nu am să fie foarte atent cu privire la ceea ce 318 00:15:25,050 --> 00:15:32,800 devine trecut în, atâta timp cât în ​​real executie totul funcționează foarte curată. 319 00:15:32,800 --> 00:15:35,080 >> Aș putea face chiar acest un aspirator pic 320 00:15:35,080 --> 00:15:41,770 folosind o anumită funcție built-in pe siruri de caractere, care este drept Justify. 321 00:15:41,770 --> 00:15:45,250 Acesta este doar un util situată în jurul bibliotecii. 322 00:15:45,250 --> 00:15:47,660 Este scris în documentația dacă te duci și-l caute. 323 00:15:47,660 --> 00:15:51,650 Și spun, ei bine am de gând să aibă acest șir, un numar de hash, 324 00:15:51,650 --> 00:15:56,390 si as dori sa justifice dreptul pad it-- l cu spații pentru a fi această lungime. 325 00:15:56,390 --> 00:16:00,584 >> Din nou, acest lucru este în documentație, care aduce us-- 326 00:16:00,584 --> 00:16:03,500 Voi faceți clic de fapt prin these-- Ceea ce ne aduce a doua regula noastră 327 00:16:03,500 --> 00:16:06,990 pentru biblioteca standard Python-- Metodele de funcții sunt prietenii tăi. 328 00:16:06,990 --> 00:16:09,880 Și este de multe ori merite pentru a merge în căutarea Mă întreb 329 00:16:09,880 --> 00:16:12,310 Dacă există un lucru pe care tocmai face acest lucru. 330 00:16:12,310 --> 00:16:13,830 Există, probabil, este. 331 00:16:13,830 --> 00:16:15,990 Dacă doriți să pad un șir de caractere, dacă ai fi 332 00:16:15,990 --> 00:16:17,470 dori să ia în spate jumătate de un șir, dacă ai fi 333 00:16:17,470 --> 00:16:20,370 ca să caute printr-un șir de caractere, în cazul în care doriți să sparge o serie de lucruri 334 00:16:20,370 --> 00:16:22,420 împreună cu un șir cu virgule între ele, 335 00:16:22,420 --> 00:16:24,640 există biblioteca standard funcții pentru a face acest lucru. 336 00:16:24,640 --> 00:16:27,190 >> Si face viata ta mai ușor dacă le folosesc 337 00:16:27,190 --> 00:16:29,240 în loc de rulare totul pe cont propriu 338 00:16:29,240 --> 00:16:31,650 în cinci linii de cod aici, cinci linii de cod aici. 339 00:16:31,650 --> 00:16:34,430 Că într-adevăr începe la adăuga până în timp real. 340 00:16:34,430 --> 00:16:37,430 >> Unul dintre lucrurile interesante despre modul în care acest este chemat. 341 00:16:37,430 --> 00:16:39,980 Veți observa că există un lucru punct. 342 00:16:39,980 --> 00:16:43,490 Am un obiect pe stânga, și apoi am sunat o funcție un punct. 343 00:16:43,490 --> 00:16:49,780 Acesta este unul dintre paradigmele care Python folosește pentru atașarea metode de obiecte. 344 00:16:49,780 --> 00:16:54,410 Vom vorbi despre ceea ce acest este foarte scurt la sfârșitul anului, 345 00:16:54,410 --> 00:16:58,510 dar știu că putem opera atat pe lucruri de a lua ca punct de lucru spunând 346 00:16:58,510 --> 00:17:01,690 indiferent, sau sunand o funcție care ia 347 00:17:01,690 --> 00:17:04,339 acest obiect și alte câteva argumente. 348 00:17:04,339 --> 00:17:07,450 >> Deci, acestea sunt ambele sensuri care lucrurile se face în Python. 349 00:17:07,450 --> 00:17:09,780 Și dacă un anumit funcție este implementată 350 00:17:09,780 --> 00:17:14,230 în acest stil sau această stil este ceva ce 351 00:17:14,230 --> 00:17:19,990 ar trebui să arate în sus până când veți obține un hang pentru care o este posibil să cadă în. 352 00:17:19,990 --> 00:17:22,660 Există o mult sau mai puțin coezive Filozofia din spatele Python 353 00:17:22,660 --> 00:17:24,930 pe care le absorb cea mai mare parte scriind foarte mult în ea. 354 00:17:24,930 --> 00:17:28,190 La un moment dat, unul dintre acestea care ceva va fi implementat ca 355 00:17:28,190 --> 00:17:29,470 devine natural. 356 00:17:29,470 --> 00:17:32,420 Pentru moment, este doar ceva ai afla ca să îți dai seama 357 00:17:32,420 --> 00:17:34,140 fiecare lucru în parte. 358 00:17:34,140 --> 00:17:36,420 >> Bibliotecă atât de standard de funcții sunt prietenii tăi, 359 00:17:36,420 --> 00:17:41,320 și ei vă permit să scrie lucruri pe care ia acest spațiu într-adevăr în curând mult, 360 00:17:41,320 --> 00:17:42,040 într-adevăr elegant. 361 00:17:42,040 --> 00:17:45,670 Și acest lucru este, de fapt, probabil, mai mult lizibile, aș spune, decât programul C 362 00:17:45,670 --> 00:17:46,780 acolo. 363 00:17:46,780 --> 00:17:49,730 Nu mai vorbim de faptul ca este atat de scurtă puteți potrivi un întreg elefant 364 00:17:49,730 --> 00:17:52,250 în spațiul pe care l-am salvat. 365 00:17:52,250 --> 00:17:56,270 >> Un alt lucru, aceasta este o punere în aplicare de Mario că este punct C, care cred că 366 00:17:56,270 --> 00:17:57,890 este cel mai scurt puteți să-l. 367 00:17:57,890 --> 00:18:00,757 Ea nu are int get, dar aceasta coduri greu valoarea 10 368 00:18:00,757 --> 00:18:02,090 în același mod în care acesta nu. 369 00:18:02,090 --> 00:18:06,080 Pare ca acesta ceasuri în cel 84 de caractere, în timp ce Python este de 64. 370 00:18:06,080 --> 00:18:11,490 Și acest lucru este infinit mai ușor de citit decât acest gunoi aici. 371 00:18:11,490 --> 00:18:14,610 Deci Python este mai eficientă în spațiu. 372 00:18:14,610 --> 00:18:17,260 Este mai puțin eficient în timp, dar nu cu mult. 373 00:18:17,260 --> 00:18:18,890 >> Liste sunt un lucru important în Python. 374 00:18:18,890 --> 00:18:21,540 375 00:18:21,540 --> 00:18:24,587 Noi nu le-am văzut, dar ei funcționează la fel ca matrice făcut în C. 376 00:18:24,587 --> 00:18:27,170 Deci, aici, aveți posibilitatea să le declare, le puteți trece într-un lucru. 377 00:18:27,170 --> 00:18:29,810 Acum pătrate deține un serie de aceste lucruri. 378 00:18:29,810 --> 00:18:33,480 Din nou, nu ne-au declarat ca tip, dar dacă vom încerca vreodată să-l folosească, 379 00:18:33,480 --> 00:18:36,260 ceva care te-ai aștepta să lucru pe o serie de întregi 380 00:18:36,260 --> 00:18:40,130 este de gând să lucreze la o serie de numere întregi. 381 00:18:40,130 --> 00:18:42,030 >> Acesta este un lucru pe care aveți absolut nu se poate 382 00:18:42,030 --> 00:18:47,390 face în C, pentru că Memoria este atât mâinile pe, 383 00:18:47,390 --> 00:18:48,950 dar este foarte ușor de făcut în Python. 384 00:18:48,950 --> 00:18:55,310 Dacă vreau matrice mea să fie mai mare, pot adăugați un element să-l și-l e bine. 385 00:18:55,310 --> 00:18:57,150 >> Ce se întâmplă în spatele scenei? 386 00:18:57,150 --> 00:18:59,150 Interpretul va merge afară și a lua niște memorie, 387 00:18:59,150 --> 00:19:00,860 și poate că veți obține o pic de memorie suplimentară, 388 00:19:00,860 --> 00:19:03,090 așa că nu, așa că am nu am la realloc de fiecare dată. 389 00:19:03,090 --> 00:19:04,897 Dar cât de mult au mai Memoria nu-l nevoie? 390 00:19:04,897 --> 00:19:06,730 Acest lucru nu reprezintă decizii care va trebui să facă, 391 00:19:06,730 --> 00:19:10,540 Acestea sunt deciziile pe care interpret este de gând să facă. 392 00:19:10,540 --> 00:19:12,270 >> Aici vom vedea gama putem ia două argumente, 393 00:19:12,270 --> 00:19:16,430 dar este încă va fi inclusiv din partea de sus, astfel vom adăuga 1 acolo. 394 00:19:16,430 --> 00:19:21,970 Aceasta este o expresie, care este o și mai mod inteligent de a scrie lucruri de genul asta. 395 00:19:21,970 --> 00:19:25,980 Se numește listă înțelegere, si aici ce spunem 396 00:19:25,980 --> 00:19:32,560 este Aș dori să pună în I pătrat pentru fiecare valoare a i în acest interval. 397 00:19:32,560 --> 00:19:35,770 Acest lucru pe dreapta ar putea fi un alt matrice, și acest lucru pe stânga 398 00:19:35,770 --> 00:19:40,740 să fie orice funcție special că ar lua în i ca o variabilă 399 00:19:40,740 --> 00:19:42,250 și dă-mi unele rezultate. 400 00:19:42,250 --> 00:19:43,480 >> Ce am de gând să faceți este să, Am de gând să construiască 401 00:19:43,480 --> 00:19:46,200 o matrice care este toate aceste lucruri pentru fiecare valoare în acest interval. 402 00:19:46,200 --> 00:19:48,960 403 00:19:48,960 --> 00:19:55,670 Și acest lucru este foarte elegant, super-scurt, si e foarte clar ce înseamnă. 404 00:19:55,670 --> 00:19:59,190 Aceasta este una dintre cele mai lucruri-- acest lucru este, din nou, 405 00:19:59,190 --> 00:20:03,860 o de-- foarte emblematic al motive care oameni ca Python. 406 00:20:03,860 --> 00:20:05,900 Dacă vă place de programare în acest fel, atunci Python 407 00:20:05,900 --> 00:20:07,830 este o limba pe care s-ar putea dori să învețe. 408 00:20:07,830 --> 00:20:10,950 >> Și din nou, există tehnic motive Aceasta funcționează. 409 00:20:10,950 --> 00:20:14,730 Dar în ceea ce ne priveste, am mult sau mai puțin nu-mi pasă. 410 00:20:14,730 --> 00:20:18,500 >> Deci, dacă doriți să imprimați listele, unele dintre aceleași expresii sunt utile. 411 00:20:18,500 --> 00:20:20,940 Pentru i in acest interval, am putea index prin toate lucrurile 412 00:20:20,940 --> 00:20:23,140 și apoi imprimați-le pe toate. 413 00:20:23,140 --> 00:20:24,650 Și veți vedea len aici. 414 00:20:24,650 --> 00:20:27,150 Dacă v-ați dorit vreodată pentru a obține lungimea de matrice ca e 415 00:20:27,150 --> 00:20:31,150 foarte ușor în Python, este foarte greu în C. 416 00:20:31,150 --> 00:20:33,720 Acest lucru ar imprima exact ce te-ai aștepta să-l. 417 00:20:33,720 --> 00:20:36,986 Am putea, de asemenea,, așa cum am văzut mai înainte, repeta peste elementele din matrice 418 00:20:36,986 --> 00:20:39,860 direct, iar apoi doar vorbim despre ele, mai degrabă decât având indicele 419 00:20:39,860 --> 00:20:43,190 înapoi în matrice de fiecare dată. 420 00:20:43,190 --> 00:20:45,990 >> Și acesta este un lucru pe care le puteți face. 421 00:20:45,990 --> 00:20:49,984 Deci, în C, dacă vă întreb ceva ca aceasta, de imprimare ar spune, 422 00:20:49,984 --> 00:20:51,150 care este o serie de numere întregi. 423 00:20:51,150 --> 00:20:53,456 Asta nu e cu siguranta un șir de caractere, nu pot imprima. 424 00:20:53,456 --> 00:20:54,830 Python mult sau mai puțin nu-i pasă. 425 00:20:54,830 --> 00:20:57,496 E ca și cum, există o modalitate de care am ar putea transforma acest lucru într-un șir de? 426 00:20:57,496 --> 00:20:58,500 Da, voi face asta. 427 00:20:58,500 --> 00:21:01,600 Și așa voi imprima doar asta. 428 00:21:01,600 --> 00:21:03,640 Acest lucru înseamnă că poți fac lucruri like-- acestea 429 00:21:03,640 --> 00:21:06,530 sunt cele mai multe piese dure de joc de cincisprezece ani, în scris 430 00:21:06,530 --> 00:21:08,930 pentru scurt timp în Python foarte. 431 00:21:08,930 --> 00:21:11,320 >> Veți vedea că nu există un pic de-- aici 432 00:21:11,320 --> 00:21:14,441 Am aruncat un întreg la un șir de, și am să fac asta manual. 433 00:21:14,441 --> 00:21:16,190 Și am de gând să adăugați într-un alt șir, 434 00:21:16,190 --> 00:21:17,590 sau altfel Python devine confuz. 435 00:21:17,590 --> 00:21:19,840 Dar dacă atunci când sunteți adăugarea unui șir de un număr întreg, 436 00:21:19,840 --> 00:21:22,630 Sunt Cred că pentru a obține o integer spate sau un șir înapoi? 437 00:21:22,630 --> 00:21:24,480 Dar, din nou, doar dacă apel str pe un lucru, 438 00:21:24,480 --> 00:21:27,240 și ar putea, în orice posibil lumea fi transformat într-un șir, 439 00:21:27,240 --> 00:21:30,390 acesta va fi, probabil, transformat într-un șir. 440 00:21:30,390 --> 00:21:33,120 >> Aici, vom vedea utilizarea Lista imbricate înțelegere 441 00:21:33,120 --> 00:21:38,690 pe stânga, unele indexare, care este exact cum te-ai fi folosit pentru a, 442 00:21:38,690 --> 00:21:40,060 și unele imprimarea din lucruri. 443 00:21:40,060 --> 00:21:42,560 Din nou ne-am definit ceva funcțiilor și le vom chema 444 00:21:42,560 --> 00:21:45,820 în principal atunci când vom ajunge de fapt fișierul. 445 00:21:45,820 --> 00:21:52,004 întoarcere funcționează exact ca tine ar aștepta de la lucrul cu C. Find, 446 00:21:52,004 --> 00:21:54,420 putem stabili lucrurile, cum ar fi astea-- aici e lista înțelegerea 447 00:21:54,420 --> 00:21:59,245 există o misiune la o variabilă, si putem face de fapt chiar mai ușor. 448 00:21:59,245 --> 00:22:01,870 Nu avem nevoie să scrie căutare, deoarece built-in pentru limba 449 00:22:01,870 --> 00:22:04,230 este în cazul în care acest lucru este în lucru această matrice. 450 00:22:04,230 --> 00:22:05,680 Return true, altfel return false. 451 00:22:05,680 --> 00:22:08,830 Deci, asta e totalitatea găsi. 452 00:22:08,830 --> 00:22:12,230 >> Totalitatea fel implică asteptare fel, 453 00:22:12,230 --> 00:22:15,462 care este-- există implementari din acest construit în anumite biblioteci C. 454 00:22:15,462 --> 00:22:17,170 Dacă doriți acest un fel de spate, ai 455 00:22:17,170 --> 00:22:20,450 poate trece peste acest opțional argument în sens invers cu un adevărat. 456 00:22:20,450 --> 00:22:23,350 457 00:22:23,350 --> 00:22:27,860 Și dacă doriți să sortați peste siruri de caractere, care este built-in, de asemenea. 458 00:22:27,860 --> 00:22:31,950 >> Deci, acest lucru nu este să spun, acestea sunt lucruri pe care aveți nevoie pentru a face în fiecare zi, 459 00:22:31,950 --> 00:22:34,280 dar ideea este că această este filozofia Python, 460 00:22:34,280 --> 00:22:37,530 ca toate acestea care doriți un fel de vrei sa faci sunt built-in. 461 00:22:37,530 --> 00:22:42,410 Și cele mai multe funcții standard, așa fel, lungime, oricare ar fi, 462 00:22:42,410 --> 00:22:44,380 sprijini de intrare mai logic sensibil. 463 00:22:44,380 --> 00:22:49,020 Te sun len pe o matrice la fel modul în care len apel pe un șir. 464 00:22:49,020 --> 00:22:55,785 Tu multiply-- sortați siruri de caractere același mod în care a sorta tablouri. 465 00:22:55,785 --> 00:22:58,930 466 00:22:58,930 --> 00:23:00,740 >> Cele mai multe funcții standard că oamenii construi, 467 00:23:00,740 --> 00:23:03,000 și cel mai terțe părți biblioteci care oamenii 468 00:23:03,000 --> 00:23:06,980 construi, pentru că sunt imite proiectarea biblioteca standard, 469 00:23:06,980 --> 00:23:10,190 poate fi numit pe tot ceea ce esti cum ar fi, de ce nu acest lucru doar locul de muncă, 470 00:23:10,190 --> 00:23:12,800 în C. Mai mult sau mai puțin, se va lucra în Python 471 00:23:12,800 --> 00:23:15,930 pentru că oamenii lucrează în spatele figurii ce un lucru este și apoi opera 472 00:23:15,930 --> 00:23:17,510 în mod corespunzător pe el. 473 00:23:17,510 --> 00:23:22,760 Deci, din nou, fundal tehnice, dar face viața mai ușoară ca programatori. 474 00:23:22,760 --> 00:23:26,820 >> Deci, aici e fisier I / O. fișier I / O are o multime de lucruri mici care fac complicat, 475 00:23:26,820 --> 00:23:29,890 și așa există resurse on-line, dar pe scurt, 476 00:23:29,890 --> 00:23:33,010 te sun deschise pe un fișier nume cu un anumit tip. 477 00:23:33,010 --> 00:23:37,640 Așa că a citit, citit și scrie, scrie sau adăuga. 478 00:23:37,640 --> 00:23:41,790 Ai citit un anumit număr de caractere afară și să imprimați aceste, 479 00:23:41,790 --> 00:23:42,595 veți obține Buna ziua! 480 00:23:42,595 --> 00:23:43,970 Adică, ca acest fisier avut Buna ziua! 481 00:23:43,970 --> 00:23:46,480 În ea, suna pentru a citi, și ceea ce veți primi înapoi 482 00:23:46,480 --> 00:23:49,520 este un șir care este dotat cu toate de restul de matrice, 483 00:23:49,520 --> 00:23:50,860 sau a restului fișierului. 484 00:23:50,860 --> 00:23:53,805 485 00:23:53,805 --> 00:23:56,055 Dacă apelați citit din nou, esti la sfârșitul fișierului, 486 00:23:56,055 --> 00:23:58,138 și astfel încât să nu te nimic și astfel încât veți închide. 487 00:23:58,138 --> 00:24:02,510 Din nou, acest lucru este, mai degrabă decât .close fișier de aproape, cum ar fi în C 488 00:24:02,510 --> 00:24:07,190 Acest lucru este mai mult sau mai puțin, deoarece f este un lucru, și doriți pentru f pentru a închide. 489 00:24:07,190 --> 00:24:12,092 Dar fișier de bază I / O nu este deosebit de complicat. 490 00:24:12,092 --> 00:24:15,300 Din nou, dacă doriți să deschideți un fișier, în cazul în care doriți să citiți o anumită linie, 491 00:24:15,300 --> 00:24:17,870 puteți obține din special line-- e construit-in-uri pentru asta. 492 00:24:17,870 --> 00:24:19,995 Dacă doriți să scrie un lucru, puteți scrie acest lucru. 493 00:24:19,995 --> 00:24:23,412 , Dacă doriți să scrie individuale muscaturi, puteți scrie cele. 494 00:24:23,412 --> 00:24:25,620 Și dacă doriți să repeta pe liniile unui fișier 495 00:24:25,620 --> 00:24:29,557 individual, așa cum am făcut într-o piesă de la acum câteva săptămâni, puteți face acest lucru pentru a. 496 00:24:29,557 --> 00:24:32,140 Din nou, cele mai multe obiecte pe care le-ar place să fie în măsură de a repeta peste 497 00:24:32,140 --> 00:24:33,780 suport iterarea peste ele. 498 00:24:33,780 --> 00:24:37,430 În Pitonii, un fișier este, poate, un lucru pe care Aș vrea să itera peste linie cu linie. 499 00:24:37,430 --> 00:24:39,138 Dacă ar fi fost un dicționar de cuvinte și am fost 500 00:24:39,138 --> 00:24:42,181 încercarea de a obține cele individuale cuvinte din, apoi, în cadrul acestei bucle, 501 00:24:42,181 --> 00:24:44,180 line se va fi fiecare cuvânt, la rândul său, iar acest 502 00:24:44,180 --> 00:24:47,880 va fi executat pentru fiecare linie în dosarul până la sfârșitul fișierului. 503 00:24:47,880 --> 00:24:52,280 Și din nou, dacă aș imprimate fiecare line, liniile sunt dotate cu linii noi, 504 00:24:52,280 --> 00:24:54,740 așa că eu sunt setarea la sfârșitul înapoi la un lucru ca asta. 505 00:24:54,740 --> 00:24:56,580 Atunci aș obține conținutul fișierului meu. 506 00:24:56,580 --> 00:25:03,610 507 00:25:03,610 --> 00:25:07,480 >> Al doilea lucru care funcționează în unele moduri, cum ar fi liste, și în unele moduri 508 00:25:07,480 --> 00:25:11,870 ca ceva substanțial mai puternic, 509 00:25:11,870 --> 00:25:16,170 sunt dicționare, care sunt într-adevăr rece de folosit, dar sunt de fapt hash 510 00:25:16,170 --> 00:25:17,670 tabele în deghizare. 511 00:25:17,670 --> 00:25:23,330 Puteți crea unul utilizând exact două personaje, care este minunat 512 00:25:23,330 --> 00:25:25,959 Dacă ați încercat să pună în aplicare tabel hash pentru setul de probleme, 513 00:25:25,959 --> 00:25:27,250 știi de multă durere, care poate fi. 514 00:25:27,250 --> 00:25:29,390 Dar oamenii au facut ea, și-l face atât de bine, 515 00:25:29,390 --> 00:25:32,260 care nu trebuie să mai griji. 516 00:25:32,260 --> 00:25:35,180 >> Apoi, puteți introduce lucruri individuale. 517 00:25:35,180 --> 00:25:38,110 Tables-- Hash sau dictionare nu deosebit de 518 00:25:38,110 --> 00:25:40,240 pasa ce stocarea în ele. 519 00:25:40,240 --> 00:25:44,210 Deci, dacă unele intrări sunt numere, și unele intrări sunt liste, 520 00:25:44,210 --> 00:25:47,360 dacă unele intrări sunt alte dicționare, și unele intrări sunt siruri de caractere, 521 00:25:47,360 --> 00:25:49,930 Python nu multa grija. 522 00:25:49,930 --> 00:25:53,460 >> Din nou, dacă te duci în ea așteaptă un șir și ceea ce te întorci 523 00:25:53,460 --> 00:25:56,269 este o matrice, care e problema ta. 524 00:25:56,269 --> 00:25:58,810 Și poate că e vina oricine Crezut ca a fost a pune lucrurile 525 00:25:58,810 --> 00:26:00,476 în dicționar, poate că ai fost tu. 526 00:26:00,476 --> 00:26:02,350 Dacă asta a fost cineva altfel, sperăm că erau 527 00:26:02,350 --> 00:26:04,520 bine s-au comportat cu privire la ceea ce mergea în dicționar 528 00:26:04,520 --> 00:26:07,420 și nu a lăsat nici un capcane pentru tine de a cădea în. 529 00:26:07,420 --> 00:26:10,890 >> Dar funcțiile standard vor vă dau înapoi lucrurile bine-au comportat. 530 00:26:10,890 --> 00:26:13,500 Deci, ei spun acest întoarce înapoi o dicționar de siruri de caractere. 531 00:26:13,500 --> 00:26:15,860 atunci tot ceea ce merge pentru a ieși din este un șir. 532 00:26:15,860 --> 00:26:20,710 Daca faci parte din acest lucru și excursii te-ai trezit, ei bine, care ar putea fi pe tine. 533 00:26:20,710 --> 00:26:25,542 Python cu siguranță vă oferă suficient frânghie pentru a te închide, dacă doriți. 534 00:26:25,542 --> 00:26:28,250 Acum putem imprima individuale elemente de asta și asta se întoarce 535 00:26:28,250 --> 00:26:29,935 exact ceea ce te-ai astepta. 536 00:26:29,935 --> 00:26:32,810 Exact ceea ce te-ai aștepta, cred, este o expresie care eu sunt, folosind o mulțime, 537 00:26:32,810 --> 00:26:35,070 dar asta e mai mult sau mai mai puțin cum funcționează Python. 538 00:26:35,070 --> 00:26:39,880 Dacă vă întrebați pentru un lucru care nu este aceasta, Python va arunca o eroare 539 00:26:39,880 --> 00:26:43,194 și vă va părăsi din indiferent de program au fost în. 540 00:26:43,194 --> 00:26:45,360 Va imprima efectiv mai multe informații decât faptul că, 541 00:26:45,360 --> 00:26:49,110 acesta va indica Tu-- Va adăugați o linie, și așa. 542 00:26:49,110 --> 00:26:52,190 >> Și, din nou, poate ne-o dorim a repeta peste dicționare 543 00:26:52,190 --> 00:26:54,410 și pentru a găsi toate lucrurile din ea. 544 00:26:54,410 --> 00:26:57,440 Aici suntem iterarea peste două lucruri în același timp. 545 00:26:57,440 --> 00:27:03,040 Și așa vom face cu o cheie, valoare, dar apoi tipări toate acestea. 546 00:27:03,040 --> 00:27:06,300 >> Și dacă am vrut să cast-- dacă am fugit de fapt acest lucru, 547 00:27:06,300 --> 00:27:10,840 ne-ar avea unele probleme, deoarece on-- când ne-am dus cu David, 548 00:27:10,840 --> 00:27:13,920 nu a putut add-- dacă nu am aruncă-l la un șir de caractere în primul rând, 549 00:27:13,920 --> 00:27:17,802 nu am putut adăuga că matrice de siruri de caractere pe un șir. 550 00:27:17,802 --> 00:27:19,760 Dar dacă l-am aruncat într-o string, vom obține ceva 551 00:27:19,760 --> 00:27:22,590 ca aceasta, care este, poate, ceea ce ne-ar plăcea să citească. 552 00:27:22,590 --> 00:27:27,000 553 00:27:27,000 --> 00:27:30,500 >> Și acest lucru este Speller. 554 00:27:30,500 --> 00:27:32,460 Doar citim în lucruri. 555 00:27:32,460 --> 00:27:35,770 Deci, putem citi în cuvinte individuale ca linii. 556 00:27:35,770 --> 00:27:38,240 Am taie ultima lucru, asa ca de colon minus 1 557 00:27:38,240 --> 00:27:41,651 chomps pe ultimul lucru pe care we-- ultimul caracter a unui șir. 558 00:27:41,651 --> 00:27:42,150 Vom spune. 559 00:27:42,150 --> 00:27:44,730 OK, fiecare dintre aceste devine introdus în acest dicționar, 560 00:27:44,730 --> 00:27:45,810 cartografiere la o valoare de 1. 561 00:27:45,810 --> 00:27:48,006 Nu facem deosebit pasă de asta, 562 00:27:48,006 --> 00:27:51,130 dar este doar acolo pentru a spune, oh bine, chestia asta voi pune în dicționar. 563 00:27:51,130 --> 00:27:53,182 Pentru că mai târziu ceea ce suntem de gând să faci este că suntem 564 00:27:53,182 --> 00:27:55,390 va spune, bine, dacă e în dicționar, la toate. 565 00:27:55,390 --> 00:27:57,650 >> Din nou, această verificare pentru membru este de până operare 566 00:27:57,650 --> 00:28:00,940 folosind un complet diferit algoritm decât se va într-o listă, 567 00:28:00,940 --> 00:28:05,709 dar noi numim la fel, ceea ce este o parte din care înveliș de zahăr Python 568 00:28:05,709 --> 00:28:07,250 lucruri, astfel încât acestea sunt mai ușor de utilizat. 569 00:28:07,250 --> 00:28:10,230 Și din nou, am văzut lucruri de genul asta. 570 00:28:10,230 --> 00:28:12,940 Aceasta este de fapt găsi, sau Este exact aceeași sintaxă 571 00:28:12,940 --> 00:28:16,480 ca găsi, dar funcționează pe un complet diferit structura. 572 00:28:16,480 --> 00:28:20,170 Și nu ne pasă deosebit. 573 00:28:20,170 --> 00:28:25,540 Deci acestea sunt lucrurile pe care le li sa cerut să pună în aplicare pentru Speller. 574 00:28:25,540 --> 00:28:29,278 În acest ritm, vom obține mult sau mai puțin toate psets făcut. 575 00:28:29,278 --> 00:28:31,474 >> Audiența: Așa că de fapt doar se intoarce 576 00:28:31,474 --> 00:28:34,852 ca și scris incorect în cazul în care nu se potrivesc ceva în dicționar? 577 00:28:34,852 --> 00:28:36,060 ROSS RHEINGANS-YOO: Da, da. 578 00:28:36,060 --> 00:28:38,964 579 00:28:38,964 --> 00:28:40,880 Și așa, aceasta este o adaptarea unui set problemă 580 00:28:40,880 --> 00:28:43,150 care vă solicită să facă exact acest lucru. 581 00:28:43,150 --> 00:28:46,357 >> Audiența: De ce este linia minus 1 acolo? 582 00:28:46,357 --> 00:28:48,190 ROSS RHEINGANS-YOO: Deci atunci când sunteți iterarea 583 00:28:48,190 --> 00:28:50,300 peste un fișier cere prin linii, liniile 584 00:28:50,300 --> 00:28:53,900 vin cu un nou personaj linie la sfârșitul it-- de 1 minus 585 00:28:53,900 --> 00:28:55,260 este doar pentru a face cumpărături pe cei de pe. 586 00:28:55,260 --> 00:28:59,549 Și aceasta este o deosebit de flexibil mod de indexare în lucruri. 587 00:28:59,549 --> 00:29:01,590 Deci, dacă aveți un șir de caractere, și doriți, și eu sunt 588 00:29:01,590 --> 00:29:05,340 O să încep de la caracter trei și am de gând să merg până la capăt. 589 00:29:05,340 --> 00:29:07,140 3 colon va face asta pentru tine. 590 00:29:07,140 --> 00:29:10,570 Daca esti ca, vreau să înceapă de la început și du-te la ultimul minus 1 591 00:29:10,570 --> 00:29:12,400 caracter, de colon minus 1. 592 00:29:12,400 --> 00:29:14,940 Și dacă ai vrut să mergi la a treia la minus primul, 593 00:29:14,940 --> 00:29:16,570 atunci ai spune de 3 minus 1. 594 00:29:16,570 --> 00:29:19,464 595 00:29:19,464 --> 00:29:22,400 >> În plus, dacă doriți să index în lucruri începând de la spate, 596 00:29:22,400 --> 00:29:24,470 doar indicele cu numere minus. 597 00:29:24,470 --> 00:29:26,980 Și pentru că, în cazul în care C sau, poate, ar exploda 598 00:29:26,980 --> 00:29:31,090 te hrănesc alte memorie nu au avut acces, aud vă pot spune minus 1 599 00:29:31,090 --> 00:29:34,104 înseamnă ultimul, dar 1 de caractere într-un șir. 600 00:29:34,104 --> 00:29:36,950 601 00:29:36,950 --> 00:29:43,590 >> Module sunt version-- sunt Analogii de biblioteci în C 602 00:29:43,590 --> 00:29:45,119 și sunt utile pentru o mulțime de lucruri. 603 00:29:45,119 --> 00:29:46,910 O mulțime de lucruri pe care le-ar dori să facă în Python, 604 00:29:46,910 --> 00:29:50,040 În afară de simplu manipularea variabilelor, 605 00:29:50,040 --> 00:29:52,290 doriți să cârlig în biblioteci mari, cu mai mare 606 00:29:52,290 --> 00:29:55,910 interfețe și mai mult capabilități pentru a interacționa 607 00:29:55,910 --> 00:29:57,195 cu alte părți ale lumii. 608 00:29:57,195 --> 00:29:58,910 sys este unul dintre cei cu un buchet de instrumente 609 00:29:58,910 --> 00:30:01,159 că sunt utile pentru a interacționa cu sistemul în sine 610 00:30:01,159 --> 00:30:05,050 și se va importa ca sys import. 611 00:30:05,050 --> 00:30:07,820 >> Există mai multă documentație din că, pe care le-ar putea merge aici, 612 00:30:07,820 --> 00:30:11,490 sau ați putea găsi pe Google de googling sys Python. 613 00:30:11,490 --> 00:30:12,640 Tastați Enter. 614 00:30:12,640 --> 00:30:15,140 Primul link va fi documentația în Python 2, 615 00:30:15,140 --> 00:30:19,260 al doilea link-ul este de gând să fi Python documentare 3. 616 00:30:19,260 --> 00:30:24,830 >> Și dacă am scris un fișier care se uita ca asta: Daca in mod special, suntem 617 00:30:24,830 --> 00:30:27,910 uita la care operează pe argumente în linia de comandă, 618 00:30:27,910 --> 00:30:30,040 ca și cum am învățat să facem foarte timpuriu în această clasă. 619 00:30:30,040 --> 00:30:32,190 Acest lucru nu este dificil. Puteți ieși argv, 620 00:30:32,190 --> 00:30:34,565 care este unul din acele lucruri care este pus în aplicare de sys. 621 00:30:34,565 --> 00:30:37,210 Nu e built-in la pachet bază, dar, din nou, tu 622 00:30:37,210 --> 00:30:40,080 poate extinde prin importul că funcționalitatea din sys. 623 00:30:40,080 --> 00:30:41,090 Vei numi sys. 624 00:30:41,090 --> 00:30:42,611 tot ceea ce. 625 00:30:42,611 --> 00:30:43,360 Aici e argv. 626 00:30:43,360 --> 00:30:45,193 Nu e de fapt nici o argc în sys, pentru că 627 00:30:45,193 --> 00:30:47,880 poate obține atât de ușor de apel Len. 628 00:30:47,880 --> 00:30:55,390 Am imprimat atunci asta, atunci vom primeste o pasa la echo-args.py nostru terminal. 629 00:30:55,390 --> 00:30:58,360 Ne întoarcem o matrice, care este acest prim argument. 630 00:30:58,360 --> 00:31:02,240 Din nou, acest lucru este argv 0, care este Numele lucru care a fost numit. 631 00:31:02,240 --> 00:31:04,870 Dacă l-am numit cu suplimentare argumente, am obține cele înapoi. 632 00:31:04,870 --> 00:31:07,687 633 00:31:07,687 --> 00:31:09,770 Aceasta este o modalitate de a obține argumente în linia de comandă. 634 00:31:09,770 --> 00:31:13,440 Dacă doriți steaguri unde ai transforma lucruri speciale pe sau suprascrie 635 00:31:13,440 --> 00:31:16,050 un anumit mod implicit, argparse este prietenul tău. 636 00:31:16,050 --> 00:31:21,550 Și din nou veți găsi că on-line la python argparse la Google. 637 00:31:21,550 --> 00:31:24,300 >> Există o serie de utilitate module care vă aflați folosind 638 00:31:24,300 --> 00:31:27,630 și din nou, dacă va petreceti un moment din această limbă importul jsons 639 00:31:27,630 --> 00:31:33,300 pentru citirea în și din JSON fișiere, nu atât de complicat. 640 00:31:33,300 --> 00:31:37,139 Te deschide un fișier, te-a chemat json.load pe acel fișier și te întorci un lucru. 641 00:31:37,139 --> 00:31:37,930 Ce e chestia aia? 642 00:31:37,930 --> 00:31:40,329 Este un obiect JSON. 643 00:31:40,329 --> 00:31:42,370 În cazul în care pe care JSON are matrice, Python are tablouri. 644 00:31:42,370 --> 00:31:44,420 În cazul în care are ca JSON tablouri asociative, de Python 645 00:31:44,420 --> 00:31:48,810 dicționare, siruri de caractere, și numere, și așa mai departe. 646 00:31:48,810 --> 00:31:53,560 Vrei să-și arunce asta, tu deschide un fișier nou, te sun benă, 647 00:31:53,560 --> 00:31:57,590 și sarcini și haldele de du-te și în afară de siruri de caractere. 648 00:31:57,590 --> 00:32:02,120 >> În mod similar, marinate este chemat în esență aceeași interfață. 649 00:32:02,120 --> 00:32:04,740 E ceva mai util dacă te dumping obiecte Python. 650 00:32:04,740 --> 00:32:08,370 Deci, dacă v-ați dorit vreodată să salveze o versiune a stadiului actual 651 00:32:08,370 --> 00:32:11,930 unei variabile pentru un viitor a alerga a programului, 652 00:32:11,930 --> 00:32:14,740 marinate este de Python bibliotecă pentru a face asta. 653 00:32:14,740 --> 00:32:19,140 >> Dacă aveți orice fel de variabilă care poate fi scris în 654 00:32:19,140 --> 00:32:21,990 în cuvinte ca și caractere și bytes-- ca acest dicționar, 655 00:32:21,990 --> 00:32:24,230 am putea scrie, am ar putea scrie ca 656 00:32:24,230 --> 00:32:26,670 ca un obiect JSON, care a fost literalmente aceste caractere. 657 00:32:26,670 --> 00:32:29,420 Și apoi ar fi foarte ușor pentru un om pentru a deschide o up-- deschide 658 00:32:29,420 --> 00:32:30,889 si citit-o. 659 00:32:30,889 --> 00:32:33,180 Dacă nu am deosebit de pasă de oameni citesc asta, 660 00:32:33,180 --> 00:32:38,490 am putea pachet chiar mai eficient în forme care pot fi ulterior despachetat 661 00:32:38,490 --> 00:32:42,860 sau care ar putea fi ulterior umflate. 662 00:32:42,860 --> 00:32:46,740 Și aceasta economisește 80% din spațiu care obiectele ar putea 663 00:32:46,740 --> 00:32:49,390 ia dacă le-a scris pe longhand. 664 00:32:49,390 --> 00:32:52,384 >> Te sun marinate foarte mult aceeasi groapa way--, sarcina, 665 00:32:52,384 --> 00:32:53,800 și apoi te lucrurile înapoi. 666 00:32:53,800 --> 00:32:56,880 Deci, dacă sunteți scris foarte programe scurte Python care 667 00:32:56,880 --> 00:32:59,952 doriți să salvați de stat, și apoi citiți le înapoi mai târziu, lucruri de genul asta 668 00:32:59,952 --> 00:33:00,660 sunt prietenii tăi. 669 00:33:00,660 --> 00:33:02,640 Ca ai putea foarte le arunca cu usurinta ca JSON. 670 00:33:02,640 --> 00:33:04,550 Cele mai multe obiecte Python poate arunca afară JSON 671 00:33:04,550 --> 00:33:11,310 dacă există vreo speranță că structural acestea ar putea fi reprezentate în acest fel. 672 00:33:11,310 --> 00:33:14,410 >> Acestea sunt doar vârful iceberg pe module care sunt utile. 673 00:33:14,410 --> 00:33:19,510 Deci sys, os, multiprocesare, sunt un fel de workhorses de bază pentru lucruri 674 00:33:19,510 --> 00:33:23,120 avem nevoie pentru a interacționa cu os sistemul de fișiere., 675 00:33:23,120 --> 00:33:28,764 ca os.isfile, os.isdirectory, os.makefile, acestea sunt prietenii tăi. 676 00:33:28,764 --> 00:33:30,930 Dacă doriți pentru a interacționa cu un anumit tip de fișier, 677 00:33:30,930 --> 00:33:32,190 JSON, marinate, csv. 678 00:33:32,190 --> 00:33:37,160 Dacă doriți pentru a interacționa cu web de pagini, pentru a obține http urllib 679 00:33:37,160 --> 00:33:41,370 pagini. bs4-- BeautifulSoup-- e un parser minunat pentru html. 680 00:33:41,370 --> 00:33:47,047 Ai rula pe un html și vă obține acest obiect matrice imbricate acum, 681 00:33:47,047 --> 00:33:49,630 pe care le poate parcurge peste Lookin, cu ca în căutarea doar pentru 682 00:33:49,630 --> 00:33:52,380 dacă este, în, care este fantastic. 683 00:33:52,380 --> 00:33:55,920 >> Există o grămadă de pachete pentru running-- 684 00:33:55,920 --> 00:33:57,960 pentru a face mai ales lucruri MATHY. 685 00:33:57,960 --> 00:34:01,790 Deci, dacă doriți să se înmulțească, invertit, transforma matrici, 686 00:34:01,790 --> 00:34:05,690 NumPy este folosit de oameni toate Peste tot în lume pentru că. 687 00:34:05,690 --> 00:34:09,620 scipy este chiar mai util instrumente în această direcție. 688 00:34:09,620 --> 00:34:13,980 masina de învățare sklearn--, procesarea limbajului natural, 689 00:34:13,980 --> 00:34:17,880 super-lucruri utile, devine implementat în Python tot timpul. 690 00:34:17,880 --> 00:34:21,469 >> Și din nou, ia ușor mai mult pentru a write-- rău, 691 00:34:21,469 --> 00:34:26,199 ia puțin mai mult pentru a rula, dar motivul pentru care inginerii reale tind 692 00:34:26,199 --> 00:34:29,900 folosirea Python este pentru că tind să fie blocat pe tine scris codul, mai degrabă 693 00:34:29,900 --> 00:34:32,699 decât computerul care execută codul. 694 00:34:32,699 --> 00:34:35,860 Deci dacă ai de gând să scrie o Programul, care o mulțime de alte persoane 695 00:34:35,860 --> 00:34:37,699 de gând să utilizați pentru totdeauna, ca și Linux, 696 00:34:37,699 --> 00:34:41,900 s-ar putea scrie în C. Dacă ați fost de gând să scrie un motor de calcul, 697 00:34:41,900 --> 00:34:46,124 s-ar putea scrie în Python, dacă este necesar să-l schimbe la fiecare câteva luni. 698 00:34:46,124 --> 00:34:48,540 Unii oameni s-ar scrie în C pentru că sunt așa. 699 00:34:48,540 --> 00:34:51,100 700 00:34:51,100 --> 00:34:54,050 >> Deci am vazut sys import ca o modalitate de a obține lucruri de 701 00:34:54,050 --> 00:34:57,070 de a obține modul în programul tău. 702 00:34:57,070 --> 00:35:00,370 De asemenea, puteți importa ca un pseudonim, dacă doriți. 703 00:35:00,370 --> 00:35:03,660 Din nou, multiprocesare este o durere de a tip de fiecare dată, astfel de import ca mp 704 00:35:03,660 --> 00:35:05,900 și apoi oricând să-l utilizați în program, 705 00:35:05,900 --> 00:35:09,732 vei spune mp.process, sau ceea ce ai. 706 00:35:09,732 --> 00:35:12,670 Dacă doriți import doar un singur lucru, 707 00:35:12,670 --> 00:35:19,450 astfel urllib are un lucru numit cerere, astfel încât să puteți importa doar că. 708 00:35:19,450 --> 00:35:22,610 Mai târziu, nu-l va invoca ca urllib.request, dar la fel de cerere 709 00:35:22,610 --> 00:35:24,590 de la sine. 710 00:35:24,590 --> 00:35:30,110 >> Și puteți importa totul de la un modul, dacă doriți. 711 00:35:30,110 --> 00:35:34,820 Acest lucru nu este uneori o idee, bună acest obicei nu este o idee bună, de fapt. 712 00:35:34,820 --> 00:35:39,080 Pentru că very-- pentru că dacă ceva în care modul are un nume pe care le 713 00:35:39,080 --> 00:35:41,640 a vrut să folosească în altă parte în programul tău, nu poți. 714 00:35:41,640 --> 00:35:44,127 >> Și nu este întotdeauna evident că este cazul. 715 00:35:44,127 --> 00:35:46,460 În scopul de a se asigura că ce faci a fost în condiții de siguranță, 716 00:35:46,460 --> 00:35:47,920 aveți nevoie pentru a deschide modulul și a vedea toate 717 00:35:47,920 --> 00:35:50,295 din numele care ajung în there-- toate funcțiile, 718 00:35:50,295 --> 00:35:53,010 toate variabilele care trăiesc în acel modul, 719 00:35:53,010 --> 00:35:57,040 pentru ca esti aduce toate le în spațiu de nume local. 720 00:35:57,040 --> 00:35:58,680 >> Deci, oamenii fac acest lucru. 721 00:35:58,680 --> 00:36:01,322 Se recomandă în general care nu faci acest lucru. 722 00:36:01,322 --> 00:36:03,280 Dar oamenii fac asta tot timp pentru că sunt 723 00:36:03,280 --> 00:36:05,180 leneș și nu doriți să tastați afară mp. 724 00:36:05,180 --> 00:36:06,310 nimic, niciodată. 725 00:36:06,310 --> 00:36:09,560 726 00:36:09,560 --> 00:36:13,310 >> Toate acestea vorbesc despre module adu-mi în jurul valorii de la o scurtă discuție 727 00:36:13,310 --> 00:36:15,930 de modul în care concepe programe în Python. 728 00:36:15,930 --> 00:36:19,860 Primul pas este de a verifica pentru a vedea dacă oricine altcineva a făcut deja un lucru, 729 00:36:19,860 --> 00:36:22,160 sau făcut 90% din lucru. 730 00:36:22,160 --> 00:36:26,010 Șansele sunt probabil au, și ar trebui să du-te lucru și executați. 731 00:36:26,010 --> 00:36:28,900 Sau scrie un înveliș în jurul ei pentru ao adapta la scopul dumneavoastră. 732 00:36:28,900 --> 00:36:31,250 Este numai după care are nu te-ar atunci că 733 00:36:31,250 --> 00:36:35,529 du-te mai departe și write-- începe gândesc cum v-ar pune acest lucru împreună. 734 00:36:35,529 --> 00:36:37,320 Există o mulțime de lucruri acolo, și asta e 735 00:36:37,320 --> 00:36:39,180 unul dintre cele mai utile lucruri despre Python. 736 00:36:39,180 --> 00:36:40,930 Ca limba este elegant, limba 737 00:36:40,930 --> 00:36:43,800 este ușor de utilizat, dar și pentru că este atât de elegant și ușor de folosit, 738 00:36:43,800 --> 00:36:47,420 de persoane au fost folosind-o pentru o mult timp și nu există o mulțime de lucruri 739 00:36:47,420 --> 00:36:52,520 acolo pe care le puteți valorifica pentru uz propriu. 740 00:36:52,520 --> 00:36:58,457 >> Deci, ultima regulă de Python este, cineva altcineva a scris, probabil, deja 741 00:36:58,457 --> 00:37:00,290 un modul pentru care, altcineva are deja 742 00:37:00,290 --> 00:37:02,980 probabil scris o bibliotecă pentru asta. 743 00:37:02,980 --> 00:37:06,579 Inainte de a incerca sa faci un lucru, uita-te pentru a vedea dacă a fost pusă în aplicare. 744 00:37:06,579 --> 00:37:07,370 Nu e așa de greu. 745 00:37:07,370 --> 00:37:11,960 Toate modulele pe care am pus înainte, cu o singură excepție probabil, 746 00:37:11,960 --> 00:37:15,220 vin pre-instalate în fiecare instalare Python dotare standard. 747 00:37:15,220 --> 00:37:17,769 Și astfel, cu un apel la importa orice altceva, te 748 00:37:17,769 --> 00:37:19,852 au toate această funcționalitate de la vârful degetelor. 749 00:37:19,852 --> 00:37:24,660 750 00:37:24,660 --> 00:37:28,920 >> Început pentru a încheia acest Discuție, există câteva lucruri 751 00:37:28,920 --> 00:37:32,770 care l-am lăsat ca cutiile negre și un fel de glosat de peste, 752 00:37:32,770 --> 00:37:37,217 și nu există câteva alb află că am a declarat că de dragul de onestitate, 753 00:37:37,217 --> 00:37:39,050 Voi cel puțin punct de la aici, chiar dacă nu voi 754 00:37:39,050 --> 00:37:43,980 du-te de super adânc în toate dintre ele si explicatii lor tehnice. 755 00:37:43,980 --> 00:37:46,010 >> O mulțime de lucruri care l-am numit magie 756 00:37:46,010 --> 00:37:48,980 este ceea ce alți oameni ar numi Programare orientata pe obiecte. 757 00:37:48,980 --> 00:37:52,470 Deci, există o mulțime de lucruri-- așa variabile nu sunt foarte adesea 758 00:37:52,470 --> 00:37:56,540 bytes simplu stând în, memorie, dar sunt foarte complicate 759 00:37:56,540 --> 00:38:01,910 obiecte care au internă de stat cu privire la funcțiile și loturi 760 00:38:01,910 --> 00:38:05,570 variabile de ascunse, o mulțime de funcționalitate ascuns, care 761 00:38:05,570 --> 00:38:09,480 vă permite să le transforma în siruri, care vă permite să itera peste ele. 762 00:38:09,480 --> 00:38:12,260 Și dacă sunteți writing-- si motivul că acestea 763 00:38:12,260 --> 00:38:15,710 au toate această funcționalitate bogată se datorează faptului că people-- 764 00:38:15,710 --> 00:38:17,740 arhitecții language-- au plecat 765 00:38:17,740 --> 00:38:22,420 prin și pentru fiecare standard de obiect, pus în funcționalitatea 766 00:38:22,420 --> 00:38:26,970 să spun acest lucru este modul în care acest lucru este cum acest lucru se întâmplă pentru a opera 767 00:38:26,970 --> 00:38:28,470 dacă cineva dorește să itera peste el. 768 00:38:28,470 --> 00:38:31,240 >> Deci tot ceea ce ar putea cineva eventual doresc să repeta peste, 769 00:38:31,240 --> 00:38:34,529 a scris în logica manual de modul în care sunteți 770 00:38:34,529 --> 00:38:36,070 Trebuia să itera peste care un obiect. 771 00:38:36,070 --> 00:38:40,274 Tot ceea ce ați putea dori, eventual, fac obiectul unui dumping într-un șir a scris logica. 772 00:38:40,274 --> 00:38:43,440 Aceasta este funcția care vă sun dacă vrei sa arunce acest lucru la un șir. 773 00:38:43,440 --> 00:38:45,273 Acesta este motivul pentru care puteți apel Len pe lucruri, acest 774 00:38:45,273 --> 00:38:49,900 este motivul pentru care puteți apela în, aceasta este de ce puteți apela în cazul în care în tot pe 775 00:38:49,900 --> 00:38:53,490 care vrea să, pentru că cele toți sunt ducând cu ei, 776 00:38:53,490 --> 00:38:55,380 know-how-ul tehnic pentru a face acest lucru. 777 00:38:55,380 --> 00:38:58,170 778 00:38:58,170 --> 00:39:00,432 >> Acest lucru este ceva ce eu sunt super-nu de gând să meargă în. 779 00:39:00,432 --> 00:39:03,140 Dar pentru lucru în lista subtil este diferit de stil C pentru bucle, 780 00:39:03,140 --> 00:39:06,160 și puteți citi totul despre asta pe Internet dacă sunteți interesat. 781 00:39:06,160 --> 00:39:08,930 Există o parte întunecată pentru toți de acest lucru, pe care am menționat, 782 00:39:08,930 --> 00:39:10,359 astfel încât nu există două lucruri. 783 00:39:10,359 --> 00:39:13,400 Primul este faptul că acest obiect orientat programare adaugă o mulțime de deasupra 784 00:39:13,400 --> 00:39:16,080 la lucruri aleatorii, astfel încât să se încheie folosind mai mult de memorie; 785 00:39:16,080 --> 00:39:18,640 va ajunge folosind un pic mai mult timp decât v-ar altfel. 786 00:39:18,640 --> 00:39:21,300 Other-- dar mai mult parte întunecată insidios la acest 787 00:39:21,300 --> 00:39:24,047 este, în cazul în care lucrurile doar acționeze ca le doriți să 788 00:39:24,047 --> 00:39:27,130 fără a fi nevoie să se gândească super tare despre faptul daca aceasta ar trebui să fie un int 789 00:39:27,130 --> 00:39:29,713 sau dacă ar trebui să existe o float, ar putea fi faptul că aici 790 00:39:29,713 --> 00:39:34,240 pe care o produce un int, dar peste aici cred însă că vor always-- rău, 791 00:39:34,240 --> 00:39:36,555 ar putea fi faptul că aici pe care o produce un flotor, 792 00:39:36,555 --> 00:39:39,430 dar când ajungi la a doua parte de programul tău, te gândești, 793 00:39:39,430 --> 00:39:41,150 oh bine, dar vor dă-mi mereu un int. 794 00:39:41,150 --> 00:39:43,608 Și dacă nu, este posibil pe care le prins undeva, 795 00:39:43,608 --> 00:39:47,600 dacă încercați să utilizați că pentru a indexa într-o matrice, sau ceea ce ai. 796 00:39:47,600 --> 00:39:51,050 >> Deci, una din real lucruri utile despre C este 797 00:39:51,050 --> 00:39:54,219 te forțează să crezi într-adevăr greu înainte de a face any-- 798 00:39:54,219 --> 00:39:56,510 înainte de a vă aduce orice variabilă în existență, ca ceea ce 799 00:39:56,510 --> 00:39:58,764 este tipul acestei variabile. 800 00:39:58,764 --> 00:40:00,680 Si va avea acest tip pentru toate timpurile. 801 00:40:00,680 --> 00:40:02,410 >> Nu este adevarat Python, și, de fapt, tu 802 00:40:02,410 --> 00:40:04,740 can-- daca esti doar un fel de a merge dupa ureche, 803 00:40:04,740 --> 00:40:07,690 și face unele decizii într-un fel într-un singur loc. 804 00:40:07,690 --> 00:40:09,870 și unele decizii unul mod în alt loc 805 00:40:09,870 --> 00:40:12,960 fără a pune destul de lucruri în spatele scenele din alt loc 806 00:40:12,960 --> 00:40:16,170 pentru a prinde lucrurile corect, pot obține unele erori foarte ciudate. 807 00:40:16,170 --> 00:40:19,200 Și programul de funcționare poate ține pentru un timp foarte lung, pentru că este 808 00:40:19,200 --> 00:40:23,200 a face o mulțime de muncă de spus, bine acest lucru ar putea opera în acest fel, 809 00:40:23,200 --> 00:40:25,070 așa că am de gând să ruleze în acest fel. 810 00:40:25,070 --> 00:40:30,300 >> Și, de fapt, faptul că acesta împinge transmite printr-o mulțime de erori mici 811 00:40:30,300 --> 00:40:33,260 înseamnă că, de multe ori, atunci când unei erori de fapt rău este de 812 00:40:33,260 --> 00:40:38,720 și tu nu de fapt, doresc să-l reparați, sfârșește mile away-- programului 813 00:40:38,720 --> 00:40:41,780 sfârșește oprire de mile departare din momentul în care a avut eroarea ta. 814 00:40:41,780 --> 00:40:46,590 Și astfel un lucru pe care am dori programe de făcut, sometimes-- un lucru 815 00:40:46,590 --> 00:40:48,910 pe care am dori programe să facă atunci când suntem depanare 816 00:40:48,910 --> 00:40:54,160 este nu cu voce tare și nu foarte rapid atunci când ceva nu merge bine. 817 00:40:54,160 --> 00:40:55,510 >> Python este foarte rău la asta. 818 00:40:55,510 --> 00:40:58,820 Python este foarte bun la nu lipsa de rulare înainte și 819 00:40:58,820 --> 00:41:00,320 prin lucruri neasteptate. 820 00:41:00,320 --> 00:41:02,820 Deci acest lucru este util atunci când sunteți scris programe mici. 821 00:41:02,820 --> 00:41:07,110 Când ajungi complicat bug-uri uneori 822 00:41:07,110 --> 00:41:09,300 ia o lungă perioadă de timp pentru a le tachineze. 823 00:41:09,300 --> 00:41:12,210 >> Deci există o parte întunecată pentru toți de acest lucru, ca ea pur și simplu funcționează. 824 00:41:12,210 --> 00:41:13,860 Pur si simplu functioneaza ca te-ai aștepta să. 825 00:41:13,860 --> 00:41:18,320 Cu excepția faptului că, atunci când nu, ajungi într-un loc complet diferit 826 00:41:18,320 --> 00:41:21,530 și încercând să dau seama unde a fost că te-ai dus gresit. 827 00:41:21,530 --> 00:41:25,180 >> De colectare a gunoiului este-- astfel un lucru pe care îl vei observa 828 00:41:25,180 --> 00:41:28,110 este că oricare dintre aceste lucruri pe care Am adus în existence-- 829 00:41:28,110 --> 00:41:34,114 aceste tablouri, aceste dicționare, aceste obiecte, acestea nu se files-- eliberat. 830 00:41:34,114 --> 00:41:36,030 Nu a fost nici un apel la liber în oricare dintre această discuție. 831 00:41:36,030 --> 00:41:40,340 Și asta a fost pe partea de C, deoarece nu am intrat în aceste lucruri. 832 00:41:40,340 --> 00:41:42,220 >> Dar, în Python-side, nu este un program gratuit. 833 00:41:42,220 --> 00:41:43,970 Lucrurile devin automat eliberat atunci când Python 834 00:41:43,970 --> 00:41:45,386 crede că nu sunteți în căutarea la ei. 835 00:41:45,386 --> 00:41:49,640 Nu e foarte bine eliberarea lucruri care s-ar putea fi, eventual, mai uita la, 836 00:41:49,640 --> 00:41:54,262 Dar aceasta înseamnă că, dacă ați fost O să aloce acest lucru mare, 837 00:41:54,262 --> 00:41:55,970 si tu esti ca, oh Am terminat cu ea acum, 838 00:41:55,970 --> 00:42:00,360 este dificil să-i spuneți Python că ai terminat cu asta acum. 839 00:42:00,360 --> 00:42:02,986 >> Puteți seta uneori care variabila să fie nici unul, 840 00:42:02,986 --> 00:42:05,110 și apoi în cele din urmă sperăm că colectorul de gunoi 841 00:42:05,110 --> 00:42:06,720 vine prin și curăță-l. 842 00:42:06,720 --> 00:42:10,177 Dar, din nou, nu trebuie au control asupra acestei. 843 00:42:10,177 --> 00:42:13,510 Și unul dintre motivele pentru care oamenii folosesc C Pentru o performanță cu adevărat lucruri critice, 844 00:42:13,510 --> 00:42:16,570 este într-adevăr această capacitate de a știu când se alocă memorie 845 00:42:16,570 --> 00:42:19,369 și atunci când este eliberat, și au o mulțime de control asupra a zis: 846 00:42:19,369 --> 00:42:20,910 Sunt folosind nu mai multă memorie decât am nevoie. 847 00:42:20,910 --> 00:42:23,632 Care este ceva care Python nu este prea mare, la. 848 00:42:23,632 --> 00:42:25,090 Audiența: Pot să te întreb ceva? 849 00:42:25,090 --> 00:42:29,800 Ce ai vrut să spui prin nu cu voce tare? 850 00:42:29,800 --> 00:42:32,070 >> ROSS RHEINGANS-YOO: Deci, dacă ceva se întâmplă în neregulă 851 00:42:32,070 --> 00:42:34,950 și ești în depanare mod, v-ar foarte des 852 00:42:34,950 --> 00:42:38,510 doresc programul tău să-ți spun unde este mers prost, 853 00:42:38,510 --> 00:42:42,360 și nu opri doar liniste rulează. 854 00:42:42,360 --> 00:42:45,085 Dar ai de fapt, pentru a imprima din tot felul de informații despre 855 00:42:45,085 --> 00:42:46,972 ca, aici a fost asta. 856 00:42:46,972 --> 00:42:53,957 Acest lucru sa întâmplat Dacă imprimați un wen-- dacă rulați un server-- web 857 00:42:53,957 --> 00:42:55,390 >> Audiența: [inaudibil] 858 00:42:55,390 --> 00:42:59,800 >> ROSS RHEINGANS-YOO: Da, în cazul în care rulați un server de web, 859 00:42:59,800 --> 00:43:02,680 e, uneori, de rău, dacă sunteți aruncarea întotdeauna erori, 860 00:43:02,680 --> 00:43:04,530 și spui, bine că nu au de lucru. 861 00:43:04,530 --> 00:43:05,300 Am de gând să se oprească. 862 00:43:05,300 --> 00:43:07,680 Mă duc să ignore l și să păstreze merge mai departe. 863 00:43:07,680 --> 00:43:11,260 Pentru că atunci puteți obține în sute de aceste erori și să nu le vadă. 864 00:43:11,260 --> 00:43:13,910 >> Ar fi cu siguranță util în scopuri de depanare 865 00:43:13,910 --> 00:43:20,327 dacă de fiecare dată serverul dvs. de web a făcut o erori, ai avut înregistrările durabile de care. 866 00:43:20,327 --> 00:43:22,910 Poate vrei chiar programul pentru a opri, astfel încât aceste înregistrări 867 00:43:22,910 --> 00:43:25,471 Nu te îngropat sub lucruri. 868 00:43:25,471 --> 00:43:26,970 Dar, din nou, asta e în modul de depanare. 869 00:43:26,970 --> 00:43:31,280 >> De multe ori în modul de producție, lumea este un pic diferit. 870 00:43:31,280 --> 00:43:36,380 Și în scripturi mici care Alerg, în cazul în care lucru pe care i-am spus să fac 871 00:43:36,380 --> 00:43:40,680 ar putea fi doar un pic off de la ceea ce mi-ar place să facă, 872 00:43:40,680 --> 00:43:44,010 apoi un fel de a impinge prin erori este ceva ce s-ar putea dori. 873 00:43:44,010 --> 00:43:49,410 Și în aceste cazuri, cu siguranță Python câștigă într-adevăr începe sale. 874 00:43:49,410 --> 00:43:54,617 >> Ultimul lucru pe care nu am vorbit în asta: că nu am vorbit despre 875 00:43:54,617 --> 00:43:57,700 dar poate fi foarte enervant primul timp aveți unul dintre aceste erori, 876 00:43:57,700 --> 00:44:00,491 iar al doilea și al treilea și al patrulea timp aveți unul aceste erori. 877 00:44:00,491 --> 00:44:03,490 Python, am menționat că utilizează spațiu alb 878 00:44:03,490 --> 00:44:06,700 să-ți spun ce nivel de indentare și ceea ce bloc funcțională sunteți în, 879 00:44:06,700 --> 00:44:08,840 tratează file și spațiile diferit. 880 00:44:08,840 --> 00:44:12,780 Deci, dacă fila peste de patru, și apoi următoarea linie are patru spații, 881 00:44:12,780 --> 00:44:16,910 chiar dacă acestea apar ca aceeași sumă în editorul dvs., 882 00:44:16,910 --> 00:44:20,160 Python nu le trateze la fel. 883 00:44:20,160 --> 00:44:23,610 >> De fapt, Python tratează file și spații, cum ar fi de petrol și de apă. 884 00:44:23,610 --> 00:44:25,050 Acestea sunt lucruri doar diferite. 885 00:44:25,050 --> 00:44:27,264 Nu există nici un anumit lungime care o filă este, 886 00:44:27,264 --> 00:44:30,180 deci nu e ca o filă este egal cu 8 spații, și așa v-ar lua în jurul acestuia 887 00:44:30,180 --> 00:44:30,860 în acest fel. 888 00:44:30,860 --> 00:44:34,110 Ca, atunci când se spune, ceea ce nivel de spatiu alb Sunt la, 889 00:44:34,110 --> 00:44:37,240 este de fapt în căutarea unui model de spații și file. 890 00:44:37,240 --> 00:44:43,050 Și astfel, cel mai bun mod de a face cu acest este de a utiliza întotdeauna spații tot timpul. 891 00:44:43,050 --> 00:44:47,510 >> Și, de fapt, în Cloud9 IDE și IDE CS50, 892 00:44:47,510 --> 00:44:50,610 insertii cheie Tab patru spații în loc 893 00:44:50,610 --> 00:44:53,800 de o filă, care este foarte util. 894 00:44:53,800 --> 00:44:57,074 Deși, din nou, în cazul în care ai scris-o Python program cu file care va fi bine, 895 00:44:57,074 --> 00:44:58,990 e doar daca cineva intrat și a încercat să adăugați 896 00:44:58,990 --> 00:45:02,655 o singură linie pentru programul dvs., care avea patru spații pentru fiecare tab, 897 00:45:02,655 --> 00:45:03,280 ar rupe. 898 00:45:03,280 --> 00:45:07,800 Și ar rupe într-un mod că într-adevăr nu este vizibil. 899 00:45:07,800 --> 00:45:12,390 Deși eroarea reală mesaj care aruncă 900 00:45:12,390 --> 00:45:15,610 are de a face cu noi liniuță nu se așteaptă aici, 901 00:45:15,610 --> 00:45:18,700 sau-- dacă este vorba despre liniuță și se pare că e greșit, 902 00:45:18,700 --> 00:45:22,090 este, probabil, pentru că există o problemă tab-spațiu. 903 00:45:22,090 --> 00:45:24,154 Ei încă mai enervant pentru a depana. 904 00:45:24,154 --> 00:45:26,070 Cel mai mare ansamblu din această discuție, pe care nu am 905 00:45:26,070 --> 00:45:29,740 ajunge la deoarece este într-adevăr o, subiect subtil complicat, 906 00:45:29,740 --> 00:45:34,760 și nu a fost necesară pentru a face orice din lucrurile pe care le-ai făcut până acum, 907 00:45:34,760 --> 00:45:37,140 sunt un concept numit tupluri. 908 00:45:37,140 --> 00:45:41,280 Ei sunt acolo la fel ca tablouri pe care nu le puteți modifica. 909 00:45:41,280 --> 00:45:44,700 Ei se obișnuiesc peste tot, deoarece ele sunt utile pentru o mulțime de lucruri 910 00:45:44,700 --> 00:45:46,300 că nu sunt utile matrice pentru. 911 00:45:46,300 --> 00:45:49,890 >> Dar, dacă doriți pentru a face o matrice, și apoi promit interpretul care 912 00:45:49,890 --> 00:45:53,140 sunt nu de gând să doriți să modificați că thing-- De fapt, dacă doriți să modificați, 913 00:45:53,140 --> 00:45:56,800 veți face una nouă cu noi valorile din it-- acestea sunt tupluri. 914 00:45:56,800 --> 00:45:58,800 Mai degrabă decât producerea le cu paranteze drepte, 915 00:45:58,800 --> 00:46:00,341 le produc cu paranteze rotunde. 916 00:46:00,341 --> 00:46:05,074 De ce ar trebui să utilizați aceste lucruri, este un pic de o întrebare. . 917 00:46:05,074 --> 00:46:06,990 Singurul lucru pe care am să spune despre tine, care este 918 00:46:06,990 --> 00:46:10,680 poate folosi ca tupluri Indicii pentru dicționare. 919 00:46:10,680 --> 00:46:15,010 Nu puteți folosi tablouri ca Indicii pentru dicționare. 920 00:46:15,010 --> 00:46:18,970 Și de ce este, din nou, tehnic și Eu nu am de gând să curgă în ea. 921 00:46:18,970 --> 00:46:23,140 >> PSET că nu am atins în această discuție este pset6. 922 00:46:23,140 --> 00:46:25,837 Deci, aici e cum s- punerea în aplicare a un-- aici e 923 00:46:25,837 --> 00:46:28,140 cum v-ar pune în aplicare pset6 în Python. 924 00:46:28,140 --> 00:46:32,680 Având în vedere Python ciclu de proiectare, primul lucru pe care 925 00:46:32,680 --> 00:46:34,760 ce faci cand esti scriere a programelor este de a verifica 926 00:46:34,760 --> 00:46:38,030 pentru a vedea dacă cineva a făcut-o deja. 927 00:46:38,030 --> 00:46:42,152 >> De fapt, dacă vrei la serve-- Apache 50 928 00:46:42,152 --> 00:46:44,110 face cam asa cu excepția că nu vine 929 00:46:44,110 --> 00:46:45,840 standard de instalat pe mașini Linux. 930 00:46:45,840 --> 00:46:50,490 Python nu, și Python server de simplu http face la fel de bine. 931 00:46:50,490 --> 00:46:54,717 Dacă sunteți vreodată pe o mașină de Linux, sau exteriorul Cloud9 IDE de CS50 932 00:46:54,717 --> 00:46:57,550 și doriți să servească acest curent director la un anumit port 933 00:46:57,550 --> 00:47:04,610 python-m SimpleHTTPServer Portul servește asta. 934 00:47:04,610 --> 00:47:07,190 De asemenea, aveți posibilitatea să importați serverul simplu http 935 00:47:07,190 --> 00:47:11,240 și are o mulțime de funcționalități în cazul în care doriți să-l personalizați, sau modificați, 936 00:47:11,240 --> 00:47:15,860 sau sunt conduse it-- l exploata la rula servicii propriul server. 937 00:47:15,860 --> 00:47:18,032 >> Așa că e Python într-o coajă de nucă. 938 00:47:18,032 --> 00:47:20,280 Și acest lucru a fost CS50. 939 00:47:20,280 --> 00:47:21,980 Multumesc. 940 00:47:21,980 --> 00:47:23,468