1 00:00:00,000 --> 00:00:05,426 2 00:00:05,426 --> 00:00:06,800 ROSS RHEINGANS-Yoo: Saluton, mi estas Ross. 3 00:00:06,800 --> 00:00:08,570 Kaj tiu estas CS50 seminario. 4 00:00:08,570 --> 00:00:12,100 Ĝi prenos vin de programado en C programming en Python. 5 00:00:12,100 --> 00:00:15,120 >> Python estas scripting lingvo. 6 00:00:15,120 --> 00:00:17,870 Ĝi estas plejparte kiel C en sintakso, kvankam iuj 7 00:00:17,870 --> 00:00:20,390 de la teknikaj detaloj de ke sintakso gets ekzekutita 8 00:00:20,390 --> 00:00:22,240 estas iomete malsamaj. 9 00:00:22,240 --> 00:00:24,780 Ĝi estas malpli potenca ol C kelkmaniere. 10 00:00:24,780 --> 00:00:28,130 Ĝi estas malpli esprima por kie ĝuste en via komputilo 11 00:00:28,130 --> 00:00:30,030 memoro gets elspezata, kiom gets elspezata, 12 00:00:30,030 --> 00:00:32,030 kiam alvenas libereco kaj tiuj specoj de aferoj. 13 00:00:32,030 --> 00:00:36,150 >> Ĝi estas pli utila ol C kelkmaniere, ĉar ĝi estas pli facile plani en. 14 00:00:36,150 --> 00:00:39,920 La lingvo estas, al iu personoj, pli intuicia. 15 00:00:39,920 --> 00:00:44,820 Kaj vere, la celo estas por ĝin esti rapida por plani 16 00:00:44,820 --> 00:00:46,490 kaj potenciale malrapidaj por ekzekuti. 17 00:00:46,490 --> 00:00:48,198 >> Nun, se vi pensas pri la kvanto de tempo 18 00:00:48,198 --> 00:00:50,514 vi pasigis en via lasta problemo aro skribo 19 00:00:50,514 --> 00:00:52,430 via kodo kontraŭ la kvanto de tempo vi elspezas 20 00:00:52,430 --> 00:00:55,310 sur via lasta problemo fiksita ekzekuti via kodo, 21 00:00:55,310 --> 00:00:58,300 oni kredus imagi ke la lingvo kiuj estis duoble rapida skribi, 22 00:00:58,300 --> 00:01:02,170 kaj duoble malrapida ekzekuti, povus esti plibonigo super C en kelkaj manieroj. 23 00:01:02,170 --> 00:01:05,730 Certe kiam vi provas skribi malgrandaj programoj fari malgrandajn aĵojn, 24 00:01:05,730 --> 00:01:08,520 Python estas utila lingvo de elekto. 25 00:01:08,520 --> 00:01:10,620 >> Post paso de tiu seminario, mi esperas ke vi 26 00:01:10,620 --> 00:01:12,950 povos fari la elekto en estontaj projektoj 27 00:01:12,950 --> 00:01:17,710 pri kiu lingvo estas ĝentile uzi, ne la ideo 28 00:01:17,710 --> 00:01:21,405 ke unu lingvo estas pli korekti la tutan tempon. 29 00:01:21,405 --> 00:01:23,030 Kelkajn aferojn pri kio la seminario estas. 30 00:01:23,030 --> 00:01:25,910 Tiu seminario ne celas instrui vin Python de nulo. 31 00:01:25,910 --> 00:01:28,310 Python estas tre similaj al C, kaj Mi supozas 32 00:01:28,310 --> 00:01:34,056 ke vi estas CS50 studento, aŭ iu kun simila familiareco kun C. 33 00:01:34,056 --> 00:01:36,700 >> Se vi estas CS50 studento ĉirkaŭ problemo aro 6, 34 00:01:36,700 --> 00:01:38,866 Do vi vidas multe da aferoj en C, Mi donos al vi 35 00:01:38,866 --> 00:01:40,740 la gravaj diferencoj, kaj iuj de la aĵoj 36 00:01:40,740 --> 00:01:42,840 kiuj faras Python malsamajn kaj speciala kaj utila, 37 00:01:42,840 --> 00:01:45,256 sed mi ne tuj iri por kio programlingvo estas 38 00:01:45,256 --> 00:01:46,920 kaj kiel skribi programojn. 39 00:01:46,920 --> 00:01:49,820 Tamen, tiu seminario instruos vi skribi Python programoj 40 00:01:49,820 --> 00:01:52,310 se vi estas unu el tiuj malmultaj grupoj. 41 00:01:52,310 --> 00:01:54,820 Denove ni rigardu kiom vi devus apliki psets-- 42 00:01:54,820 --> 00:01:57,550 kiuj devus esti 1-6 en Python-- kaj provizas ligoj 43 00:01:57,550 --> 00:02:00,322 al oficiala dokumentaro por estonteco referenco. 44 00:02:00,322 --> 00:02:03,030 La alia afero, ke estas gravaj pri kiel ĉi diskuto estas atribuita, 45 00:02:03,030 --> 00:02:05,360 tiu video estos rete, ĝentileco de CS50, 46 00:02:05,360 --> 00:02:07,550 tiel vi devus ne sentas vi bezonas preni notoj. 47 00:02:07,550 --> 00:02:11,180 Vi ĉiam povas iri reen kaj rigardi ĝin poste kiel aludo. 48 00:02:11,180 --> 00:02:13,340 Aldone la diapozitivojn estas havebla nun 49 00:02:13,340 --> 00:02:16,480 ĉe tiu loko, kiu devus preni vin fari Google Doc. 50 00:02:16,480 --> 00:02:21,010 Estas iomete mallongigita versio kion mi montras sur la ekrano. 51 00:02:21,010 --> 00:02:24,850 >> Unu zorgema averto antaŭ Ni salti en, Python 3 52 00:02:24,850 --> 00:02:26,700 estas malsama lingvo de Python 2. 53 00:02:26,700 --> 00:02:30,020 Ili aspektas multe la sama; estas tre malpeza teknikaj diferencoj 54 00:02:30,020 --> 00:02:32,530 kiu kaŭzos programoj skribita en Python 2 55 00:02:32,530 --> 00:02:37,140 ne povi esti ekzekutita en la Python 3 medion. 56 00:02:37,140 --> 00:02:41,969 >> La CS50 aparaton venas kun Python, implicite uzas Python 2. 57 00:02:41,969 --> 00:02:44,010 Vi povas kontroli tion per tajpado en via komandlinio 58 00:02:44,010 --> 00:02:51,310 python --version, kiu devus eligo 2.7.6 sur la aktuala aparato. 59 00:02:51,310 --> 00:02:53,580 Provu Python 3, kiu faras labori en la aparaton, 60 00:02:53,580 --> 00:02:58,500 se Python implicite 2.X.Y, ĉu sur la aparato aŭ sur via propra maŝinoj. 61 00:02:58,500 --> 00:03:03,730 Vi devus anstataŭi Python 3 aùton en tiu diskuto, ke mi skribas Python. 62 00:03:03,730 --> 00:03:05,760 Se via maŝino estas kurante 2 defaŭlte, tipo 63 00:03:05,760 --> 00:03:09,770 Python 3 por povi reale sekvi kune kaj ekzekuti tion. 64 00:03:09,770 --> 00:03:12,280 >> Aldone, mi atentigi vin ĉe oficiala rimedojn nun. 65 00:03:12,280 --> 00:03:16,082 docs.python.org/3--~~V zorgema ke tio estas 3 kaj ne 2-- 66 00:03:16,082 --> 00:03:17,030 havas utilaj referencoj. 67 00:03:17,030 --> 00:03:19,280 Lernilo prenos vin tra multe de la samaj aferoj 68 00:03:19,280 --> 00:03:21,460 ke mi faras nun, krom en teksto formo. 69 00:03:21,460 --> 00:03:23,725 Referenco estas utila kiel Referenco por la lingvo, 70 00:03:23,725 --> 00:03:26,100 kaj la Norma Biblioteko donas vi iuj de la etendoj 71 00:03:26,100 --> 00:03:27,770 kun aldonaj funcionalidad. 72 00:03:27,770 --> 00:03:31,300 >> Do tre unuan Python programo. 73 00:03:31,300 --> 00:03:34,410 Sur la maldekstra havas norma C, sur la dekstra, ni havas Python. 74 00:03:34,410 --> 00:03:36,780 Vi eble rekonis tiun problemon, ĝi estas 75 00:03:36,780 --> 00:03:40,760 unu el la unua problemo aroj en CS50, kaj ĉi tiuj 76 00:03:40,760 --> 00:03:42,677 solvi ĝin uzante la saman solvon. 77 00:03:42,677 --> 00:03:45,010 Nun, la kialo kiun ni estas rigardante tiujn flank 78 00:03:45,010 --> 00:03:46,830 Estas do ni povas rigardi sintaksaj diferencoj. 79 00:03:46,830 --> 00:03:49,580 Unu el la elefantoj en la ĉambro ke vi eble rimarkis dekstra 80 00:03:49,580 --> 00:03:56,350 la batilon, estas ke Python havas nenian ĉefa funkcio kroĉas ĉirkaŭ la kodon. 81 00:03:56,350 --> 00:03:59,170 Do en C, vi skribas faskon de dosierojn, vi ligas ilin kune, 82 00:03:59,170 --> 00:04:02,590 kaj la programo komenciĝas ekzekutinte ĉe tiu afero nomata int main. 83 00:04:02,590 --> 00:04:04,930 >> En Pitono, vi skribos dosieron vi, ekzekuti la dosieron, 84 00:04:04,930 --> 00:04:07,882 la programo komenciĝas ekzekutinte ĉe la supro de la dosiero. 85 00:04:07,882 --> 00:04:09,590 Do ĝi estas tuj komenci ĉe la supro de dosiero 86 00:04:09,590 --> 00:04:11,280 iri malsupren ĝis ĝi trovas ion alian. 87 00:04:11,280 --> 00:04:14,440 Se ĝi trovas funkcio difino, ĝi ne reale ekzekuti tiu kodo, 88 00:04:14,440 --> 00:04:15,940 ĝi simple difini la funkcion. 89 00:04:15,940 --> 00:04:18,459 Sed ĉi tie, kiam la unua programo estas n egalas 10, 90 00:04:18,459 --> 00:04:21,273 la unua kiu ĉi programo faros estas preni tiun valoron de 10 91 00:04:21,273 --> 00:04:24,120 kaj starigis ĝin en variablo nomis n. 92 00:04:24,120 --> 00:04:27,690 >> Parolante pri tiu linio, unu el aliaj things-- sorry-- ĉi 93 00:04:27,690 --> 00:04:31,040 signifas ke C programoj, vi skribas ilin, 94 00:04:31,040 --> 00:04:34,899 vi faros ilin, kiu alpreĝi iuj tin komandojn, 95 00:04:34,899 --> 00:04:36,690 kaj tiam vi devos kuri rezultanta plenumebla. 96 00:04:36,690 --> 00:04:41,030 Python programoj, vi kuras la teksto file-- ĉi mario.py eble 97 00:04:41,030 --> 00:04:44,900 esti tiu dosiero, kiun mi ĵus montris you-- vi kuros ke dosiero 98 00:04:44,900 --> 00:04:47,450 kaj vi ekzekuti, kaj la enhavo de ĝi 99 00:04:47,450 --> 00:04:50,390 lanĉiĝos per la Python interpretisto. 100 00:04:50,390 --> 00:04:52,470 Vi povas fari tion en via IDE. 101 00:04:52,470 --> 00:05:02,260 >> Do se mi havas Saluton dosiero, kiu simple havas ĉi enhavon. 102 00:05:02,260 --> 00:05:04,840 Tiu estas fakte Pitono 2, Ne Python 3, do ne 103 00:05:04,840 --> 00:05:06,600 zorgi pri la sintakso nun. 104 00:05:06,600 --> 00:05:14,230 Sed mi kuros Python, sur hello.py, kaj ĝi kuras. 105 00:05:14,230 --> 00:05:18,890 >> Alia vojo ke mi povas uzi Python kiu Mi ne agos kun tiel en tiu diskuto, 106 00:05:18,890 --> 00:05:21,840 estas kvazaŭ mi ĵus tajpas Python, ĝi drops min en medion kie 107 00:05:21,840 --> 00:05:24,370 Mi povas nutri ĝin Python linion por linio. 108 00:05:24,370 --> 00:05:31,260 Do jen, se mi tajpas en print spaco 'saluton, mondo'. 109 00:05:31,260 --> 00:05:32,360 Tajpu eniri. 110 00:05:32,360 --> 00:05:37,430 Ĝi kraĉis min ke apogi la rezultojn ke individua linio tuj. 111 00:05:37,430 --> 00:05:38,470 >> Jen povas esti utila. 112 00:05:38,470 --> 00:05:40,700 En tiu ĉi prelego mi faros aferojn sur diapozitivoj. 113 00:05:40,700 --> 00:05:43,940 Kaj tiel vi povos sekvi kune aŭ tien, aŭ skribante 114 00:05:43,940 --> 00:05:45,725 fakta dosieroj kaj tiam ekzekuti ilin. 115 00:05:45,725 --> 00:05:48,340 116 00:05:48,340 --> 00:05:50,995 >> Sed, revenanta al tiu kodo, alia aĵo 117 00:05:50,995 --> 00:05:53,230 ke vi havu noticed-- bone, ekzistas 118 00:05:53,230 --> 00:05:55,980 du aĵoj kiuj vi eble rimarkos pri tiuj blokoj. 119 00:05:55,980 --> 00:05:59,280 La unua, prefere pli sekulara, estas ke la Python havas; fina punktokomo. 120 00:05:59,280 --> 00:06:02,630 >> Punktokomojn estas laŭvolaj ĉie kaj sendanĝera ĉie. 121 00:06:02,630 --> 00:06:03,722 Vi povas aldoni ilin. 122 00:06:03,722 --> 00:06:06,430 Ĝi povus igi homojn kiuj skribas Python por vivteni snicker ĉe vi 123 00:06:06,430 --> 00:06:08,860 malantaŭ via dorso, ĉar ili ne estas necesaj. 124 00:06:08,860 --> 00:06:13,497 Ili estas ofte signo de estanta tenita super de C. La diseñadores de la lingvo 125 00:06:13,497 --> 00:06:16,580 sentas ke ĝi estas pli klara cxi tiu vojo kaj ke ĝi ne estas necesa por deklari 126 00:06:16,580 --> 00:06:18,700 ĉiufoje kiam vi finos la linion. 127 00:06:18,700 --> 00:06:21,799 >> Alia stranga afero pri tiu n estas ne havi tipon alfiksis. 128 00:06:21,799 --> 00:06:24,590 Unu el la magio pecoj de Python-- kaj mi tuj vokos ŝin magio, 129 00:06:24,590 --> 00:06:26,381 sed estas tre teknikaj kialoj kial ĝi 130 00:06:26,381 --> 00:06:28,560 works-- unu el la magio pecojn de Python 131 00:06:28,560 --> 00:06:32,700 estas ke variabloj povas pligrandigi aŭ ŝrumpi enhavi ajn datumoj 132 00:06:32,700 --> 00:06:34,530 tipoj vi dezirus ilin. 133 00:06:34,530 --> 00:06:35,580 >> Do tiu estas 10. 134 00:06:35,580 --> 00:06:40,060 Se poste malsupren mi asignita al tiu n 0,5, necesus ke 0.5. 135 00:06:40,060 --> 00:06:43,770 Ne gravas ke temas pri int tie kaj flosi tie, ion kiu uzas ĉi n 136 00:06:43,770 --> 00:06:47,057 havos, pli aŭ malpli, povos chug kune se ĝi alvenas iun el tiuj. 137 00:06:47,057 --> 00:06:49,640 Krom se ekzistas tre reala tial ĝi ne povas uzi la datumojn 138 00:06:49,640 --> 00:06:52,170 tajpu ke n aktuale havas, ĉe kiu punkto ĝi ricevos 139 00:06:52,170 --> 00:06:54,490 wedged kaj ĵeti eraro, kaj tiuj specoj de aferoj. 140 00:06:54,490 --> 00:06:57,050 >> Sed ĉi tie, Pitono ne vere gravas kio 141 00:06:57,050 --> 00:06:59,140 ĝi estas ke mi tuj algluita en ĉi frazo, kiel, vi volas tion? 142 00:06:59,140 --> 00:06:59,840 Tiu afero en tiu? 143 00:06:59,840 --> 00:07:00,640 Jes, ĝi estas speco de afero. 144 00:07:00,640 --> 00:07:01,810 Mi persistos en la fino. 145 00:07:01,810 --> 00:07:04,740 Estos problemo poste, se iu kiu volas uzi tiucele 146 00:07:04,740 --> 00:07:05,710 ne povas pritrakti ĝin. 147 00:07:05,710 --> 00:07:08,500 Tiu estas unu el la gravaj diferencoj inter Python kaj C 148 00:07:08,500 --> 00:07:10,790 ke faciligas skribi tre grandajn C programoj 149 00:07:10,790 --> 00:07:15,120 kaj faciligante skribi tre malgrandaj Python programo. 150 00:07:15,120 --> 00:07:19,564 >> La cxar sintakso estas ne tre malsama en kion ĝi faras. 151 00:07:19,564 --> 00:07:21,480 Ĝi estas iomete malsama en kiel ĝi estas esprimita. 152 00:07:21,480 --> 00:07:25,370 Do temas pri tre, kio konas Pythonic, maniero skribi ĝin. 153 00:07:25,370 --> 00:07:28,969 por vico en gamo (n), tio estas la gamon de nombroj de 0 al n, 154 00:07:28,969 --> 00:07:31,010 inkluziva sur la fundo kaj ekskluziva sur la supro. 155 00:07:31,010 --> 00:07:34,790 Do estas de 0 ĝis n-1, kio estas ĝuste kion la C-kodo estas faranta, 156 00:07:34,790 --> 00:07:38,690 se gxi estas multe pli facile rigardi eble. 157 00:07:38,690 --> 00:07:42,710 >> La koncernajn bloko estas ne ekiris de streĉaj, 158 00:07:42,710 --> 00:07:44,540 anstataŭe ĝi ekiris per ĉi deŝovon. 159 00:07:44,540 --> 00:07:47,580 Do ĉiuj tiuj linioj estas kvar spacoj super al dekstre, 160 00:07:47,580 --> 00:07:50,410 aŭ kiel pri elefanto larĝa. 161 00:07:50,410 --> 00:07:54,570 Kaj tiuj estas tiuj, kiuj estas tuj estos ekzekutita en tiu por. 162 00:07:54,570 --> 00:07:57,020 Se mi fuŝas la deŝovon sur ĉi kaj mi 163 00:07:57,020 --> 00:08:01,420 puŝi ke presaĵo reen al la originalo deŝovon, 164 00:08:01,420 --> 00:08:04,320 ke presaĵo lasos la por buklo. 165 00:08:04,320 --> 00:08:08,560 En kontrasto al C, kie tie mi efektive bezonas movi ke fermitaj krampoj ĉirkaŭ. 166 00:08:08,560 --> 00:08:11,820 >> Tio signifas ke vi ne ricevas eraroj ke salti tra vi ar vi 167 00:08:11,820 --> 00:08:13,580 metis stegon en malĝusta loko. 168 00:08:13,580 --> 00:08:16,460 Ĝi signifas ke vi ricevas eraroj ke salti tra vi ar vi 169 00:08:16,460 --> 00:08:17,620 dentado linion erara. 170 00:08:17,620 --> 00:08:19,290 Do ĝi faras muescas súper zorgema. 171 00:08:19,290 --> 00:08:22,123 Espereble vi esti súper zorgema kun via deŝovon ĉiuokaze, 172 00:08:22,123 --> 00:08:25,300 kaj tiel ĉi tio ne estas ke multe pli de ŝarĝo. 173 00:08:25,300 --> 00:08:28,762 >> Sed baza regulo por Python, kaj ni havas paron de tiuj 174 00:08:28,762 --> 00:08:30,970 ke ni iros tra tra la kurso de la diskuto, 175 00:08:30,970 --> 00:08:33,840 estas provi natura sintakso antaŭ rigardante ion supren. 176 00:08:33,840 --> 00:08:37,610 Do tiu sintakso, por tiun numeron en gamo, 177 00:08:37,610 --> 00:08:41,460 estas tre distingaj en terminoj de stilo. 178 00:08:41,460 --> 00:08:45,260 Multaj aferoj en Python ni vidos prenante tiu formo. 179 00:08:45,260 --> 00:08:47,420 >> Kaj do se vi venis kun nova objekto, kiujn vi 180 00:08:47,420 --> 00:08:50,870 pensi vi devus povi persisti super tiu, en tiu formato, 181 00:08:50,870 --> 00:08:53,720 rezultas probable apogas tiun formaton. 182 00:08:53,720 --> 00:08:56,990 Ni ne tuj iru super profunda en la teknikaj kialoj kial tio estas vera. 183 00:08:56,990 --> 00:09:00,167 >> Sed ĝi estas utila intuicio havi kiam vi alproksimiĝas Python programoj, 184 00:09:00,167 --> 00:09:01,750 ke tiu afero estas nur tuj labori. 185 00:09:01,750 --> 00:09:03,020 Provu ĝin. 186 00:09:03,020 --> 00:09:06,480 Praŝargi la komandlinio Interpretisto, vidi se ĝi funkcias, 187 00:09:06,480 --> 00:09:09,827 pluiru kun aĵoj, antaŭ vi eĉ bezonas malfermi Google kaj diru, 188 00:09:09,827 --> 00:09:11,660 kio estas la sintakson por tiu aparta afero? 189 00:09:11,660 --> 00:09:14,740 Amasoj de Python vi povis malkovri nur provanta. 190 00:09:14,740 --> 00:09:19,005 >> Tiu se estas eĉ pli simila al C tiam la fors estas. 191 00:09:19,005 --> 00:09:20,380 Notu ke ekzistas neniu krampoj. 192 00:09:20,380 --> 00:09:23,490 La krampoj estas, denove, sendanĝera sed nenecesa. 193 00:09:23,490 --> 00:09:25,750 Tie estas dupunkto fine samkiel la por bukloj, 194 00:09:25,750 --> 00:09:30,800 kaj denove, la relativa blokoj estas dentado anstataŭ ekiris per krampoj. 195 00:09:30,800 --> 00:09:33,080 Tiu alia estas je la originala nivelo de deŝovon, 196 00:09:33,080 --> 00:09:35,930 kaj lia rilata bloko dentado denove. 197 00:09:35,930 --> 00:09:41,720 Tiuj laboro ĝuste kiel ili faras en C. 198 00:09:41,720 --> 00:09:44,520 >> Tiu estas efektive tre multe la sama. 199 00:09:44,520 --> 00:09:49,430 Denove, presi perdas unu karakteron for de printf Vi pasas iun kordoj. 200 00:09:49,430 --> 00:09:51,520 Rezultas kordoj povas ĉu esti markita for 201 00:09:51,520 --> 00:09:53,562 per sola citaĵoj aŭ duobla citaĵoj. 202 00:09:53,562 --> 00:09:55,270 Ne estas diferenco, krom ke ene 203 00:09:55,270 --> 00:09:57,722 de sola citaĵoj vi povas uzi citiloj kun forlasi, 204 00:09:57,722 --> 00:09:59,430 prefere ol devi eskapi cxiujn. 205 00:09:59,430 --> 00:10:01,480 Kaj ene de citiloj, vi povas uzi solan citaĵoj kun forlasos 206 00:10:01,480 --> 00:10:02,420 sen devi eskapi ilin. 207 00:10:02,420 --> 00:10:04,253 Se vi volas miksi ili, vi certe povas 208 00:10:04,253 --> 00:10:06,100 rigardi supren rete kiel fari tion. 209 00:10:06,100 --> 00:10:09,581 >> Vi rimarkos ke tien, Mi pasis en fino = tiu afero. 210 00:10:09,581 --> 00:10:12,580 Tiu estas ekzemplo de laŭvola argumento, kiu estas unu el tiuj aferoj 211 00:10:12,580 --> 00:10:14,990 ke Python subtenas ke lasas sufiĉe utila. 212 00:10:14,990 --> 00:10:18,240 Do print reale havas multajn argumentoj, kiuj estas kutime 213 00:10:18,240 --> 00:10:20,140 fiksita al la defaŭltaj valoro, sed tie mi havas 214 00:10:20,140 --> 00:10:21,924 decidis nuligi la nomita fino. 215 00:10:21,924 --> 00:10:24,340 La kialo ke mi devas nuligi ĝin kun malplena kordo 216 00:10:24,340 --> 00:10:26,756 estas ke presaĵo en Python, de Defaŭlte, presas el nova linio 217 00:10:26,756 --> 00:10:28,630 post la afero, kiun vi rakontis ĝin ankaŭ. 218 00:10:28,630 --> 00:10:31,462 >> Do tiu krado estas efektive tuj elprinti hash en nova linio. 219 00:10:31,462 --> 00:10:34,670 Kaj se mi ne volas hash elprinti nova linio post ĝi, tiam mi devas diri 220 00:10:34,670 --> 00:10:35,340 Ne printi unu. 221 00:10:35,340 --> 00:10:37,980 222 00:10:37,980 --> 00:10:43,690 Sed, ankoraŭ tiel, la lasta afero ke tiu programo mankas ke oni estas 223 00:10:43,690 --> 00:10:44,960 oni inkludas en la kolizias. 224 00:10:44,960 --> 00:10:48,120 Presi estas bakita en Python do esence ke ekzistas neniu surskribo aŭ modulo 225 00:10:48,120 --> 00:10:49,869 ke vi bezonas inkluzivi, kvankam se volis 226 00:10:49,869 --> 00:10:52,029 inkluzivi aliajn aferojn en Python skripton, 227 00:10:52,029 --> 00:10:55,320 Mi farus en tre simila format-- la vortoj estas nur iomete malsama. 228 00:10:55,320 --> 00:10:58,840 229 00:10:58,840 --> 00:11:01,360 >> Mi menciis ke ni ne bezonas ĉefaj tie, 230 00:11:01,360 --> 00:11:03,372 ĉar la Python startas plenumiĝi ĉe la supro. 231 00:11:03,372 --> 00:11:05,080 Se mi volis enpaki tiu en funkcio, mi 232 00:11:05,080 --> 00:11:07,667 farus ĝin kiel this-- mi dirus def funkcio nomo, 233 00:11:07,667 --> 00:11:10,500 argumentoj povus iri tien kaj ni vidu kelkajn el tiuj postaj, dupunkto, 234 00:11:10,500 --> 00:11:13,040 kaj tiam denove, tiu tuta ekiris bloko 235 00:11:13,040 --> 00:11:16,810 Estas kio estas la operacia bloki por tiu funkcio. 236 00:11:16,810 --> 00:11:18,560 Do tiu estas la difino de la funkcio. 237 00:11:18,560 --> 00:11:21,587 Kaj estas deklaro, poste malsupren tie, mi povas simple nomas la funkcio. 238 00:11:21,587 --> 00:11:23,920 Kaj denove, la programo interpretisto, komencante ĉe la supro, 239 00:11:23,920 --> 00:11:25,280 vidos ĉi estas la difino. 240 00:11:25,280 --> 00:11:27,960 Ĝi ne agos ĉi ĝis ĝi alvenos, kaj tiam ĝi estas kiel, oh 241 00:11:27,960 --> 00:11:30,860 nun vi jam alvokis ŝin, mi konjektas min devus ekzekuti ĝin. 242 00:11:30,860 --> 00:11:33,850 >> A afero, ke estas tre komuna vidi en Python dosierojn, 243 00:11:33,850 --> 00:11:36,700 speciale Python dosieroj estas liberigitaj al publiko 244 00:11:36,700 --> 00:11:41,650 kaj evoluinta by-- kaj evoluinta kaj subtenis, estas io de tiu formo. 245 00:11:41,650 --> 00:11:44,540 Tiu estas tiel ĉar basically-- Python, vi komenci ĉe la supro 246 00:11:44,540 --> 00:11:50,310 kaj tiam vi ekzekuti malsupren al la fundo, Mi se mi nur havis Mario kriis tie, 247 00:11:50,310 --> 00:11:54,190 tiam ajn mi inkludis tiun dosieron en alia dosiero, ĉar mi volis uzi 248 00:11:54,190 --> 00:11:58,580 estas Mario funkcio, ke aliaj dosier volus ankaŭ havas tiun alvokon al Mario en ĝi. 249 00:11:58,580 --> 00:12:01,000 Kaj kiam mi kuris ke dosiero, ĝi nomos Mario. 250 00:12:01,000 --> 00:12:04,520 >> Do estas eble ke mi nur volas kuri ĉi se mi havas reale 251 00:12:04,520 --> 00:12:07,290 ekzekutitaj tiu aparta dosiero. 252 00:12:07,290 --> 00:12:11,520 Kaj tial mi povas enpaki ĉi en idiomo kiel tiu, kie mi diras, 253 00:12:11,520 --> 00:12:14,820 se la nomo de tiu ekzekuto medio estas ĉefa, 254 00:12:14,820 --> 00:12:16,200 tiam mi volas fari tion. 255 00:12:16,200 --> 00:12:18,710 Alie iu alia povas use-- inkluzivi mian function-- 256 00:12:18,710 --> 00:12:22,510 mian dosieron kaj nur akiri aliro al tiuj funkcioj 257 00:12:22,510 --> 00:12:25,552 sen devi kuri tion ke mi volas ekzekuti en tiu dosiero. 258 00:12:25,552 --> 00:12:27,260 Jen, denove, nedeviga sed tre komunaj. 259 00:12:27,260 --> 00:12:30,450 260 00:12:30,450 --> 00:12:33,840 >> Tiuj aferoj estas entirely-- estas ĝuste la sama inter C kaj Python, 261 00:12:33,840 --> 00:12:35,100 certe en 3. 262 00:12:35,100 --> 00:12:38,610 Mi pensas en 2, la divido operatoro kelkfoje donas vin reen flosas kiam 263 00:12:38,610 --> 00:12:41,450 vi operaciita ints, kaj aŭ vi deziris ke aŭ vi ne faris. 264 00:12:41,450 --> 00:12:44,777 Sed plie, minuso, kaj tempoj labori ĝuste kiel vi atendus, 265 00:12:44,777 --> 00:12:46,110 escepti super iomete pli tipoj. 266 00:12:46,110 --> 00:12:49,740 Do vi povas multobligi flosoj ints, kaj tiuj specoj de aferoj. 267 00:12:49,740 --> 00:12:52,480 >> aro funkcias ĝuste la sama. 268 00:12:52,480 --> 00:12:54,310 Vi povas uzi du egalajn signojn. 269 00:12:54,310 --> 00:12:59,000 inequals-- granda ol, malpli ol, tiajn things-- 270 00:12:59,000 --> 00:13:02,580 havas la signifojn kiuj vi konas ilin. 271 00:13:02,580 --> 00:13:05,770 >> Kie C uzas tiujn operatoroj, Pitono uzas iomete pli Esperanta 272 00:13:05,770 --> 00:13:06,390 legebla ones. 273 00:13:06,390 --> 00:13:09,348 Do anstataŭ du, ampersands, vi laŭvorte tajpu la vorton "kaj", "aŭ," 274 00:13:09,348 --> 00:13:10,740 aŭ ne." 275 00:13:10,740 --> 00:13:13,420 Kiel en via if-- en via kondiĉa deklaroj, 276 00:13:13,420 --> 00:13:17,670 Ni vidis antaŭe ke tiu sintakso en C respondas al tiu sintakso en Python. 277 00:13:17,670 --> 00:13:21,010 Kaj tie ne estas multe malsama tie, krom iomete 278 00:13:21,010 --> 00:13:24,780 de interpunkcio flankojn. 279 00:13:24,780 --> 00:13:28,890 Denove, kie C farus alie se, Python uzas elif, 280 00:13:28,890 --> 00:13:33,960 sed tiuj plejmulte surfaca nivelo ŝanĝojn. 281 00:13:33,960 --> 00:13:38,450 >> Ripeto kiel tiu estas ofte skribitajn en tiu idiomaĵo en Python. 282 00:13:38,450 --> 00:13:42,350 Vi povas fabriki tian afero kun dum buklo sur la ekstera 283 00:13:42,350 --> 00:13:46,387 se vi volas, sed vi certe ne devas. 284 00:13:46,387 --> 00:13:48,970 Kaj denove, se vi volis la elprinti elementoj de tabelo en 285 00:13:48,970 --> 00:13:50,560 vi plenumadu ĝin tiamaniere. 286 00:13:50,560 --> 00:13:52,927 Unu el la amuzaj aferoj pri Pitono kvankam, 287 00:13:52,927 --> 00:13:54,760 estas ke vi ne bezonas uzi tiun paradigmon, 288 00:13:54,760 --> 00:13:57,290 kaj vi povas uzi iomete pli eleganta. 289 00:13:57,290 --> 00:13:59,370 Vi diras por en ARY. 290 00:13:59,370 --> 00:14:02,980 >> Do anstataŭ cxirkauxpelataj kaj alveturante la indicoj, 291 00:14:02,980 --> 00:14:05,630 kaj tiam tirante eksteren individuaj elementoj, 292 00:14:05,630 --> 00:14:08,644 vi diru la por reale nur alveturi la elementoj mem. 293 00:14:08,644 --> 00:14:11,060 Kaj tiam kion ajn vi faras ene povas funkcii rekte 294 00:14:11,060 --> 00:14:13,260 sur la elementoj, kiu estas sufiĉe amuza. 295 00:14:13,260 --> 00:14:16,710 Kaj ni vidos Konsideru ni uzos ke idiomo multfoje 296 00:14:16,710 --> 00:14:18,050 marŝante en kodo. 297 00:14:18,050 --> 00:14:20,091 >> Jen, denove, ekzemplo de iu kiun Mi timige 298 00:14:20,091 --> 00:14:23,300 voki Python magio, kvankam ekzistas tre teknikaj kialoj kial ĝi funkcias. 299 00:14:23,300 --> 00:14:26,340 Kaj estas teknika proprajxon bezonas esti vera pri tabelo por 300 00:14:26,340 --> 00:14:28,340 por ĉi labori malantaŭ la scenoj. 301 00:14:28,340 --> 00:14:31,390 La afero estas ke la plimulto de tipoj kion vi atendus ĉi labori 302 00:14:31,390 --> 00:14:36,610 havis tiun implementado por vi en la enkonstruita en lingvo. 303 00:14:36,610 --> 00:14:40,030 >> Alia afero ke estus agrable se tiu laboris en ĉiu lingvo, 304 00:14:40,030 --> 00:14:45,460 Sed estas iuj kialoj kial ĝi ne povas, presi ĉi ŝnuro fojojn tiun nombron. 305 00:14:45,460 --> 00:14:48,860 Rezultas en Python, ĉi faras ĝuste kion vi ŝatus, kio estas nur amuza, 306 00:14:48,860 --> 00:14:52,840 kaj signifas, ke ni povas reale redukti tiun programon, denove mario.c. 307 00:14:52,840 --> 00:14:57,150 Prefere ol ripetanta multajn, ni povas nur diru, mi volas iun numeron de spacoj, 308 00:14:57,150 --> 00:15:01,120 Mi volas la nombro de hashes, kaj iuj hashes fine. 309 00:15:01,120 --> 00:15:02,640 Kaj denove, ni uzas ĉi tiun formaton. 310 00:15:02,640 --> 00:15:05,340 >> Tie, ni pasante en ŝanĝiĝema tiamaniere. 311 00:15:05,340 --> 00:15:08,050 Denove, ni ne bezonas diri kio tipo de variablo estas: 312 00:15:08,050 --> 00:15:11,322 Kaj la nura tempo ni akiri eraroj estas en tempo de ekzekuto. 313 00:15:11,322 --> 00:15:13,030 Kiam iu provas pasi ion, 314 00:15:13,030 --> 00:15:14,860 ĝi venos en la funkcio nur fajna. 315 00:15:14,860 --> 00:15:18,240 Se ni wedge tie ĉar tio ne estas la afero ke vi povas krei rangoj super, 316 00:15:18,240 --> 00:15:22,100 Mi ricevos runtime eraro tie, kaj mi devos elpurigi tiel. 317 00:15:22,100 --> 00:15:25,050 Sed dume mi ne havas esti tre zorgema pri kio 318 00:15:25,050 --> 00:15:32,800 gets pasis en, tiel longe kiel en la reala ekzekuto ĉion funkcias tre pure. 319 00:15:32,800 --> 00:15:35,080 >> Mi povus eĉ fari tiun iom purigisto 320 00:15:35,080 --> 00:15:41,770 uzante apartan prafunkcio sur kordoj, kiu estas Dekstra Justify. 321 00:15:41,770 --> 00:15:45,250 Tiu estas nur utila funkcio kuŝanta ĉirkaŭ la biblioteko. 322 00:15:45,250 --> 00:15:47,660 Ĝi estas en la dokumentado se vi iros serĉi ĝin. 323 00:15:47,660 --> 00:15:51,650 Kaj mi diras, bone mi tuj havi tiu ŝnuro, kelkaj nombro de hashes, 324 00:15:51,650 --> 00:15:56,390 kaj mi ŝatus dekstra pravigi it-- kuseneto aferon per spacoj esti ĉi longo. 325 00:15:56,390 --> 00:16:00,584 >> Denove, tio estas en la dokumentaro, kiu alportas us-- 326 00:16:00,584 --> 00:16:03,500 Mi vere klaku tra these-- Kiu alportas nin al nia dua regulo 327 00:16:03,500 --> 00:16:06,990 por Python-- norma biblioteko funkcio metodoj estas viaj amikoj. 328 00:16:06,990 --> 00:16:09,880 Kaj ĝi estas ofte valoras via tempo iri serĉanta Mi scivolas 329 00:16:09,880 --> 00:16:12,310 se estas io ke simple faras tion. 330 00:16:12,310 --> 00:16:13,830 Tie probable estas. 331 00:16:13,830 --> 00:16:15,990 Se vi ŝatus kuseneto el ĉeno, se vi estus 332 00:16:15,990 --> 00:16:17,470 ŝatas preni la dorson duono de kordo, se oni kredus 333 00:16:17,470 --> 00:16:20,370 deziras traserĉi kordo, se Vi ŝatus rompi kelkajn aferojn 334 00:16:20,370 --> 00:16:22,420 kune kun kordo kun komoj inter ili, 335 00:16:22,420 --> 00:16:24,640 ekzistas norma biblioteko funkcioj por fari tion. 336 00:16:24,640 --> 00:16:27,190 >> Kaj ĝi faras vian vivon pli facile se vi uzas ilin 337 00:16:27,190 --> 00:16:29,240 anstataŭ elrulanta ĉion sur via propra 338 00:16:29,240 --> 00:16:31,650 en kvin linioj de kodo tie, kvin linioj de kodo tie. 339 00:16:31,650 --> 00:16:34,430 Tio vere komenciĝas je sumigi al reala tempo. 340 00:16:34,430 --> 00:16:37,430 >> Unu el la interesaj aferoj pri kiel ĉi gets vokis. 341 00:16:37,430 --> 00:16:39,980 Vi rimarkos ke estas punkto ion. 342 00:16:39,980 --> 00:16:43,490 Mi havas kelkajn objekto maldekstre kaj tiam mi vokis skalara funkcio. 343 00:16:43,490 --> 00:16:49,780 Tiu estas unu el la paradigmas ke Pitono uzas por kupli metodoj por objektoj. 344 00:16:49,780 --> 00:16:54,410 Ni parolos pri kion tiu estas tre brevemente fine, 345 00:16:54,410 --> 00:16:58,510 sed scias ke ni povas ambaŭ operacii sur aferoj prenante tion dirante skalara 346 00:16:58,510 --> 00:17:01,690 ajn, aŭ nomante funkcio kiu prenas 347 00:17:01,690 --> 00:17:04,339 ke objekto kaj iuj aliaj argumentoj. 348 00:17:04,339 --> 00:17:07,450 >> Tiuj estas ambaŭ manieroj aĵoj get farita en Python. 349 00:17:07,450 --> 00:17:09,780 Kaj ĉu apartan funcionalidad implementada 350 00:17:09,780 --> 00:17:14,230 en ĉi tiu stilo aŭ tiun stilo estas iu kiu vi 351 00:17:14,230 --> 00:17:19,990 devus serĉi ĝis vi ricevas hang por kiu ĝi estas probable fali en. 352 00:17:19,990 --> 00:17:22,660 Ekzistas pli aŭ malpli kohera filozofio malantaŭ Pitono 353 00:17:22,660 --> 00:17:24,930 ke vi sorbas plejparte skribante multon en ĝi. 354 00:17:24,930 --> 00:17:28,190 En iu punkto, kiun el cxi tiuj io estos implementado kiel 355 00:17:28,190 --> 00:17:29,470 iĝas natura. 356 00:17:29,470 --> 00:17:32,420 Por nun, estas nur io vi lernos kiel vi povas diveni, 357 00:17:32,420 --> 00:17:34,140 ĉiu individua afero. 358 00:17:34,140 --> 00:17:36,420 >> Do norma biblioteko funkcioj estas viaj amikoj, 359 00:17:36,420 --> 00:17:41,320 kaj ili lasos vin skribi aferojn cxi tiun multan spacon vere malmulta, 360 00:17:41,320 --> 00:17:42,040 vere elegante. 361 00:17:42,040 --> 00:17:45,670 Kaj jen estas vere probable pli legebla, mi dirus, ke la C programon 362 00:17:45,670 --> 00:17:46,780 tie. 363 00:17:46,780 --> 00:17:49,730 Ne mencii la fakton kiu estas tiel mallonga povos persvadi tutaĵo elefanto 364 00:17:49,730 --> 00:17:52,250 en la spaco kiu ni ŝparis. 365 00:17:52,250 --> 00:17:56,270 >> Alia afero, tiu estas implementación de mario jen punkto C, kiu miaopinie 366 00:17:56,270 --> 00:17:57,890 Estas la plej mallonga vi povas akiri ĝin. 367 00:17:57,890 --> 00:18:00,757 Ĝi ne havas la get int, sed malfacile kodojn la valoro de 10 368 00:18:00,757 --> 00:18:02,090 la sama maniero kiun ĉi tiu faras. 369 00:18:02,090 --> 00:18:06,080 Rezultas ke ĉi tiu horloĝoj en ĉe 84 karakteroj, dum Python estas 64. 370 00:18:06,080 --> 00:18:11,490 Kaj estas senfine pli legebla ol tiu rubo tie. 371 00:18:11,490 --> 00:18:14,610 Do Python estas pli efika en spaco. 372 00:18:14,610 --> 00:18:17,260 Ĝi estas iomete malpli efika en tempo, sed ne por tre. 373 00:18:17,260 --> 00:18:18,890 >> Listoj estas grava afero en Python. 374 00:18:18,890 --> 00:18:21,540 375 00:18:21,540 --> 00:18:24,587 Ni ne vidis ilin, sed ili funkcii multe kiel arrays faros en C. 376 00:18:24,587 --> 00:18:27,170 Do jen, vi povas deklari ilin, vi povas pasi ilin en ion. 377 00:18:27,170 --> 00:18:29,810 Nun kvadratoj tenas tabelo de tiuj aferoj. 378 00:18:29,810 --> 00:18:33,480 Denove, ni ne deklaris kiel tipo, sed se ni iam provas uzi ĝin, 379 00:18:33,480 --> 00:18:36,260 io ke vi atendus por labori sur tabelo de entjeroj 380 00:18:36,260 --> 00:18:40,130 tuj labori sur tabelo de entjeroj. 381 00:18:40,130 --> 00:18:42,030 >> Jen kion vi absolute ne povas 382 00:18:42,030 --> 00:18:47,390 fari en C, ĉar la memoro estas do manojn sur, 383 00:18:47,390 --> 00:18:48,950 sed estas tre facile fari en Python. 384 00:18:48,950 --> 00:18:55,310 Se mi volas mian tabelo esti pli granda, mi povas append elementon al ĝi kaj ĝi estas bone. 385 00:18:55,310 --> 00:18:57,150 >> Kio okazas malantaŭ la scenoj? 386 00:18:57,150 --> 00:18:59,150 La interpretisto iros eksteren kaj ricevi iun memoron, 387 00:18:59,150 --> 00:19:00,860 kaj eble ricevos iomete de kroma memoro, 388 00:19:00,860 --> 00:19:03,090 do mi ne tiel mi ne havas al realloc ĉiufoje. 389 00:19:03,090 --> 00:19:04,897 Sed des pli memoro faras ĝi bezonas? 390 00:19:04,897 --> 00:19:06,730 Tiu ne estas decidoj ke vi devas fari, 391 00:19:06,730 --> 00:19:10,540 tiuj estas decidoj kiuj la interpretisto tuj faros. 392 00:19:10,540 --> 00:19:12,270 >> Tie ni vidas gamo povas preni du argumentojn, 393 00:19:12,270 --> 00:19:16,430 sed ĝi estas ankoraŭ iranta esti inkluziva de la supro do ni aldonas 1 tie. 394 00:19:16,430 --> 00:19:21,970 Tio estas idiomaĵo, kiu estas eĉ pli ruza maniero skribi aĵojn kiel tiu. 395 00:19:21,970 --> 00:19:25,980 Ĝi nomiĝas listo kompreno, kaj tie kion ni dirante 396 00:19:25,980 --> 00:19:32,560 estas mi ŝatus meti en i kvadrato por ĉiu valoro de i en tiu gamo. 397 00:19:32,560 --> 00:19:35,770 Tion en la dekstra povus esti alia tabelo, kaj tion en la maldekstra 398 00:19:35,770 --> 00:19:40,740 esti ajna aparta funkcio kiu portus en i kiel ŝanĝiĝema 399 00:19:40,740 --> 00:19:42,250 kaj donu al mi iun rezulton. 400 00:19:42,250 --> 00:19:43,480 >> Kion mi tuj faros estas, Mi tuj konstrui 401 00:19:43,480 --> 00:19:46,200 tabelo jen ĉio de tion por ĉiu valoro en tiu gamo. 402 00:19:46,200 --> 00:19:48,960 403 00:19:48,960 --> 00:19:55,670 Kaj tiu estas súper eleganta, super mallonga, kaj ĝi estas tre klara kion ĝi signifas. 404 00:19:55,670 --> 00:19:59,190 Jen unu el la things-- ĉi estas pli, 405 00:19:59,190 --> 00:20:03,860 unu of-- tre emblemático de la kialoj ke homoj kiel Python. 406 00:20:03,860 --> 00:20:05,900 Se vi ŝatas programado tiel, tiam Pitono 407 00:20:05,900 --> 00:20:07,830 estas lingvo vi eble ŝatas lerni. 408 00:20:07,830 --> 00:20:10,950 >> Kaj cetere, jen estas teknika kialoj por tio funkcias. 409 00:20:10,950 --> 00:20:14,730 Sed koncerne ni koncernis, Ni pli aŭ malpli ne zorgas. 410 00:20:14,730 --> 00:20:18,500 >> Do se vi volas presi lertaj, iuj de la samaj idiomoj estas utilaj. 411 00:20:18,500 --> 00:20:20,940 Por i en tiu gamo, ni povis indekso tra ĉiuj aferoj 412 00:20:20,940 --> 00:20:23,140 kaj tiam presi ilin ĉiuj ekstere. 413 00:20:23,140 --> 00:20:24,650 Kaj vi vidos len tie. 414 00:20:24,650 --> 00:20:27,150 Se vi iam volis la longo de la tabelo, kiu estas 415 00:20:27,150 --> 00:20:31,150 tre facila en Python, ĝi estas tre malfacila en C. 416 00:20:31,150 --> 00:20:33,720 Tiu estus presi precize kion vi atendus ĝin. 417 00:20:33,720 --> 00:20:36,986 Ni povis ankaŭ, kiel ni vidis antaŭe, persisti super la elementoj en tabelo 418 00:20:36,986 --> 00:20:39,860 rekte, kaj tiam nur paroli pri ilin, anstataŭ havi la indekso 419 00:20:39,860 --> 00:20:43,190 reen en la tabelo ĉiufoje. 420 00:20:43,190 --> 00:20:45,990 >> Kaj tio estas io kion vi povas fari. 421 00:20:45,990 --> 00:20:49,984 Do en C, se vi petos ion kiel tiu, presi dirus, 422 00:20:49,984 --> 00:20:51,150 ke estas tabelo de entjeroj. 423 00:20:51,150 --> 00:20:53,456 Tio sendube ne kordo, mi ne povas presi ĝin. 424 00:20:53,456 --> 00:20:54,830 Python pli aŭ malpli ne zorgas. 425 00:20:54,830 --> 00:20:57,496 Estas kiel, estas tie ke mi povis turni ĉi en al ĉeno? 426 00:20:57,496 --> 00:20:58,500 Jes, mi faros tion. 427 00:20:58,500 --> 00:21:01,600 Kaj tiel mi nur presi ke eksteren. 428 00:21:01,600 --> 00:21:03,640 Tiu signifas ke vi povas fari aferojn like-- tiuj 429 00:21:03,640 --> 00:21:06,530 estas la plejmulto de la malmolaj partoj de ludo dekkvinjara skribita 430 00:21:06,530 --> 00:21:08,930 tre brevemente en Python. 431 00:21:08,930 --> 00:21:11,320 >> Vi vidos ke estas iomete of-- tie 432 00:21:11,320 --> 00:21:14,441 Mi jxetis entjero al ŝnuro, kaj mi devas fari tion permane. 433 00:21:14,441 --> 00:21:16,190 Kaj mi tuj aldonu al alia ŝnuro, 434 00:21:16,190 --> 00:21:17,590 aŭ alie Python gets konfuzita. 435 00:21:17,590 --> 00:21:19,840 Sed ĉu kiam vi estas aldonante ŝnuro al entjero, 436 00:21:19,840 --> 00:21:22,630 mi supozas akiri entjera dorso aŭ kordo reen? 437 00:21:22,630 --> 00:21:24,480 Sed denove, se vi nur voki str sur aĵo, 438 00:21:24,480 --> 00:21:27,240 kaj ĝi povis en ajna ebla mondo estos igita ŝnuro, 439 00:21:27,240 --> 00:21:30,390 vi, eble igita ŝnuro. 440 00:21:30,390 --> 00:21:33,120 >> Ĉi tie, oni vidas uzon de nestitaj listo kompreno 441 00:21:33,120 --> 00:21:38,690 maldekstre, iuj indeksado, kiu Estas precize kiel vi estus kutimiĝis, 442 00:21:38,690 --> 00:21:40,060 kaj iuj presi el aferojn. 443 00:21:40,060 --> 00:21:42,560 Denove, ni difinis iuj funkcioj kaj ni vokos ilin malsupren 444 00:21:42,560 --> 00:21:45,820 en ĉefaj kiam ni reale preni la dosieron. 445 00:21:45,820 --> 00:21:52,004 reveno laboras ĝuste kiel oni kredus atendi de laboranta kun C. Trovu, 446 00:21:52,004 --> 00:21:54,420 ni povas starigi aĵojn kiel this-- jen lerta kompreno 447 00:21:54,420 --> 00:21:59,245 Tie estas asigno al variablo, kaj ni povas reale fari ĝin eĉ pli facila. 448 00:21:59,245 --> 00:22:01,870 Ni ne bezonas skribi serĉo, ĉar enkonstruita Lingvoprezento 449 00:22:01,870 --> 00:22:04,230 estas se tiu afero estas en ĉi tabelo. 450 00:22:04,230 --> 00:22:05,680 Reiri vera, alie reveno falsa. 451 00:22:05,680 --> 00:22:08,830 Do jen la tuto de trovaĵo. 452 00:22:08,830 --> 00:22:12,230 >> La tuteco de la varo engaĝas nomante varon, 453 00:22:12,230 --> 00:22:15,462 kiu is-- ekzistas implementaciones de tiu konstruita en certa C bibliotekoj. 454 00:22:15,462 --> 00:22:17,170 Se vi ŝatus tiun ia dorsdirekte vi 455 00:22:17,170 --> 00:22:20,450 povas nuligi ĉi nedeviga argumento en reverso kun sincera. 456 00:22:20,450 --> 00:22:23,350 457 00:22:23,350 --> 00:22:27,860 Kaj se vi ŝatus ordigi super kordoj, kiuj estas konstruita-je ankaŭ. 458 00:22:27,860 --> 00:22:31,950 >> Do tiu estas ne diri tiuj estas aferoj, kiujn vi devas fari ĉiun tagon, 459 00:22:31,950 --> 00:22:34,280 sed la ideo estas ke ĉi estas la filozofio de Python, 460 00:22:34,280 --> 00:22:37,530 ke cxio tio, kio vi estus ia volas fari estas enkonstruita. 461 00:22:37,530 --> 00:22:42,410 Kaj plej normaj funkcioj, tiel varon, longo, kio ajn, 462 00:22:42,410 --> 00:22:44,380 apogi plej logike saĝa enigo. 463 00:22:44,380 --> 00:22:49,020 Vi nomas len sur tabelo la sama vojo vi nomas len sur ŝnuro. 464 00:22:49,020 --> 00:22:55,785 Vi multiply-- vi ordigi kordoj la sama maniero vi ordigi tabeloj. 465 00:22:55,785 --> 00:22:58,930 466 00:22:58,930 --> 00:23:00,740 >> Plej normaj funkcioj ke homoj konstruu, 467 00:23:00,740 --> 00:23:03,000 kaj plej triaj bibliotekoj kiuj personoj 468 00:23:03,000 --> 00:23:06,980 konstrui, ĉar ili estas emulando la dezajno de la norma biblioteko, 469 00:23:06,980 --> 00:23:10,190 povas tuŝi ĉiun ke vi estas kiel, kial ne ĉi nur labori, 470 00:23:10,190 --> 00:23:12,800 en C. Pli aŭ malpli, ĝi funkcios en Python 471 00:23:12,800 --> 00:23:15,930 ĉar homoj labori malantaŭ figuro el kio io estas kaj tiam funkcii 472 00:23:15,930 --> 00:23:17,510 taŭge sur ĝi. 473 00:23:17,510 --> 00:23:22,760 Do denove, teknikan fonon, sed faras nian vivon pli facila kiel programistoj. 474 00:23:22,760 --> 00:23:26,820 >> Do jen dosiero / S. file / S havas multajn etulojn kiuj faras ĝin komplika, 475 00:23:26,820 --> 00:23:29,890 kaj do ekzistas rimedoj rete, sed en malmultaj vortoj, 476 00:23:29,890 --> 00:23:33,010 vi nomas malfermitaj sur dosiero enoficigas kun aparta tipo. 477 00:23:33,010 --> 00:23:37,640 Do tio estas legi, legi kaj skribi, skribi aŭ append. 478 00:23:37,640 --> 00:23:41,790 Vi legis certan nombron de karakteroj ekstere kaj vi presi tiuj, 479 00:23:41,790 --> 00:23:42,595 vi ricevos Saluton! 480 00:23:42,595 --> 00:23:43,970 Mi volas diri, kiel la dosiero havis Saluton! 481 00:23:43,970 --> 00:23:46,480 En ĝi, voki legi, kaj kion vi reiros 482 00:23:46,480 --> 00:23:49,520 estas ĉeno kiu havas ĉiuj de la resto de la tabelo, 483 00:23:49,520 --> 00:23:50,860 aŭ ĉiuj de la resto de la dosiero. 484 00:23:50,860 --> 00:23:53,805 485 00:23:53,805 --> 00:23:56,055 Se vi nomas relegi, vi estas ĉe la fino de la dosiero, 486 00:23:56,055 --> 00:23:58,138 kaj tiel vi ne ricevas ion kaj tiel vi fermi. 487 00:23:58,138 --> 00:24:02,510 Denove, tio estas .close anstataŭ fermi dosieron, kiel estus en C. 488 00:24:02,510 --> 00:24:07,190 Ĉi tio estas pli aŭ malpli ĉar f estas afero, kaj vi ŝatus pro f fermi. 489 00:24:07,190 --> 00:24:12,092 Sed baza dosiero mi / O estas ne aparte komplika. 490 00:24:12,092 --> 00:24:15,300 Denove, se vi volas malfermi dosieron, se Vi ŝatus legi apartan linion, 491 00:24:15,300 --> 00:24:17,870 vi povas akiri el aparta line-- ekzistas enkonstruita ins por tio. 492 00:24:17,870 --> 00:24:19,995 Se vi ŝatus skribi aferon, vi povas skribi tion. 493 00:24:19,995 --> 00:24:23,412 Se vi ŝatus skribi individuajn pikoj, vi povas skribi tiujn. 494 00:24:23,412 --> 00:24:25,620 Kaj se vi ŝatus persisti super la linioj de dosiero 495 00:24:25,620 --> 00:24:29,557 individue, kiel ni faris en peco de kelkaj semajnoj, vi povas fari tion por. 496 00:24:29,557 --> 00:24:32,140 Denove, plej celoj kiuj oni kredus ŝati povi persisti super 497 00:24:32,140 --> 00:24:33,780 subteno ripetanta super ili. 498 00:24:33,780 --> 00:24:37,430 En Pythons, dosiero estas eble io kion Mi ŝatus iteracii linion por linio. 499 00:24:37,430 --> 00:24:39,138 Se estis vortaron de vortoj kaj mi 500 00:24:39,138 --> 00:24:42,181 provante atingi tiujn individuajn vortoj eksteren, tiam, ene de ĉi maŝo, 501 00:24:42,181 --> 00:24:44,180 linio ĝi tuj estu ĉiu vorto laŭvice kaj ĉi 502 00:24:44,180 --> 00:24:47,880 tuj estos ekzekutita por ĉiu linio en la dosieron ĝis la fino de la dosiero. 503 00:24:47,880 --> 00:24:52,280 Kaj denove, se mi presas el ĉiu linio, la linioj venas kun novaj linioj, 504 00:24:52,280 --> 00:24:54,740 do mi opcio la fino malantaŭo al io tia. 505 00:24:54,740 --> 00:24:56,580 Tiam mi akirus la enhavon de mia dosiero. 506 00:24:56,580 --> 00:25:03,610 507 00:25:03,610 --> 00:25:07,480 >> La dua afero kiu operacias en kelkmaniere kiel lertaj, kaj kelkmaniere 508 00:25:07,480 --> 00:25:11,870 kiel ion substance pli potenca, 509 00:25:11,870 --> 00:25:16,170 estas vortaroj, kiuj estas vere malvarmeta uzi sed estas esence hash 510 00:25:16,170 --> 00:25:17,670 tabloj maskita. 511 00:25:17,670 --> 00:25:23,330 Vi kreas unu uzante precize du gravuloj, kiu estas timinda 512 00:25:23,330 --> 00:25:25,959 se vi klopodis realigi la hash tablo por via problemo aro, 513 00:25:25,959 --> 00:25:27,250 vi scias multe doloro kiu povas esti. 514 00:25:27,250 --> 00:25:29,390 Sed homoj faris ĝin, kaj faris tiel bone, 515 00:25:29,390 --> 00:25:32,260 ke vi ne devas maltrankviliĝu pri tio plu. 516 00:25:32,260 --> 00:25:35,180 >> Tiam vi povas enmeti individuaj aferoj. 517 00:25:35,180 --> 00:25:38,110 Hash tables-- aŭ vortaroj ne aparte 518 00:25:38,110 --> 00:25:40,240 zorgi kion vi stokante en ili. 519 00:25:40,240 --> 00:25:44,210 Do se iuj elementoj estas nombroj, kaj iuj elementoj estas lertaj, 520 00:25:44,210 --> 00:25:47,360 se iuj elementoj estas aliaj vortaroj, kaj kelkaj enskriboj estas ŝnuroj, 521 00:25:47,360 --> 00:25:49,930 Pitono ne multe zorgo. 522 00:25:49,930 --> 00:25:53,460 >> Denove, se vi eniros en gxin atendante kordo kaj kion vi ricevas reen 523 00:25:53,460 --> 00:25:56,269 estas tabelo, kiu estas via problemo. 524 00:25:56,269 --> 00:25:58,810 Kaj eble estas kulpo de kiu ajn pensis ke estis metanta aferojn 525 00:25:58,810 --> 00:26:00,476 en la vortaro, eble tio estis vi. 526 00:26:00,476 --> 00:26:02,350 Se kiu estis iu alie, espereble ili 527 00:26:02,350 --> 00:26:04,520 bonkonduta pri kio tuj en la vortaro 528 00:26:04,520 --> 00:26:07,420 kaj ne lasi neniun enfaliloj cxar vi povus fali. 529 00:26:07,420 --> 00:26:10,890 >> Sed la normo funkcioj donu vin bonkonduta aferojn. 530 00:26:10,890 --> 00:26:13,500 Do ili diras ĉi revenoj malantaŭeniri vortaro de kordoj, 531 00:26:13,500 --> 00:26:15,860 tiam ĉio vi tuj eliri estas ĉeno. 532 00:26:15,860 --> 00:26:20,710 Se vi faras iujn de ĉi kaj vojaĝoj vin, nu, tio eble estos sur vi. 533 00:26:20,710 --> 00:26:25,542 Python certe donas sufiĉan ŝnuro pendi mem, se vi ŝatus. 534 00:26:25,542 --> 00:26:28,250 Nun ni povas presi individuajn elementoj de ĉi tiu kaj revenoj 535 00:26:28,250 --> 00:26:29,935 precize kion vi atendus. 536 00:26:29,935 --> 00:26:32,810 Precize kion vi atendus, mi supozas, Estas frazo kiu mi uzas multe, 537 00:26:32,810 --> 00:26:35,070 sed tio estas pli aŭ malpli kiom Pitono funkcias. 538 00:26:35,070 --> 00:26:39,880 Se vi petos ion kio ne ĝi, Python faros elĵetas eraro 539 00:26:39,880 --> 00:26:43,194 kaj gxi forlasis vin el ajn programo vi estis en. 540 00:26:43,194 --> 00:26:45,360 Ĝi malebligos reale presi pli da informoj ol tio, 541 00:26:45,360 --> 00:26:49,110 gxi devos atentigi you-- ĝi malebligos aldonu linion, kaj do. 542 00:26:49,110 --> 00:26:52,190 >> Kaj, denove, eble ni volas persisti super vortaroj 543 00:26:52,190 --> 00:26:54,410 kaj trovi ĉion en ĝi. 544 00:26:54,410 --> 00:26:57,440 Jen ni estas ripetanta super du aferojn samtempe. 545 00:26:57,440 --> 00:27:03,040 Kaj tiel ni faros ĝin per ŝlosilo, valoro, sed poste presi ĉiuj el tiuj. 546 00:27:03,040 --> 00:27:06,300 >> Kaj se ni volis cast-- se ni efektive kuris ĉi, 547 00:27:06,300 --> 00:27:10,840 ni havus iun problemon ĉar on-- kiam ni eniris kun David, 548 00:27:10,840 --> 00:27:13,920 ĝi povis add-- se ni ne jxetu gxin al ĉeno unua, 549 00:27:13,920 --> 00:27:17,802 ni ne povis aldoni ke tabelo de kordoj sur ŝnuro. 550 00:27:17,802 --> 00:27:19,760 Sed se ni jxetis gxin al kordo, ni akiras ion 551 00:27:19,760 --> 00:27:22,590 kiel tiu, kiu estas eble kion ni ŝatus legi. 552 00:27:22,590 --> 00:27:27,000 553 00:27:27,000 --> 00:27:30,500 >> Kaj tiu estas literumanto. 554 00:27:30,500 --> 00:27:32,460 Ni ĵus legis en aferoj. 555 00:27:32,460 --> 00:27:35,770 Do ni povas legi en individuajn vortojn kiel linioj. 556 00:27:35,770 --> 00:27:38,240 Ni detranĉus la lasta afero, tiel dupunkto minus 1 557 00:27:38,240 --> 00:27:41,651 chomps for la lasta afero ke we-- la lasta karaktero de kordo. 558 00:27:41,651 --> 00:27:42,150 Ni diros. 559 00:27:42,150 --> 00:27:44,730 OK, ĉiu de tiuj ricevas enmetita en tiun vortaro, 560 00:27:44,730 --> 00:27:45,810 mapado al valoro de 1. 561 00:27:45,810 --> 00:27:48,006 Ni ne aparte zorgas pri tio, 562 00:27:48,006 --> 00:27:51,130 sed ĝi estas nur tie por diri, ho bone, tion mi metos en la vortaro. 563 00:27:51,130 --> 00:27:53,182 Ĉar poste, kion ni estas tuj faros estas ni 564 00:27:53,182 --> 00:27:55,390 intencas diri, nu, se ĝi estas en la vortaro ajn. 565 00:27:55,390 --> 00:27:57,650 >> Denove, tiu ĉeko por membreco estas supren mastruma 566 00:27:57,650 --> 00:28:00,940 uzante tute malsaman algoritmo ol ĝi volo en lerta, 567 00:28:00,940 --> 00:28:05,709 sed ni nomas ĝin la sama vojo, kiun Estas iom de tiu Python sukero tavoleto 568 00:28:05,709 --> 00:28:07,250 aferojn tiel ke ili estas pli facile uzi. 569 00:28:07,250 --> 00:28:10,230 Kaj denove, ni vidis aferojn tiel antaŭe. 570 00:28:10,230 --> 00:28:12,940 Tiu estas esence trovi, aŭ ĝi estas precize la sama sintakso 571 00:28:12,940 --> 00:28:16,480 kiel trovi, sed estas funkcianta super tute malsama strukturo. 572 00:28:16,480 --> 00:28:20,170 Kaj ni ne aparte gravas. 573 00:28:20,170 --> 00:28:25,540 Do tiuj estas la aferoj kiujn vi estis demanditaj implementar por literumanto. 574 00:28:25,540 --> 00:28:29,278 Ĉe tiu rapideco, ni tuj ricevas pli aŭ malpli ĉiujn psets farita. 575 00:28:29,278 --> 00:28:31,474 >> Publiko: Por ke resume nur venas reen 576 00:28:31,474 --> 00:28:34,852 kiel malĝuste literumita se ne kongrui io en la vortaro? 577 00:28:34,852 --> 00:28:36,060 ROSS RHEINGANS-Yoo: Jes, jes. 578 00:28:36,060 --> 00:28:38,964 579 00:28:38,964 --> 00:28:40,880 Kaj do, tio estas adapto de problemo aro 580 00:28:40,880 --> 00:28:43,150 kiu petas vin fari ĝuste tion. 581 00:28:43,150 --> 00:28:46,357 >> Publiko: Kial la linio minus 1 tie? 582 00:28:46,357 --> 00:28:48,190 ROSS RHEINGANS-Yoo: Do kiam vi ripetanta 583 00:28:48,190 --> 00:28:50,300 super dosiero petante por linioj, la linioj 584 00:28:50,300 --> 00:28:53,900 veni kun nova linio karaktero fine de it-- la minus 1 585 00:28:53,900 --> 00:28:55,260 Estas ĝuste al butiko tiuj for. 586 00:28:55,260 --> 00:28:59,549 Kaj tio estas precipe flekseblaj maniero de indeksante en aferoj. 587 00:28:59,549 --> 00:29:01,590 Do se vi havas ĉenon, kaj vi ŝatus, bone mi estas 588 00:29:01,590 --> 00:29:05,340 tuj starti je karaktero tri kaj mi tuj iros al la fino. 589 00:29:05,340 --> 00:29:07,140 3 dupunkto faros tion por vi. 590 00:29:07,140 --> 00:29:10,570 Se vi estas kiel mi volas komenci je la komencante kaj iri al la fina minuso 1 591 00:29:10,570 --> 00:29:12,400 karaktero, dupunkto minus 1. 592 00:29:12,400 --> 00:29:14,940 Kaj se vi volas iri el la tria por la minus unua, 593 00:29:14,940 --> 00:29:16,570 tiam vi dirus 3 minus 1. 594 00:29:16,570 --> 00:29:19,464 595 00:29:19,464 --> 00:29:22,400 >> Aldone, se vi volas indekso en aferoj rakontante de la dorso, 596 00:29:22,400 --> 00:29:24,470 vi nur indekso kun minus nombroj. 597 00:29:24,470 --> 00:29:26,980 Kaj ĉar, kie C eksplodus aŭ eble 598 00:29:26,980 --> 00:29:31,090 pasxtos aliaj memoro vi ne havis aliro al, aŭdi vi povas diri minus 1 599 00:29:31,090 --> 00:29:34,104 signifas la lasta sed 1 karaktero en ĉeno. 600 00:29:34,104 --> 00:29:36,950 601 00:29:36,950 --> 00:29:43,590 >> Moduloj estas version-- estas analogaj al bibliotekoj en C 602 00:29:43,590 --> 00:29:45,119 kaj estas utila por multaj aferoj. 603 00:29:45,119 --> 00:29:46,910 Multon oni kredus ŝatas fari en Python, 604 00:29:46,910 --> 00:29:50,040 krom simplaj manipulado de variabloj, 605 00:29:50,040 --> 00:29:52,290 vi volas enganchar en la grandaj bibliotekoj kun pli granda 606 00:29:52,290 --> 00:29:55,910 interfacoj kaj pli kapabloj por interagi 607 00:29:55,910 --> 00:29:57,195 kun aliaj partoj de la mondo. 608 00:29:57,195 --> 00:29:58,910 sys estas unu el tiuj kun aro da iloj 609 00:29:58,910 --> 00:30:01,159 kiuj estas utilaj por interagi kun la sistemo mem 610 00:30:01,159 --> 00:30:05,050 kaj importi ĝin kiel importado sys. 611 00:30:05,050 --> 00:30:07,820 >> Ekzistas pli dokumentado de ke, kion vi povus iri tien, 612 00:30:07,820 --> 00:30:11,490 aŭ vi povus trovi en Google per googling Python sys. 613 00:30:11,490 --> 00:30:12,640 Vi tajpas eniri. 614 00:30:12,640 --> 00:30:15,140 La unua ligo estas iranta esti la dokumentado en Python 2, 615 00:30:15,140 --> 00:30:19,260 la dua ligilo tuj esti la dokumentado Python 3. 616 00:30:19,260 --> 00:30:24,830 >> Kaj se ni skribis el dosieron kiu rigardis kiel this-- Se en aparta, ni estas 617 00:30:24,830 --> 00:30:27,910 rigardante funkcianta sur komandlinio argumentoj, 618 00:30:27,910 --> 00:30:30,040 kiel ni lernis fari tre frue en tiu klaso. 619 00:30:30,040 --> 00:30:32,190 Tio ne malfacila. Vi povas eliri argv, 620 00:30:32,190 --> 00:30:34,565 kiu estas unu el tiuj aferoj kiuj estas implementado por sys. 621 00:30:34,565 --> 00:30:37,210 Ĝi ne estas korpigita al la bazo pako, sed denove, vi 622 00:30:37,210 --> 00:30:40,080 povas plilongigi ĝin per importanta ke funcionalidad de sys. 623 00:30:40,080 --> 00:30:41,090 Vi nomas ĝin sys. 624 00:30:41,090 --> 00:30:42,611 ajn. 625 00:30:42,611 --> 00:30:43,360 Tie ekzistas argv. 626 00:30:43,360 --> 00:30:45,193 Ekzistas fakte neniu argc en sys, ĉar vi 627 00:30:45,193 --> 00:30:47,880 povas akiri ĝin tiel facile nomante len. 628 00:30:47,880 --> 00:30:55,390 Ni tiam presita ke ekstere, tiam ni kuris sur nia fina stacio echo-args.py. 629 00:30:55,390 --> 00:30:58,360 Ni reiros tabelo, kiu Estas ĉi tiu unua argumento. 630 00:30:58,360 --> 00:31:02,240 Denove, tio estas argv 0, kio estas la nomo de la afero kiu got nomis. 631 00:31:02,240 --> 00:31:04,870 Se ni nomas ĝin kun aldona argumentoj, ni akirus tiujn reen. 632 00:31:04,870 --> 00:31:07,687 633 00:31:07,687 --> 00:31:09,770 Tio estas unu maniero akiri komandliniajn argumentojn. 634 00:31:09,770 --> 00:31:13,440 Se vi volas flagoj kie vi turnas aparta aferojn sur aŭ override 635 00:31:13,440 --> 00:31:16,050 aparta defaŭlta, argparse estas via amiko. 636 00:31:16,050 --> 00:31:21,550 Kaj cetere vi trovas ke enreta ĉe python argparse ĉe Google. 637 00:31:21,550 --> 00:31:24,300 >> Estas paro de utileco moduloj ke vi trovas vin uzanta 638 00:31:24,300 --> 00:31:27,630 kaj denove, se vi elspezas ajnan tempon de tiu lingvo importanta jsons 639 00:31:27,630 --> 00:31:33,300 por legi en kaj el JSON dosieroj, ne ke komplikaj. 640 00:31:33,300 --> 00:31:37,139 Vi malfermu dosieron, nomita json.load en tiu dosiero kaj vi revenas aferon. 641 00:31:37,139 --> 00:31:37,930 Kio estas tiu aĵo? 642 00:31:37,930 --> 00:31:40,329 Ĝi estas JSON objekto. 643 00:31:40,329 --> 00:31:42,370 Kie tiu JSON havas tabelo, la Python havas arrays. 644 00:31:42,370 --> 00:31:44,420 Kie tiu JSON havas asociaj tabeloj, Python 645 00:31:44,420 --> 00:31:48,810 vortaroj, kordoj, kaj nombroj, kaj tiel plu. 646 00:31:48,810 --> 00:31:53,560 Vi volas renversi ke ekstere, vi malfermi novan dosieron, vi nomas Escorial, 647 00:31:53,560 --> 00:31:57,590 kaj ŝarĝoj kaj forĵetas al eniros kaj eliros el kordoj. 648 00:31:57,590 --> 00:32:02,120 >> Simile, piklaĵo gets vokis en esence la sama interfaco. 649 00:32:02,120 --> 00:32:04,740 Ĝi estas iomete pli utila se vi dumpingo Python objektoj. 650 00:32:04,740 --> 00:32:08,370 Do se vi iam volis savi version de la aktuala stato 651 00:32:08,370 --> 00:32:11,930 de variablo por estonteco kuri vian programon, 652 00:32:11,930 --> 00:32:14,740 pekli estas Python biblioteko por fari tion. 653 00:32:14,740 --> 00:32:19,140 >> Se vi havas ia ajn variablo kiu povas esti skribita ekster 654 00:32:19,140 --> 00:32:21,990 en kiel vortoj kaj karakteroj kaj bitokoj kiel tiu vortaro, 655 00:32:21,990 --> 00:32:24,230 ni povis noti, ni skribu ilin kiel 656 00:32:24,230 --> 00:32:26,670 kiel JSON objekto, kiu estis laŭvorte tiujn karakterojn. 657 00:32:26,670 --> 00:32:29,420 Kaj tiam estus tre facila por homa malfermi ĝin up-- malfermiĝi 658 00:32:29,420 --> 00:32:30,889 kaj legis ĝin. 659 00:32:30,889 --> 00:32:33,180 Se ni ne aparte zorgi pri homoj legas ĝin, 660 00:32:33,180 --> 00:32:38,490 ni povis paki eĉ pli kompetente en formoj kiuj povus poste esti malpakis 661 00:32:38,490 --> 00:32:42,860 aŭ kiu povus poste esti ŝveligitaj. 662 00:32:42,860 --> 00:32:46,740 Kaj ĉi savas 80% de la spaco kiu via objektoj povus 663 00:32:46,740 --> 00:32:49,390 preni se vi skribis ilin longhand. 664 00:32:49,390 --> 00:32:52,384 >> Vi nomas piklaĵo tre multe la sama bare Escorial, ŝarĝo, 665 00:32:52,384 --> 00:32:53,800 kaj tiam vi ricevos vian aferojn reen. 666 00:32:53,800 --> 00:32:56,880 Do se vi skribas tre mallonga Python programoj kiuj 667 00:32:56,880 --> 00:32:59,952 volas savi stato, kaj tiam legi ilin reen poste, aferoj tiel 668 00:32:59,952 --> 00:33:00,660 estas viaj amikoj. 669 00:33:00,660 --> 00:33:02,640 Ke vi povis tre facile forĵeti ilin kiel JSON. 670 00:33:02,640 --> 00:33:04,550 Plej Python objektoj povas renversi la JSON 671 00:33:04,550 --> 00:33:11,310 se estas neniu espero, ke strukture ili povus esti prezentita tiel. 672 00:33:11,310 --> 00:33:14,410 >> Tiuj estas nur la pinto de la glacimonto sur moduloj, kiuj estas utilaj. 673 00:33:14,410 --> 00:33:19,510 Do sys, os, multiprocesamiento, estas ia baza workhorses por aĵoj 674 00:33:19,510 --> 00:33:23,120 ni devas interagi kun la dosiersistemon os., 675 00:33:23,120 --> 00:33:28,764 kiel os.isfile, os.isdirectory, os.makefile, tiuj estas viaj amikoj. 676 00:33:28,764 --> 00:33:30,930 Se vi volas interagi kun aparta dosiertipo, 677 00:33:30,930 --> 00:33:32,190 JSON, piklaĵo, CSV. 678 00:33:32,190 --> 00:33:37,160 Se vi volas interagi kun ttt paĝoj, la urllib por interesigi http 679 00:33:37,160 --> 00:33:41,370 paĝoj. bs4-- BeautifulSoup-- Estas mirinda parser por html. 680 00:33:41,370 --> 00:33:47,047 Vi kuri ĝin sur html kaj vi ricevas tiun nestitaj tabelo objekto nun, 681 00:33:47,047 --> 00:33:49,630 kiun vi povas kruci super Lookin, kun kiel nur serĉanta 682 00:33:49,630 --> 00:33:52,380 se, estas, en, kiu estas mirinda. 683 00:33:52,380 --> 00:33:55,920 >> Ekzistas aro da pakaĵojn por running-- 684 00:33:55,920 --> 00:33:57,960 por fari aparte mathy aferojn. 685 00:33:57,960 --> 00:34:01,790 Do se vi volas multipliki, inversigi, transformas matricoj, 686 00:34:01,790 --> 00:34:05,690 numpy estas uzita de personoj ĉiuj trans la mondo pro tio. 687 00:34:05,690 --> 00:34:09,620 scipy estas eĉ pli utilaj iloj en tiu direkto. 688 00:34:09,620 --> 00:34:13,980 sklearn-- maŝino lernado, natura lingvo prilaborado, 689 00:34:13,980 --> 00:34:17,880 súper utilaj aĵoj, ricevas implementado en Python tutan tempon. 690 00:34:17,880 --> 00:34:21,469 >> Kaj denove, prenas iomete plu al write-- bedaŭras, 691 00:34:21,469 --> 00:34:26,199 prenas iomete pli longe kuri, sed la kialo ke reala inĝenieroj emas 692 00:34:26,199 --> 00:34:29,900 uzo Python estas ĉar vi tendencas esti blokita sur vin skribi la kodon, prefere 693 00:34:29,900 --> 00:34:32,699 ol via komputilo kuri la kodon. 694 00:34:32,699 --> 00:34:35,860 Do se vi iras por skribi programo, kiun multaj aliaj personoj 695 00:34:35,860 --> 00:34:37,699 tuj uzos eterne, kiel Linukso, vi 696 00:34:37,699 --> 00:34:41,900 povus skribi ĝin en C. Se vi estus tuj skribos kalkulado motoron, 697 00:34:41,900 --> 00:34:46,124 vi povus skribi en Python se vi bezonas ŝanĝi ĝin ĉiu paro monatoj. 698 00:34:46,124 --> 00:34:48,540 Iuj homoj devus skribi ĝin en C ĉar ili estas tiel. 699 00:34:48,540 --> 00:34:51,100 700 00:34:51,100 --> 00:34:54,050 >> Do ni vidis importado sys kiel maniero de prenanta aferojn 701 00:34:54,050 --> 00:34:57,070 akiri modulon en via programo. 702 00:34:57,070 --> 00:35:00,370 Vi povas ankaŭ importi ĝin alnomo, se vi ŝatus. 703 00:35:00,370 --> 00:35:03,660 Denove multiprocesamiento estas doloro tajpi ĉiun fojon, tiel importi kiel mp 704 00:35:03,660 --> 00:35:05,900 kaj tiam anytime vi uzi gxin en la programon, 705 00:35:05,900 --> 00:35:09,732 vi diros mp.process, aŭ kio havas vin. 706 00:35:09,732 --> 00:35:12,670 Se vi ŝatus importado nur ununura afero, 707 00:35:12,670 --> 00:35:19,450 tiel urllib havas ion nomita peto, do vi povas simple importi ke. 708 00:35:19,450 --> 00:35:22,610 Poste, vi ne alpreĝi ĝin urllib.request, sed nur kiel peto 709 00:35:22,610 --> 00:35:24,590 per sin. 710 00:35:24,590 --> 00:35:30,110 >> Kaj vi povas importi ĉiun de modulo se vi ŝatus. 711 00:35:30,110 --> 00:35:34,820 Tiu estas foje ne bona idea-- Tio kutime ne estas bona ideo, fakte. 712 00:35:34,820 --> 00:35:39,080 Ĉar vi very-- ĉar se io en tiu modulo havas nomon ke vi 713 00:35:39,080 --> 00:35:41,640 volis uzi aliloke en via programo, vi ne povas. 714 00:35:41,640 --> 00:35:44,127 >> Kaj ne estas ĉiam evidenta ke tio estas la kazo. 715 00:35:44,127 --> 00:35:46,460 Por certigi ke kion vi faris estis sekura, 716 00:35:46,460 --> 00:35:47,920 vi devas malfermi la modulo kaj vidi ĉiujn 717 00:35:47,920 --> 00:35:50,295 de la nomoj kiuj finas en there-- ĉiujn la funkcioj, 718 00:35:50,295 --> 00:35:53,010 ĉiuj variabloj kiuj vivas en tiu modulo, 719 00:35:53,010 --> 00:35:57,040 ĉar vi estas alportanta ĉiujn ilin en via loka nomspaco. 720 00:35:57,040 --> 00:35:58,680 >> Do homoj faras tion. 721 00:35:58,680 --> 00:36:01,322 Ĝi estas ĝenerale rekomendita ke vi ne faru tion. 722 00:36:01,322 --> 00:36:03,280 Sed homoj faras ĉi ĉiuj la tempo ĉar ili estas 723 00:36:03,280 --> 00:36:05,180 maldiligenta kaj ne volas tajpi el mp. 724 00:36:05,180 --> 00:36:06,310 io, iam. 725 00:36:06,310 --> 00:36:09,560 726 00:36:09,560 --> 00:36:13,310 >> Ĉiuj ĉi diskuto pri moduloj elirigu min ĉirkaŭe al mallonga diskuto 727 00:36:13,310 --> 00:36:15,930 sur kiom vi desegni programojn en Python. 728 00:36:15,930 --> 00:36:19,860 La unua paŝo estas kontroli ĉu ajnulo jam faris la aferon, 729 00:36:19,860 --> 00:36:22,160 aŭ faris 90% de la afero. 730 00:36:22,160 --> 00:36:26,010 Ŝancoj estas ili probable havas, kaj vi iru akiri sian aferon kaj kuri tion. 731 00:36:26,010 --> 00:36:28,900 Aŭ skribi wrapper ĉirkaŭ ĝi adapti ĝin al via celo. 732 00:36:28,900 --> 00:36:31,250 Ĝi estas nur post tio havas maltrafis ke vi estus tiam 733 00:36:31,250 --> 00:36:35,529 iru kaj write-- komenci pensanta pri kiamaniere vi metus ĉi aferon kune. 734 00:36:35,529 --> 00:36:37,320 Ekzistas multaj aĵoj tie, kaj tio estas 735 00:36:37,320 --> 00:36:39,180 unu el la plej utilaj aferojn pri Python. 736 00:36:39,180 --> 00:36:40,930 Kiel la lingvo estas eleganta, la lingvo 737 00:36:40,930 --> 00:36:43,800 estas facile uzi, sed ankaŭ ĉar estas tiel eleganta kaj facile uzeblan, 738 00:36:43,800 --> 00:36:47,420 personoj estis uzante gxin kiel longa tempo kaj ekzistas multe da taskoj 739 00:36:47,420 --> 00:36:52,520 tie ke vi povas jungi por via propra uzo. 740 00:36:52,520 --> 00:36:58,457 >> Do lasta regulo de Python estas, iu intertempe jam probable verkita 741 00:36:58,457 --> 00:37:00,290 modulon por tio, iu alia havas jam 742 00:37:00,290 --> 00:37:02,980 verŝajne skribita biblioteko por tio. 743 00:37:02,980 --> 00:37:06,579 Antaŭ vi provu fari ion, rigardi ĉu ĝi estas realigita. 744 00:37:06,579 --> 00:37:07,370 Ĝi ne estas tiel malfacila. 745 00:37:07,370 --> 00:37:11,960 Ĉiuj de la moduloj kiuj mi arangxis antaŭe, kun eble unu escepto, 746 00:37:11,960 --> 00:37:15,220 venas pre-instalita en ĉiu norma Python instalado. 747 00:37:15,220 --> 00:37:17,769 Kaj tial kun alvoko al importi ajn, vi 748 00:37:17,769 --> 00:37:19,852 havas ĉiuj de tiu funcionalidad ĉemane. 749 00:37:19,852 --> 00:37:24,660 750 00:37:24,660 --> 00:37:28,920 >> Komencante por envolver supren ĉi diskuto, ekzistas malmultaj aferoj 751 00:37:28,920 --> 00:37:32,770 ke mi lasis kiel nigraj skatoloj kaj ia glosada super, 752 00:37:32,770 --> 00:37:37,217 kaj estas kelkaj blankaj kuŝas ke mi havas sciigis ke pro honesteco, 753 00:37:37,217 --> 00:37:39,050 Mi timige almenaŭ punkto je tie, eĉ se mi ne 754 00:37:39,050 --> 00:37:43,980 iri súper profunde en ĉiuj el ili kaj ilia teknika klarigoj. 755 00:37:43,980 --> 00:37:46,010 >> Multa la aferoj ke mi nomas magio 756 00:37:46,010 --> 00:37:48,980 kion aliaj homoj vokus objektema programado. 757 00:37:48,980 --> 00:37:52,470 Do estas multaj things-- tiel variabloj estas tre ofte ne 758 00:37:52,470 --> 00:37:56,540 simpla bajtoj sidis, memoro, sed estas tre komplika 759 00:37:56,540 --> 00:38:01,910 objektoj kiuj havas internajn stato pri funkcioj kaj terenoj 760 00:38:01,910 --> 00:38:05,570 de kaŝitaj variabloj, Multa kaŝita funcionalidad, kiu 761 00:38:05,570 --> 00:38:09,480 Lasas vin turni ilin en kordoj, kiu permesas persisti super ili. 762 00:38:09,480 --> 00:38:12,260 Kaj se vi writing-- kaj la kialo ke ili 763 00:38:12,260 --> 00:38:15,710 havas ĉiujn ĉi riĉaj funcionalidad Estas ĉar la people-- 764 00:38:15,710 --> 00:38:17,740 la arkitektoj de la language-- irinta 765 00:38:17,740 --> 00:38:22,420 per kaj por ĉiu normo objekto, metas en la funkciaro 766 00:38:22,420 --> 00:38:26,970 diri jen kiel tio estas kiamaniere tiu tuj funkcii 767 00:38:26,970 --> 00:38:28,470 se iu volas persisti super ĝi. 768 00:38:28,470 --> 00:38:31,240 >> Do ĉio ke iu povus eble volas persisti super, 769 00:38:31,240 --> 00:38:34,529 estas logiko skribita en permane sur kiel vi estas 770 00:38:34,529 --> 00:38:36,070 supozis persisti super tiu objekto. 771 00:38:36,070 --> 00:38:40,274 Ĉio ke vi povus eble volas forĵetitaj en ŝnuro havas logikon skribita. 772 00:38:40,274 --> 00:38:43,440 Jen la funkcio kiun vi nomas se vi volas renversi ĉi ekstere al ĉeno. 773 00:38:43,440 --> 00:38:45,273 Jen kial vi ne povas voki len sur aĵoj, tiu 774 00:38:45,273 --> 00:38:49,900 Tial vi povas peti en, tiu estas kial vi povas nomi, se en ĉio sur 775 00:38:49,900 --> 00:38:53,490 ke vi dezirus, ĉar tiuj ĉiuj estas portantinoj kun ili, 776 00:38:53,490 --> 00:38:55,380 la teknikan scii-kiel fari tion. 777 00:38:55,380 --> 00:38:58,170 778 00:38:58,170 --> 00:39:00,432 >> Tiu estas iu kiu mi estas súper ne tuj eniros en. 779 00:39:00,432 --> 00:39:03,140 Sed por io en listo estas subtile malsama C stilo por bukloj, 780 00:39:03,140 --> 00:39:06,160 kaj vi povas legi ĉion pri tiu sur la interreto, se vi estas interesata. 781 00:39:06,160 --> 00:39:08,930 Estas malluma flanko al ĉiuj de tiu, kiun mi menciis, 782 00:39:08,930 --> 00:39:10,359 do ekzistas du aferojn. 783 00:39:10,359 --> 00:39:13,400 La unua estas ke tiu objektema programado aldonas multan superkape 784 00:39:13,400 --> 00:39:16,080 al hazarda aferojn, do vi finas uzante multe pli memoro; 785 00:39:16,080 --> 00:39:18,640 Vi fini uzante malgrandan pli tempo ol vi farus alie. 786 00:39:18,640 --> 00:39:21,300 La alia lando sed la pli insida malluma flanko al tiu 787 00:39:21,300 --> 00:39:24,047 estas, se aferoj nur agi kiel vi volas ilin 788 00:39:24,047 --> 00:39:27,130 sen vi devi pensi súper malfacile pri ĉu tio devus esti int 789 00:39:27,130 --> 00:39:29,713 aŭ ĉu devus esti kaleŝego, ĝi eblus ke tien 790 00:39:29,713 --> 00:39:34,240 vi produkti int sed tien vi pensi sed ili devos always-- bedaŭras, 791 00:39:34,240 --> 00:39:36,555 ĝi povus esti ke tie vi produkti kaleŝego, 792 00:39:36,555 --> 00:39:39,430 sed kiam vi atingos la dua parto de via programo, vi pensas, 793 00:39:39,430 --> 00:39:41,150 Oh bone, sed ili devos ĉiam pasas min int. 794 00:39:41,150 --> 00:39:43,608 Kaj se ili ne, ĝi estas ebla ke vi wedged ie, 795 00:39:43,608 --> 00:39:47,600 se vi provas uzi tiun indeksi en tabelo, aŭ kio havas vin. 796 00:39:47,600 --> 00:39:51,050 >> Do unu el la reala utilajn aferojn pri C estas 797 00:39:51,050 --> 00:39:54,219 ĝi igas vin pensi vere forte antaux vi fari any-- 798 00:39:54,219 --> 00:39:56,510 antaŭ vi alportos ajna variablo en ekziston, kiel kion 799 00:39:56,510 --> 00:39:58,764 Estas la tipo de tiu variablo. 800 00:39:58,764 --> 00:40:00,680 Kaj ĝi tuj havis ke tipo de ĉiuj tempoj. 801 00:40:00,680 --> 00:40:02,410 >> Tio estas ne vera Python, kaj fakte, vi 802 00:40:02,410 --> 00:40:04,740 can-- se vi estas nur ia preterirantan orelon, 803 00:40:04,740 --> 00:40:07,690 kaj vi fari iujn decidojn unu vojo en unu loko, 804 00:40:07,690 --> 00:40:09,870 kaj iuj decidoj unu vojo en la alia loko 805 00:40:09,870 --> 00:40:12,960 sen meti sufiĉan materialon malantaŭ la scenoj en la alia loko 806 00:40:12,960 --> 00:40:16,170 kapti aferojn taŭge, vi povas akiri kelkaj tre strangaj eraroj. 807 00:40:16,170 --> 00:40:19,200 Kaj la programo povas Lasi ruliĝi por tre longa tempo, ĉar ĝi estas 808 00:40:19,200 --> 00:40:23,200 faranta multan laboron diri, bone tiu afero povus funkcii tiel, 809 00:40:23,200 --> 00:40:25,070 do mi tuj kuri tiel. 810 00:40:25,070 --> 00:40:30,300 >> Kaj fakte, la fakto kiu pelas plusendu tra multaj malgrandaj eraroj 811 00:40:30,300 --> 00:40:33,260 signifas ke, ofte, kiam Eraro estas fakte malbona 812 00:40:33,260 --> 00:40:38,720 kaj vi vere volas ripari ŝin, finu mejloj away-- la programo 813 00:40:38,720 --> 00:40:41,780 finas haltante mejlojn for de kiam vi havis vian eraron. 814 00:40:41,780 --> 00:40:46,590 Kaj tiel unu afero ke ni ŝatus programojn por fari, sometimes-- unu afero 815 00:40:46,590 --> 00:40:48,910 ke ni ŝatus programoj fari kiam ni elpurigi 816 00:40:48,910 --> 00:40:54,160 estas malsukcesos laŭte kaj malsukcesi tre rapide kiam iu eliras malbone. 817 00:40:54,160 --> 00:40:55,510 >> Python estas tre malbona en tiu. 818 00:40:55,510 --> 00:40:58,820 Python estas tre bona en ne malsukcesanta kaj ruliĝante antaŭen 819 00:40:58,820 --> 00:41:00,320 tra neatenditaj aferoj. 820 00:41:00,320 --> 00:41:02,820 Do tiu estas utila ĉar kiam vi skribas malgrandajn programojn. 821 00:41:02,820 --> 00:41:07,110 Kiam vi ricevas komplika cimoj ĝi kelkfoje 822 00:41:07,110 --> 00:41:09,300 prenas longan tempon por inciteti ilin. 823 00:41:09,300 --> 00:41:12,210 >> Do ekzistas malhela flanko al ĉiuj de tio, kiel ĝi ĝuste funkcias. 824 00:41:12,210 --> 00:41:13,860 Ĝi nur funkcias kiel vi atendus ke ĝi. 825 00:41:13,860 --> 00:41:18,320 Krom ke kiam lin faras ne, vi finas supren en tute malsama loko 826 00:41:18,320 --> 00:41:21,530 kaj provi elkompreni kie ĝi estis ke vi iris malbone. 827 00:41:21,530 --> 00:41:25,180 >> Garbage kolekto is-- tiel unu afero, ke vi rimarkos 828 00:41:25,180 --> 00:41:28,110 estas ke neniu el tiuj aferoj kiu Mi enportis en existence-- 829 00:41:28,110 --> 00:41:34,114 tiuj aroj, tiuj vortaroj, tiuj objektoj, tiuj files-- neniam akiri liberiĝita. 830 00:41:34,114 --> 00:41:36,030 Ekzistis neniu alvoko al libera en ajna de tiu diskuto. 831 00:41:36,030 --> 00:41:40,340 Kaj kio estis sur la C-flanko, ĉar ni neniam alvenis en tion. 832 00:41:40,340 --> 00:41:42,220 >> Sed en Python-flanko, estas ne libera. 833 00:41:42,220 --> 00:41:43,970 Aĵoj akiri aŭtomate liberigita kiam Pitono 834 00:41:43,970 --> 00:41:45,386 pensas vi ne rigardante ilin. 835 00:41:45,386 --> 00:41:49,640 Ĝi estas vere bona ne liberigante proprajxon vi eble ankoraŭ eble estos rigardante, 836 00:41:49,640 --> 00:41:54,262 sed tio signifas, ke se vi estus tuj rezervu tiu granda afero, 837 00:41:54,262 --> 00:41:55,970 kaj vi estas kiel, oh Mi faris kun gxi nun, 838 00:41:55,970 --> 00:42:00,360 ĝi estas malfacila diri Pitono ke vi faris kun gxi nun. 839 00:42:00,360 --> 00:42:02,986 >> Vi povas iam metita tiu variablo estos neniu, 840 00:42:02,986 --> 00:42:05,110 kaj tiam esperas ke fine la rubo kolektilo 841 00:42:05,110 --> 00:42:06,720 venas tra kaj purigas gxin. 842 00:42:06,720 --> 00:42:10,177 Sed denove, vi ne havi kontrolon super tiu. 843 00:42:10,177 --> 00:42:13,510 Kaj unu el la kialoj ke homoj uzas C por vere okupas kritika aferojn, 844 00:42:13,510 --> 00:42:16,570 Estas ĉi kapablo vere scias kiam memoro estas asignita 845 00:42:16,570 --> 00:42:19,369 kaj kiam ĝi estos liberigita, kaj havas multajn kontrolo super dirante: 846 00:42:19,369 --> 00:42:20,910 Mi uzas ne pli memoro ol mi bezonas. 847 00:42:20,910 --> 00:42:23,632 Kiu estas io kiu Pitono ne ke granda en. 848 00:42:23,632 --> 00:42:25,090 Spektantaro: Ĉu mi vi demandon? 849 00:42:25,090 --> 00:42:29,800 Kion vi volis diri per malsukcesos laŭte? 850 00:42:29,800 --> 00:42:32,070 >> ROSS RHEINGANS-Yoo: Do ​​se io tuj erara 851 00:42:32,070 --> 00:42:34,950 kaj vi estas en elpuriganta mode, vi farus tre ofte 852 00:42:34,950 --> 00:42:38,510 volas vian programon rakonti kie precize ĝi okazis, 853 00:42:38,510 --> 00:42:42,360 kaj ne nur silente ĉesi kuri. 854 00:42:42,360 --> 00:42:45,085 Sed oni kredus reale ĝi presi el ĉiaj informoj pri 855 00:42:45,085 --> 00:42:46,972 kiel, tie estis tiu. 856 00:42:46,972 --> 00:42:53,957 Tiu afero okazis Se vi videbligi a wen-- se vi uzas TTT server-- 857 00:42:53,957 --> 00:42:55,390 >> Spektantaro: [inaudible] 858 00:42:55,390 --> 00:42:59,800 >> ROSS RHEINGANS-Yoo: Yeah, se vi uzas retservilo, 859 00:42:59,800 --> 00:43:02,680 ĝi estas kelkfoje malbone se vi estas ĉiam forĵetante eraroj, 860 00:43:02,680 --> 00:43:04,530 kaj vi diras, bone ke ne funkciis. 861 00:43:04,530 --> 00:43:05,300 Mi tuj halti. 862 00:43:05,300 --> 00:43:07,680 Mi simple tuj ignori kaj gardi okazas. 863 00:43:07,680 --> 00:43:11,260 Ĉar tiam vi povas akiri en centojn de tiuj eraroj kaj ne vidi ilin. 864 00:43:11,260 --> 00:43:13,910 >> Ĝi certe estus utila por elpuriganta celoj 865 00:43:13,910 --> 00:43:20,327 se ĉiu tempo via retservilo faris eraro, vi havis durable notoj pri tio. 866 00:43:20,327 --> 00:43:22,910 Eble vi eĉ deziras la programo halti, tiel ke tiuj rekordoj 867 00:43:22,910 --> 00:43:25,471 Ne akiras entombigita sub aferojn. 868 00:43:25,471 --> 00:43:26,970 Sed denove, tio estas en elpuriganta manieron. 869 00:43:26,970 --> 00:43:31,280 >> Ofte en produktado maniero, La mondo estas iom malsama. 870 00:43:31,280 --> 00:43:36,380 Kaj en etaj skriptoj kiuj Mi kuras, kie la afero, kiun mi diris al fari 871 00:43:36,380 --> 00:43:40,680 povus esti nur iomete for el kio mi ŝatus ĝin fari, 872 00:43:40,680 --> 00:43:44,010 tiam ia puŝanta tra eraroj estas io vi eble volas. 873 00:43:44,010 --> 00:43:49,410 Kaj en tiuj kazoj, certe Python vere perlaboras liaj komencoj. 874 00:43:49,410 --> 00:43:54,617 >> La lasta afero kiun mi ne parolas en this-- ke mi ne paroli pri 875 00:43:54,617 --> 00:43:57,700 sed povas esti vere exasperante la unua tempo vi havas unu el ĉi tiuj eraroj, 876 00:43:57,700 --> 00:44:00,491 kaj la dua kaj tria kaj kvara tempo vi havas unu tiuj eraroj. 877 00:44:00,491 --> 00:44:03,490 Python, mi menciis ke ĝi uzas blankan spacon 878 00:44:03,490 --> 00:44:06,700 al vi kiujn nivelo de deŝovon kaj kion funkcia bloko vi estas en, 879 00:44:06,700 --> 00:44:08,840 ĝi traktas taboj kaj spacoj malsame. 880 00:44:08,840 --> 00:44:12,780 Do se vi langeto super kvar, kaj tiam la sekva linio havas kvar spacoj, 881 00:44:12,780 --> 00:44:16,910 eĉ se ili montras supren kiel la saman kvanton en via redaktilo, 882 00:44:16,910 --> 00:44:20,160 Pitono ne traktas ilin same. 883 00:44:20,160 --> 00:44:23,610 >> Fakte, Pitono traktas langetoj kaj spacoj kiel oleo kaj akvo. 884 00:44:23,610 --> 00:44:25,050 Ili estas nur malsamaj aferoj. 885 00:44:25,050 --> 00:44:27,264 Ne estas aparta longa kiu langeto estas, 886 00:44:27,264 --> 00:44:30,180 do ĝi ne estas kiel langeto egalas 8 spacoj, kaj tiel vi akirus ĉirkaŭ ĝi 887 00:44:30,180 --> 00:44:30,860 tiamaniere. 888 00:44:30,860 --> 00:44:34,110 Kiel, kiam ĝi diras, kion nivelo de blanka spaco mi estas ĉe, 889 00:44:34,110 --> 00:44:37,240 ĝi estas efektive serĉanta desegnon de spacoj kaj klapetoj. 890 00:44:37,240 --> 00:44:43,050 Kaj do, la plej bona maniero trakti tiun estas ĉiam uzi spacoj tutan tempon. 891 00:44:43,050 --> 00:44:47,510 >> Kaj fakte, en la Cloud9 IDE kaj la CS50 IDE, 892 00:44:47,510 --> 00:44:50,610 via Tab ŝlosilo inserta kvar spacoj anstataŭe 893 00:44:50,610 --> 00:44:53,800 de pestaña, kiu estas super utila. 894 00:44:53,800 --> 00:44:57,074 Kvankam denove, se vi skribis Pitono programo kun langetoj estus bonege, 895 00:44:57,074 --> 00:44:58,990 ĝi estas nur se iu eniris kaj provis aldoni 896 00:44:58,990 --> 00:45:02,655 unu linion al via programo kiu havis kvar spacoj por ĉiu langeto, 897 00:45:02,655 --> 00:45:03,280 ĝi rompus. 898 00:45:03,280 --> 00:45:07,800 Kaj rompigxus en maniero ke vere ne estas videbla. 899 00:45:07,800 --> 00:45:12,390 Kvankam la fakta eraro mesaĝon ke ĝi ĵetas 900 00:45:12,390 --> 00:45:15,610 devas vidi kun nova indent ne atendis tie, 901 00:45:15,610 --> 00:45:18,700 or-- se ĝi parolas pri skriptoj kaj ĝi aspektas kiel ĝi estas erara, 902 00:45:18,700 --> 00:45:22,090 ĝi estas probable ĉar Tie estas langeto-spaco problemo. 903 00:45:22,090 --> 00:45:24,154 Ili ankoraŭ exasperante elpurigi. 904 00:45:24,154 --> 00:45:26,070 La plej granda aro en tiu diskuto, kiun mi ne 905 00:45:26,070 --> 00:45:29,740 atingi ĉar estas vere komplika, subtila temo, 906 00:45:29,740 --> 00:45:34,760 kaj ne estis necese fari ajnan de la aferoj ni faris ĝis nun, 907 00:45:34,760 --> 00:45:37,140 estas koncepto nomita opoj. 908 00:45:37,140 --> 00:45:41,280 Ili estas tie multe kiel la arrays ke vi ne povas modifi. 909 00:45:41,280 --> 00:45:44,700 Ili kutimiĝas tuta loko ĉar ili estas utilaj por multaj eventoj 910 00:45:44,700 --> 00:45:46,300 ke tabeloj ne estas utilaj por. 911 00:45:46,300 --> 00:45:49,890 >> Sed se vi ŝatus fari tabelo, kaj tiam promesos la interpretisto ke vi 912 00:45:49,890 --> 00:45:53,140 estas neniam tuj volas modifi ke thing-- fakte, se vi volas modifi, 913 00:45:53,140 --> 00:45:56,800 vi faros nova kun la nova valoroj en it-- tiuj estas opoj. 914 00:45:56,800 --> 00:45:58,800 Prefere ol produkti ilin kun kvadrataj krampoj, 915 00:45:58,800 --> 00:46:00,341 vi produktas ilin per rondaj krampoj. 916 00:46:00,341 --> 00:46:05,074 Kial vi uzus tion, Estas iomete de demando. . 917 00:46:05,074 --> 00:46:06,990 La sola afero kiun mi diru pri kiu vi 918 00:46:06,990 --> 00:46:10,680 povas uzi opoj kiel indeksoj por vortaroj. 919 00:46:10,680 --> 00:46:15,010 Vi ne povas uzi tabeloj kiel indeksoj por vortaroj. 920 00:46:15,010 --> 00:46:18,970 Kaj kial estas, denove, teknika kaj Mi ne tuj kuri en ĝin. 921 00:46:18,970 --> 00:46:23,140 >> La pset ke mi ne tuŝis en tiu ĉi diskuto estas pset6. 922 00:46:23,140 --> 00:46:25,837 Do jen kiel vi 'D efektivigu a-- jen 923 00:46:25,837 --> 00:46:28,140 kiel vi volus apliki pset6 en Python. 924 00:46:28,140 --> 00:46:32,680 Konsiderante la Python dezajno ciklo, la unua afero 925 00:46:32,680 --> 00:46:34,760 ke vi faras kiam vi estas skribo programoj estas ĉeko 926 00:46:34,760 --> 00:46:38,030 vidi se iu estas farita jam. 927 00:46:38,030 --> 00:46:42,152 >> Fakte, se vi volas al serve-- Apache 50 928 00:46:42,152 --> 00:46:44,110 faras proksimume tion, se gxi ne venas 929 00:46:44,110 --> 00:46:45,840 norma instalita sur Linukso maŝinoj. 930 00:46:45,840 --> 00:46:50,490 Python faras, kaj la Pitono simpla http servilo faras tiel. 931 00:46:50,490 --> 00:46:54,717 Se vi estas iam sur Linukso maŝino, aŭ la Cloud9 IDE ekster CS50 932 00:46:54,717 --> 00:46:57,550 kaj vi ŝatus servi tiu fluo dosierujo al aparta haveno, 933 00:46:57,550 --> 00:47:04,610 python-m SimpleHTTPServer haveno servas tiu. 934 00:47:04,610 --> 00:47:07,190 Vi povas ankaŭ importi la simpla http servilo 935 00:47:07,190 --> 00:47:11,240 kaj ĝi estas atingis multajn funkciojn se vi volas personecigi ĝin, aŭ ŝanĝi ĝin, 936 00:47:11,240 --> 00:47:15,860 aŭ ili kuros it-- jungi ĝin al kuri vian propran servilon servoj. 937 00:47:15,860 --> 00:47:18,032 >> Do jen Python en malmultaj vortoj. 938 00:47:18,032 --> 00:47:20,280 Kaj tiu estis CS50. 939 00:47:20,280 --> 00:47:21,980 Dankon. 940 00:47:21,980 --> 00:47:23,468