ROSS RHEINGANS-YOO: Hi, mwen se Ross. Lè sa a se yon seminè CS50. Li pral pran ou soti nan pwogram nan C rive nan pwogram nan Piton. Piton se yon lang scripting. Li nan lajman tankou C nan sentaks, menm si kèk an detay yo teknik nan ki jan vin ki sentaks egzekite se yon ti kras diferan. Li se mwens pouvwa anpil pase C nan kèk fason. Li se mwens espresif pou kote egzakteman nan òdinatè w lan memwa vin mete deyò, ki jan li vin mete deyò, lè li vin libète, ak kalite sa yo ki nan bagay sa yo. Li nan plis itil pase C nan kèk fason, paske li nan pi fasil nan pwogram nan. Ak lang nan se, nan yon sèten moun, plis entwisyon. E reyèlman, objektif la se pou li nan dwe pi vit nan pwogram ak potansyèlman pi dousman al touye. Koulye a, si ou panse osijè de kantite tan ou te pase sou dènye ou pwoblèm mete ekri Kòd ou kont la kantite tan ou pase nan dènye pwoblèm ou mete egzekite kòd ou a, ou ta imajine ke lang nan ki te de fwa osi vit yo ekri, ak de fwa tankou fasil fè egzekite, ta ka gen yon amelyorasyon sou C nan kèk fason. Sètènman lè w ap eseye ekri pwogram ti fè bagay sa yo ti kras, Piton se yon lang itil nan chwa. Ak nan fen a nan sa a seminè, mwen espere ke ou pral pral kapab fè nan chwa nan pwojè lavni sou ki lang se kòrèk yo sèvi ak, pa lide a ke yon moun se pi plis ak lang korije tout tan tout tan an. Yon bagay kèk sou sa ki seminè a se. Seminè sa a pa gen entansyon moutre nou Piton nan grate. Piton se trè menm jan nan C, ak mwen an konsideran ke w ap yon elèv CS50, oswa yon moun ak yon abitye ki sanblab ak C. Si ou se CS50 elèv alantou pwoblèm mete 6, se konsa ou te wè yon anpil nan bagay sa yo nan C, Mwen pral ba w diferans ki genyen pi gwo, ak kèk nan bagay sa yo ki fè Piton diferan ak espesyal ak itil, men mwen pa pwal pou ale pou ki sa yon lang programmation se ak ki jan yo ekri pwogram yo. Sepandan, seminè sa a pral moutre ou yo ekri yon pwogram Piton si w ap youn nan moun ki gwoup kèk. Yon fwa ankò nou pral gade nan ki jan ou ta aplike psets-- ki ta dwe 1-6 an Python-- epi yo bay endikasyon nan dokiman ofisyèl pou referans nan lavni. Bagay la lòt ki enpòtan sou ki jan asiyen pale sa a, videyo sa a yo pral sou entènèt, koutwazi nan CS50, se konsa ou pa ta dwe santi tankou ou bezwen pran nòt. Ou ka toujou tounen ladan l epi gade nan li pita kòm yon referans. Anplis de sa glisad yo yo disponib kounye a la nan sit sa a, ki ta dwe pran ou fè yon doc Google. Li se yon vèsyon yon ti kras abreje a sa m ap montre sou ekran an. Youn opozisyon atansyon anvan nou so an, Piton 3 se yon lang diferan de Piton 2. Yo gade yon anpil menm bagay la tou; gen trè ti tay diferans teknik ki pral lakòz pwogram ekri nan Piton 2 pa pou kapab dwe egzekite nan Piton 3 anviwònman an. Aparèy la CS50 vini ak Piton, pa default li itilize Piton 2. Ou ka tcheke sa a pa sezisman nan liy lòd ou piton --version, ki ta dwe pwodiksyon 2.7.6 sou aparèy aktyèl la. Eseye Piton 3, ki fè travay nan aparèy la, si Piton défaut 2.X.Y, swa sou aparèy la oswa sou machin pwòp ou yo. Ou ta dwe ranplase Piton 3 nenpòt lè nan pale sa a ke mwen ekri Piton. Si machin ou se kouri 2 pa default, di ki kalite Piton 3 nan lòd pou kapab aktyèlman swiv ansanm ak egzekite bagay sa yo. Anplis de sa, mwen pral pwen ou a resous ofisyèl kounye a. docs.python.org/3--~~V atansyon ki sa a, se yon 3 epi yo pa yon 2-- gen referans itil. Tutorial pral pran ou atravè anpil nan menm bagay yo ke mwen fè kounye a, eksepte nan fòm tèks. Referans se itil kòm yon referans pou lang lan, ak Bibliyotèk nan Standard bay ou kèk nan ekstansyon yo ak lòt fonctionnalités. Se konsa, yon pwogram Piton trè premye. Sou bò gòch la nou gen estanda C, sou bò dwat la, nou gen Piton. Ou ta ka te rekonèt pwoblèm sa a, li nan youn nan pwoblèm nan premye kouche nan CS50, ak sa yo rezoud li lè l sèvi avèk solisyon an menm. Koulye a, rezon ki fè yo ke nou ap gade nan sa yo kòt a kòt se pou nou ka gade nan diferans Massachusetts Institute of Technology. Youn nan elefan yo nan chanm nan ke ou ta ka remake gen dwa koupe baton an, se ke pa gen okenn Piton prensipal anbalaj fonksyon alantou kòd la. Se konsa, nan C, ou ekri yon pakèt moun sou dosye, ou lyen yo ansanm, ak pwogram la kòmanse egzekite a bagay sa yo rele int prensipal la. Nan Piton, ou ekri yon ranpli ou, egzekite dosye a, pwogram lan kòmanse egzekite nan tèt yo nan dosye a. Se konsa, li k ap pase yo kòmanse nan tèt yo nan dosye desann jiskaske li jwenn yon lòt bagay. Si li jwenn yon definisyon fonksyon, li pa pral aktyèlman egzekite ki kòd, li pral tou senpleman defini fonksyon an. Men, isit la, lè premye a pwogram se n egal 10, premye bagay la ke pwogram sa a pral fè se pran sa a valè de 10 , li mete l 'nan yon varyab rele n. Pale de ki liy, youn nan lòt things-- sorry-- sa a vle di ke pwogram C, ou pral ekri yo, ou pral fè yo, ki pral envoke kèk kòmandman sonnen, ak Lè sa a ou pral kouri nan yon ki kapab lakòz ègzèkutabl. Pwogram Piton, ou kouri nan tèks file-- mario.py sa a ta ka gen sa a ranpli ke mwen jis te montre you-- ou pral kouri ke dosye epi ou pral egzekite, ak sa ki nan li yo pral egzekite pa entèprèt la Piton. Ou ka fè sa nan IDE ou yo. Se konsa, si mwen gen yon dosye Hello, ki tou senpleman gen sa a contenu. Sa a se aktyèlman Piton 2, pa Piton 3, se konsa pa fè sa enkyete sou sentaks la pou kounye a. Men, mwen pral kouri Piton, sou hello.py, epi li kouri. Yon lòt fason ke mwen ka itilize Piton ki Mwen pa pral fè fas avèk anpil nan pale sa a, se si mwen jis tape Piton, li gout m 'nan yon anviwònman kote Mwen kapab manje li Piton liy pa liy. Se konsa, isit, si mwen tape nan espas ekri an lèt detache 'hello, mond'. Tape antre. Li pral krache m 'ki tounen rezilta yo ke liy endividyèl imedyatman. Sa a se ta kapab itil. Nan pale sa a mwen pral fè bagay sa yo sou glisad. Se konsa, ou pral kapab yo swiv ansanm swa nan isit la, oswa pa ekri dosye aktyèl ak Lè sa a egzekite yo. Men, pral tounen nan sa a kòd, yon lòt bagay ke ou ta ka gen noticed-- byen, gen nan de bagay ke ou ta ka remake sou blòk sa yo. Premye a, olye plis Munden, se ke Piton a pa gen okenn virgules fin. Virgules yo si ou vle tout kote ak inofansif toupatou. Ou kapab ajoute yo. Li ta ka fè moun ki ekri Piton pou yon k ap viv nan ou snicker dèyè do ou, paske yo ap pa nesesè. Yo ap souvan yon siy ki te fèt sou ke yo te soti nan C. Konsèpteur yo nan lang lan santi ke li se pi plis klè fason sa a e ke li pa nesesè yo deklare chak fwa ou fini yon liy. Yon lòt bagay etranj sou sa a n se li pa gen yon kalite tache. Youn nan moso yo majik nan Python-- ak mwen pral yo rele li majik, men gen trè rezon teknik pou ki sa li fonctionne-youn nan la moso majik nan Piton se ke varyab ka elaji oswa retresi a ki genyen tou sa done kalite ou ta vle yo. Se konsa, sa a se yon 10. Si pita desann mwen asiyen nan sa a N 0.5, li ta pran ki 0.5. Pa gen pwoblèm ke li nan yon int isit la ak flote a, nenpòt ki bagay ki sèvi ak N sa a pral, plis oswa mwens, kapab soufle ansanm si li vin swa nan sa yo. Sòf si gen nan kèk anpil reyèl rezon ki fè li pa ka sèvi ak done yo tape ki n kounye a gen, nan ki pwen li pral jwenn kale 'voye jete yon erè, ak kalite sa yo ki nan bagay sa yo. Men, isit la, Piton pa reyèlman sousye sa li se ke mwen pral bwa nan sa a fraz, tankou, ou vle bagay sa a? Sa a bagay nan sa? Yeah, li nan kalite yon bagay. Mwen pral bwa li nan fen an. Li pral gen yon pwoblèm pita sou, si yon moun ki moun ki vle sèvi ak sa fen pa ka okipe li. Sa a se youn nan pi gwo a diferans ki genyen ant Piton ak C ki fè l pi fasil yo ekri gwo anpil pwogram C ak fè li pi fasil yo ekri anpil ti pwogram Piton. Pou sentaks se nan pa trè diferan nan ki sa li fè. Li nan yon ti kras diferan nan ki jan li a eksprime. Se konsa, sa a se yon trè, sa yo rele Pythonic, fason nan ekri li. pou ranje nan seri (n), sa a se nan ran de nimewo ki ant 0 a n, enklizif sou anba a ak san konte sou tèt la. Se konsa, li ki ant 0 a n-1, ki se ekzakteman ki sa se kòd la C ap fè travay, eksepte li nan yon anpil pi fasil fè yon gade nan petèt. Blòk la ki enpòtan se pa mete koupe pa aparèy òtopedik, olye pou li a mete nan pa dekoupaj sa a. Se konsa, tout nan liy sa yo, se kat espas sou bò dwat la, oswa tankou sou yon lajè elefan. Ak moun ki yo se yo menm ki fè yo ale nan dwe egzekite nan sa a pou. Si m 'nan dezòd yo dekoupaj sou sa a ak mwen pouse ki ekri an lèt detache tounen nan dekoupaj orijinal la, ki ekri an lèt detache pral kite la pou riban. Kontrèman a C, kote isit la mwen aktyèlman bezwen pou avanse pou ki atèl fèmen alantou. Sa vle di ke ou pa jwenn erè ki sote soti nan ou paske ou mete yon atèl an mal plas. Li vle di ke ou jwenn erè ki sote soti nan ou paske ou dantle yon mal liy. Se konsa, li fè kreu super fè atansyon. Nou swete ke ou te ke yo te super atansyon ak dekoupaj ou de tout fason, ak kidonk sa a se pa sa ki pi plis nan yon chay. Men, yon règ debaz pou Piton, epi n ap gen yon koup nan sa yo ke nou pral ale nan nan kou a nan pale a, se eseye sentaks natirèl anvan kap anyen yo. Se konsa, sentaks sa a, pou nimewo sa a nan seri, se yon bagay ki diferan an tèm de style. Anpil nan bagay sa yo nan Piton nou pral wè pran fòm sa a. Se konsa, si ou vini ak yon objè nouvo ke ou panse ou ta dwe kapab repekte sou sa a, nan fòma sa a, sanble li pwobableman sipòte ki fòma. Nou pa ap ale nan ale super byen fon nan rezon ki fè yo poukisa teknik sa a, se vre. Men, li la yon entwisyon itil nan gen lè w ap apwoche pwogram Piton, ki bagay sa a se jis ale nan travay. Eseye li. Bòt moute Kòmandman liy lan Entèprèt, wè si li ap travay, deplase sou ak bagay sa yo, anvan ou menm bezwen louvri moute Google ak di, sa ki nan sentaks la pou bagay sa a an patikilye? Anpil nan Piton ou te kapab dekouvri jis pa eseye. Sa a si se menm plis ki sanble Lè sa a, nan C fors yo ye. Remake byen ke gen nan pa gen parantèz. Parantèz yo se, ankò, inofansif men nesesè. Gen yon kolon nan fen jis tankou nan pou pasan, e ankò, blòk yo yo se manm fanmi utilize olye ke mete nan pa aparèy òtopedik. Lòt Sa a se nan orijinal la nivo nan dekoupaj, ak blòk ki enpòtan li yo dantle ankò. Moun sa yo ki travay egzakteman jan yo fè nan C. Sa a se aktyèlman anpil menm bagay la. Yon fwa ankò, ekri an lèt detache pèdi yon karaktè koupe nan printf Ou pase kèk strings. Li sanble strings ka swa ap make koupe pa quotes yon selibatè oubyen quotes doub. Gen nan pa gen diferans, eksepte ke andedan nan quotes sèl ou ka itilize quotes doub ak abandone, olye ke gen yo chape tout nan yo. Apre sa, andedan nan quotes doub, ou ka itilize quotes sèl ak abandone san yo pa gen yo sove yo. Si ou te vle melanje yo, ou kapab sètènman gade moute sou entènèt ki jan fè sa. Ou ap remake ke sou isit la, Mwen te pase nan fen = bagay sa a. Sa se yon egzanp nan yon si ou vle agiman, ki se youn nan bagay sa yo ki Piton sipòte ki fè li byen itil. Se konsa, ekri an lèt detache aktyèlman gen yon anpil nan agiman yo, ki se anjeneral mete nan default yo valè, men isit la mwen te deside pase sou desizyon yon sèl la rele fen. Rezon ki fè la ke mwen gen yo pase sou desizyon l 'ak yon fisèl vid se ke ekri an lèt detache nan Piton, pa default, simagri soti yon liy nouvo apre bagay la ki ou te di li tou. Se konsa, regle sa a se aktyèlman ale nan enprime soti yon regle nan yon liy nouvo. Men, si mwen pa vle ekri ak lèt ​​detache soti regle yon liy nouvo apre li, lè sa a mwen te vle di pa enprime yon sèl. Men, ankò sa, yon sèl bagay ki sot pase a ki pwogram sa a ki manke ke yon moun gen se yon gen ladan nan tèt la. Se sa a Enprime konn kwit nan fou nan Piton se konsa fondamantalman ki gen nan pa gen header oswa modil ke ou bezwen enkli ladan yo, menm si si te vle genyen ladan yo lòt bagay nan yon script Piton, Mwen ta fè l 'nan yon menm jan an format-- trè mo sa yo yo se jis yon ti kras diferan. Mwen mansyone ke nou pa bezwen yon prensipal isit la, paske Piton a kòmanse egzekite nan tèt la. Si mwen te vle vlope sa a nan yon fonksyon, mwen ta fè l 'tankou sa a men mwen ta ka di non def fonksyon, agiman ta ka ale nan isit la ak nou pral wè kèk nan sa yo pita, kolon, ak Lè sa a ankò, sa a tout mete nan blòk se sa ki nan operasyonèl bloke pou sa fonksyon. Se konsa, sa a se definisyon an nan fonksyon an. Apre sa, nan yon deklarasyon, lè sa a desann isit la, mwen ka jis rele fonksyon an. Epi ankò, pwogram lan entèprèt, kòmanse nan tèt la, pral wè sa a se definisyon an. Li pa pral egzekite sa a jiskaske li jwenn isit la, ak Lè sa li a tankou, o kounye a ou te rele l ', mwen devine mwen ta dwe egzekite li. Yon bagay sa a, se trè komen yo wè nan Piton dosye, espesyalman Piton dosye ki yo lage nan piblik la epi li devlope epi li devlope ak by-- konsève, se yon bagay nan fòm sa a. Sa a se konsa paske basically-- Piton, ou kòmanse nan tèt la ak Lè sa a ou egzekite desann nan pati anba a, Mwen si mwen jis te gen Mario rele isit la, Lè sa a, nenpòt ki lè mwen enkli sa a ranpli nan yon lòt dosye, paske mwen te vle sèvi ak se fonksyon Mario, ke lòt dosye ta yo te genyen tou sa a rele nan Mario nan li. Lè m 'kouri ke dosye, li ta rele Mario. Se konsa, li posib ke mwen sèlman vle kouri sa a si mwen te aktyèlman egzekite dosye sa a an patikilye. Se konsa, mwen ka vlope sa a nan yon ekspresyon tout moun tankou sa a, kote mwen di, si non an nan ekzekisyon sa a anviwònman se prensipal yo, Lè sa a, mwen vle fè bagay sa yo. Sinon yon moun lòt bagay kapab use-- gen ladan fonksyon-mwen dosye mwen an, epi jis jwenn aksè nan fonksyon sa yo san yo pa gen kouri bagay sa yo ke mwen vle egzekite nan sa a dosye. Sa a se, ankò, si ou vle men trè komen. Se bagay konsa ki entirely-- yo ekzakteman menm bagay la ant C ak Piton, sètènman nan 3. Mwen panse ke nan 2, operatè a divizyon pafwa ba ou tounen flote lè ou opere sou antye, ak swa ou te vle ki oswa ou pa t '. Men, plis, mwens, ak lè travay egzakteman menm jan ak ou ta atann, eksepte sou yon ti kras plis kalite. Se konsa, ou ka anpil anpil pitit flote pa antye, ak kalite sa yo ki nan bagay sa yo. seri travay egzakteman menm bagay la. Ou kapab sèvi ak de mirak egal-ego. inequals-- pi gran pase, mwens pase, sa yo kalite things-- gen siyifikasyon yo ki w ap abitye avèk yo. Ki kote C sèvi ak operatè sa yo, Piton sèvi ak yon ti kras plis angle yo menm lizib. Se konsa, olye pou yo de, ampersands, ou literalman tape pawòl Bondye a ", epi," "oswa," oswa "pa." Tankou nan if-- ou a ou deklarasyon kondisyonèl, nou te wè pi bonè ke sentaks sa a nan C koresponn ak sentaks sa a nan Piton. Apre sa, gen nan pa yon anpil diferan la, eksepte pou yon ti jan a ponktiyasyon alantou kote sa yo. Yon fwa ankò, kote C ta lòt moun si, Piton sèvi ak èlif, men sa yo yo se sitou nivo sifas chanjman. Iterasyon tankou sa a se souvan ekri nan ekspresyon tout moun sa a nan Piton. Ou ka fabrike sa a sòt de bagay ak yon riban pandan y ap sou deyò a si ou te vle, men ou sètènman pa gen. Epi ankò, si ou te vle a enprime soti eleman nan nan yon etalaj ou ta ka fè li fason sa a. Youn nan bagay ki plezi sou Piton menm si, se ke ou pa bezwen yo sèvi ak paradigm sa a, epi ou ka sèvi ak yon youn yon ti kras plis elegant. Ou di pou yon an ARY. Se konsa, olye ke ale isit la ak kouri sou endis yo, ak Lè sa a rale soti eleman endividyèl, ou di la pou yo aktyèlman jis kouri sou eleman yo tèt yo. Lè sa a, tou sa ou ap fè andedan ka opere dirèkteman sou eleman yo, ki se plezi bèl. Epitou, n ap see-- nou pral sèvi ak ki ekspresyon tout moun ankò e ankò jan nou mache nan kòd. Sa a se, ankò, yon egzanp nan yon bagay ke mwen pral rele Piton majik, menm si genyen rezon trè teknik poukisa li fonksyone. Apre sa, yo se bagay teknik ki bezwen yo dwe vre sou etalaj nan lòd pou sa a nan travay dèyè sèn nan. Bagay la se ke pifò kalite ki ou ta atann sa a nan travay te gen sa a aplike pou ou nan lang nan bati-an. Yon lòt bagay ke li ta dwe nice si sa a te travay nan chak lang, men gen kèk rezon ki fè li pa kapab, enprime fisèl sa a fwa nimewo sa a. Li vire soti nan Piton, sa a fè egzakteman sa ou ta renmen, ki se jis plezi, ak vle di ke nou kapab aktyèlman diminye pwogram sa a, ankò mario.c. Olye ke iteration yon anpil, nou kapab jis di, mwen vle kèk kantite espas, Mwen vle ki kantite achaj, ak kèk achaj nan fen an. Epi ankò, nou itilize fòma sa a. Isit la, nou ap pase nan yon varyab nan fason sa. Yon fwa ankò, nou pa bezwen di ki kalite varyab li ye, ak tan la sèlman nou pral jwenn erè se nan kouri tan. Lè yon moun ap eseye yo pase yon bagay nan, li pral antre nan fonksyon an jis anfòm. Si nou bon rapò sere isit la paske sa a se la pa bagay ki ou kapab kreye chenn sou yo, Mwen pral jwenn yon erè ègzekutabl a, epi mwen pral gen yo debug li fason sa. Men, nan entre-temps la, mwen pa gen dwe pran anpil prekosyon sou sa vin te pase nan, toutotan nan aktyèl la ekzekisyon li tout travay trè propr. Mwen te kapab menm fè sa a yon ajan netwayaj ti kras lè l sèvi avèk yon patikilye fonksyon bati-an sou strings, ki se Dwa Jistifye. Sa a se jis yon fonksyon itil kouche alantou bibliyotèk la. Li nan nan dokiman an si ou ale ak gade pou li. Apre sa, mwen di, byen, mwen pral gen fisèl sa a, kèk kantite achaj, ak mwen ta renmen a dwat jistifye l-- pad li soti ak espas yo dwe sa a longè. Yon fwa ankò, sa a se nan a dokiman, ki pote fi Fiziyad Kous Mwen pral aktyèlman klike sou atravè these-- ki pote nou nan dezyèm règ nou an pou Python-- bibliyotèk estanda metòd fonksyon tout, se zanmi ou yo. Lè li nan souvan vo pandan y ap ou yo ale kap chèche Mwen mande si gen nan yon bagay ki jis fè sa a. Gen pwobableman se. Si ou ta renmen pad soti yon fisèl, si ou ta renmen pran do a mwatye nan yon fisèl, si ou ta renmen fè rechèch nan yon fisèl, si ou ta renmen kraze yon koup de bagay sa yo ansanm ak yon kòd ak vigil ant yo, gen bibliyotèk estanda fonksyon pou fè sa. Apre sa, li fè lavi ou pi fasil si ou sèvi ak yo olye pou yo woule nan tout bagay sou pwòp ou a nan senk liy nan kòd isit la, senk liy nan kòd isit la. Ki vrèman kòmanse nan ajoute jiska tan reyèl. Youn nan bagay ki enteresan sou ki jan sa a vin rele. Ou pral avi ke gen nan yon bagay dot. Mwen gen kèk objè sou bò gòch la, ak Lè sa a mwen te rele yon dot yon fonksyon. Sa a se youn nan paradigmes yo ki Piton itilize pou atache metòd yo objè yo. Nou pral pale sou sa sa a se yon bagay ki yon ti tan nan fen a, men konnen ke nou ka tou de opere sou bagay lè yo pran ki dot bagay li di kèlkeswa sa, oswa lè w rele yon fonksyon ki pran ki objè ak kèk lòt agiman. Se konsa, sa yo, se tou de fason ki bagay jwenn fè nan Piton. Apre sa, si yon patikilye se fonctionnalités aplike nan sa a style oswa sa a style se yon bagay ke ou ta dwe gade moute jouk ou jwenn yon pann pou ki youn li a gen anpil chans tonbe nan. Genyen yon plis oswa mwens limenm filozofi dèyè Piton ke ou absòbe sitou pa ekri yon anpil nan li. Nan kèk pwen, ki youn nan sa yo pral yon bagay kapab aplike kòm vin natirèl. Pou kounye a, li nan jis yon bagay ou aprann jan ou konnen chak bagay endividyèl elèv yo. Bibliyotèk Se konsa, estanda fonksyon se zanmi ou, Epi moun yo kite ou ekri bagay sa yo ke pran moute espas sa a anpil reyèlman yon ti tan, reyèlman chik. Lè sa a se aktyèlman pwobableman plis lizib, mwen ta di, pase pwogram nan C sou la. Nou pa mansyone lefèt ke se konsa kout ou ka anfòm yon elefan antye nan espas ki la ke nou te sove. Yon lòt bagay, sa a se yon aplikasyon nan Mario sa a, se dot C, ki mwen panse ke se pi kout la ou ka jwenn li. Li pa gen int nan jwenn, men li kòd difisil valè a nan 10 menm fason an ki yon sèl sa a fè. Sanble ke yon sèl sa a revèy nan nan 84 karaktè, Lè nou konsidere ke Piton se 64. Lè sa a se enfiniman plis lizib pase fatra sa a isit la. Se konsa, Piton se pi plis efikas nan espas. Li nan yon ti kras mwens efikas nan tan, men se pa pa anpil. Lis yo se yon bagay enpòtan nan Piton. Nou pa gen pou wè yo, men yo opere anpil tankou ranje fè nan C. Se konsa, isit la, ou ka deklare yo, ou ka pase yo nan yon bagay. Koulye a, kare kenbe yon etalaj de bagay sa yo. Yon fwa ankò, nou pa yo te deklare kòm kalite, men si nou tout tan tout tan eseye sèvi ak li, nenpòt ki bagay ki ou ta atann yo travay sou yon etalaj de nonm antye relatif ki pral travay sou yon etalaj de nonm antye relatif. Sa a se yon bagay ki ou absoliman pa kapab fè nan C, paske nan memwa li se konsa men sou li a, men se trè fasil fè nan Piton. Si m 'vle etalaj m' yo dwe pi gwo, mwen kapab kole yon eleman nan li epi li amann. Ki sa ki k ap pase sou dèyè sèn nan? Entèprèt la pral ale deyò epi yo jwenn kèk memwa, e petèt li pral jwenn yon ti kras nan siplemantè memwa, Se konsa, mwen pa konsa pou sa mwen pa gen realloc chak fwa. Men, ki jan anpil gen plis memwa li bezwen? Sa a se pa desizyon ki di ou gen fè, sa yo, se desizyon ki entèprèt ki pral fè. Isit la nou wè seri kapab pran de agiman, men li la toujou pral fè enklizif nan tèt la se konsa nou ajoute 1 a. Sa a se yon ekspresyon tout moun, ki se yon menm plis entelijan fason yo ekri bagay sa yo tankou sa a. Yo rele li lis konpreyansyon, ak isit la ki sa nou ap di se Mwen ta renmen yo mete nan mwen okib pou chak valè de mwen nan sa a ranje. Bagay sa a sou bò dwat la ta ka yon lòt etalaj, ak bagay sa a sou bò gòch la yo dwe nenpòt ki fonksyon patikilye ki ta pran nan mwen kòm yon varyab ak ban m 'soti kèk rezilta. Sa mwen ap pral fè se, Mwen pral konstwi yon etalaj sa a, se tout bagay sa yo pou chak valè nan sa a ranje. Lè sa a se super elegant, super ti bout tan, ak li a trè klè ki sa li vle di. Sa a se youn nan nan things-- sa a se ankò, youn de- trè anblèm nan nan rezon ki moun tankou Piton. Si ou renmen pwogram tankou sa a, Lè sa a, Piton se yon lang ou ta renmen yo aprann. Epi ankò, gen teknik rezon ki fè sa a travay. Men, osi lwen ke nou ap konsène, nou plis oswa mwens pa pran swen. Se konsa, si ou vle enprime soti lis, kèk nan lokusyon yo menm yo itil yo. Pou mwen nan sa a ranje, nou te kapab endèks nan tout bagay sa yo ak Lè sa a enprime yo tout soti. Epi ou pral wè Len isit la. Si ou te janm te vle jwenn longè a nan etalaj la, ki nan trè fasil nan Piton, li trè difisil nan C. Sa a ta enprime soti egzakteman sa ou ta atann li yo. Nou te kapab tou, menm jan nou te wè anvan, repekte sou eleman yo nan etalaj dirèkteman, ak Lè sa a jis pale sou yo, olye ke gen endèks la tounen nan etalaj la chak fwa. Lè sa a se yon bagay ke ou ka fè. Se konsa, nan C, si ou mande pou yon bagay tankou sa a, ekri an lèt detache ta ka di, sa a, se yon etalaj de nonm antye relatif. Sa a definitivman pa yon fisèl, mwen pa ka enprime li. Piton plis oswa mwens pa pran swen. Se tankou, ki gen la yon fason ke mwen te kapab vire sa a nan nan yon fisèl? Yeah, mwen pral fè sa. Se konsa, mwen pral jis enprime ki deyò. Sa vle di ke ou kapab fè bagay sa yo sa yo like-- se pi fò nan pati pyès sa yo difisil nan jwèt nan kenz, ekri trè yon ti tan nan Piton. Ou pral wè ke gen nan yon ti kras isit la de- Mwen te jete yon nonb antye relatif nan yon fisèl, epi mwen te gen fè sa manyèlman. Apre sa, mwen pral ajoute li nan yon lòt fisèl, oswa otreman Piton vin konfonn. Men, si lè w ap ajoute yon fisèl nan yon nonb antye relatif, menm Mwen ta kwè yo ka resevwa yon nonb antye relatif tounen oswa yon afè tounen ankò? Men, ankò, si ou jis rele str sou yon bagay, epi li te kapab nan nenpòt posib dwe mond konvèti nan yon fisèl, li pral pwobableman ap konvèti nan yon fisèl. Isit la, nou wè pou sèvi ak lis enbrike konpreyansyon sou bò gòch la, gen kèk Indexing, ki se egzakteman menm jan ou ta dwe itilize li, ak kèk enprime soti nan bagay sa yo. Yon fwa ankò, nou te defini kèk fonksyon ak nou pral rele yo desann nan prensipal lè nou aktyèlman jwenn dosye a. retounen travay egzakteman menm jan ak ou ta atann de travay ak C. Jwenn, nou ka mete kanpe bagay sa yo tankou sa a men isit la nan lis konpreyansyon gen nan yon plasman nan yon varyab, epi nou ka aktyèlman fè li menm vin pi fasil. Nou pa bezwen ekri rechèch, paske bati-an nan lang lan se si bagay sa a se nan etalaj sa a. Retounen vre, lòt moun retounen fo. Se konsa, sa a, se antye a nan jwenn. Antye a nan sòt enplike rele sòt, ki is-- gen en nan sa a bati nan sèten bibliyotèk C. Si w ta renmen sa a sòt de bak, ou pase sou desizyon sa a si ou vle ka agiman nan do ak yon vre. Men, si ou ta renmen sòt sou strings, ki nan bati-an kòm byen. Se konsa, sa a se pa yo di sa yo, se bagay sa yo ke ou bezwen fè chak jou, men lide a se ke sa a se filozofi a nan Piton, ki tout bagay sa yo ou ta ki sòt de vle fè yo bati-an. Ak sa ki pi fonksyon estanda, se konsa sòt, longè, kèlkeswa sa, sipòte opinyon pi lojikman sansib. Ou rele Len sou yon etalaj menm bagay la tou fason ou rele Len sou yon fisèl. Ou multiply-- ou sòt strings menm jan an ou sòt ranje. Pifò fonksyon estanda ke gen moun ki bati, ak sa ki pi twazyèm-pati bibliyotèk ke gen moun ki bati, paske yo ap Emulation desen an nan bibliyotèk la estanda, ka rele yo sou tout bagay ke w ap tankou, poukisa yo pa sa a jis travay, nan C. Plis oswa mwens, li pral travay nan Piton paske moun travay dèyè nan figi konnen ki sa ki yon bagay se ak Lè sa a opere yon fason ki apwopriye sou li. Se konsa, ankò, jan nou koumanse teknik, men li fè lavi nou pi fasil kòm pwogramasyon. Se konsa, isit la nan dosye mwen / O. ranpli I / O gen anpil bagay ti kras ki fè li konplike, ak pou gen resous sou entènèt, men nan yon Nutshell, ou rele louvri sou yon dosye non ak yon kalite patikilye. Se konsa, ki nan li, li ak ekri, ekri oswa kole. Ou li yon sèten kantite karaktè deyò epi yo ou enprime sa yo, ou pral jwenn Hello! Mwen vle di, tankou sa a ranpli te gen Hello! Nan li, rele li, ak sa ou pral jwenn tounen se yon fisèl ki te gen tout nan rès la nan etalaj la, oswa tout nan rès la nan dosye a. Si ou rele li ankò, w ap nan fen dosye a, e konsa ou pa jwenn anyen ak se konsa ou pral fèmen. Yon fwa ankò, sa a se .Fèmen olye ke fèmen dosye, kòm li ta dwe nan C. Sa a se plis oswa mwens paske f se yon bagay, epi ou ta renmen pou f yo fèmen. Men, dosye debaz mwen / O se pa patikilyèman konplike. Yon fwa ankò, si ou ta renmen yo louvri yon dosye, si ou ta renmen li yon liy patikilye, ou ka jwenn soti nan patikilye line-- gen nan bati-ins pou sa. Si w ta renmen yo ekri yon bagay, ou ka ekri sa a. Si w ta renmen yo ekri soti endividyèl mòde, ou ka ekri sa yo. Men, si ou ta renmen repekte sou liy ki nan yon dosye endividyèlman, menm jan nou te fè nan yon moso soti nan yon kèk semèn de sa, ou ka fè sa a. Yon fwa ankò, pi objè ke ou ta renmen pou kapab repekte sou sipò iteration sou yo. Nan Pythons, se yon dosye se petèt yon bagay ki Mwen ta renmen repekte sou liy pa liy. Si li te yon diksyonè nan mo epi mwen te ap eseye jwenn moun endividyèl Mo soti, lè sa a, nan sa a riban, liy li a pral fè chak mo nan vire ak sa a ki pral yo dwe egzekite pou chak liy nan dosye a jouk nan fen dosye a. Epi ankò, si mwen enprime soti chak liy, liy ki vini ak liy nouvo, se konsa mwen mete fen nan tounen nan yon bagay tankou sa a. Apre sa, mwen ta jwenn sa ki nan dosye mwen. Bagay la dezyèm ki opere nan kèk fason tankou lis, ak nan kèk fason kòm yon bagay anpil plis pouvwa anpil, yo diksyonè yo, ki se reyèlman fre yo sèvi ak men yo fondamantalman Hash tab nan degize. Ou kreye youn lè l sèvi avèk egzakteman de karaktè, ki se pè si ou te eseye aplike nan regle tab pou mete pwoblèm ou an, èske w konnen pi doulè ki kapab. Men, moun ki te fè li, epi fè l 'se konsa byen, ki ou pa bezwen enkyete sou li ankò. Lè sa a, ou ka insert bagay endividyèl elèv yo. Tables-- Hash oswa diksyonè pa fè sa patikilyèman swen sa w ap estoke nan yo. Se konsa, si kèk antre yo nimewo, ak kèk antre yo se lis, si kèk antre lòt diksyonè, ak kèk antre yo strings, Piton pa fè sa anpil swen. Yon fwa ankò, si ou ale nan li tann yon afè ak sa ou jwenn tounen se yon etalaj, ki nan pwoblèm ou. E petèt li fòt nan moun ki va la te panse li te mete bagay sa yo an nan diksyonè a, petèt sa ki te ou. Si sa te yon moun lòt moun, èspere ke yo te byen Konpòte sou sa te ale nan diksyonè a epi yo pa t 'kite nenpòt enkonvenyans pou ou pou w tonbe nan. Men, fonksyon yo estanda pral ba ou tounen byen Konpòte bagay sa yo. Se konsa, yo di sa a retounen do yon diksyonè nan strings, Lè sa a, tout bagay w ap ale jwenn soti nan se yon fisèl. Si ou fè sa kèk nan sa a ak li vwayaj ou leve, byen, ke sa ta kapab sou ou. Piton sètènman ba ou ase kòd pann tèt ou, si ou ta renmen. Koulye a, nou ka enprime soti endividyèl eleman nan sa a ak sa a retounen ekzakteman ki sa ou ta atann. Ekzakteman ki sa ou ta atann, mwen devine, se yon fraz ke mwen lè l sèvi avèk yon anpil, men sa a plis oswa mwens ki jan Piton fonksyone. Si ou mande pou yon bagay ki se pa li, Piton pral voye jete soti yon erè epi li pral kite ou soti nan tou sa pwogram ou te nan. Li pral aktyèlman enprime soti plis enfòmasyon pase sa, li pral pwen you-- li 'tout ajoute yon liy, ak sa. Epi, ankò, petèt nou vle repekte sou diksyonè epi jwenn tout bagay sa yo nan li. Isit la nou yo iteration sou de bagay an menm tan an. Se konsa, nou pral fè l 'ak yon kle, valè, men Lè sa a enprime soti tout moun sa yo. Men, si nou te vle cast-- si nou aktyèlman kouri sa a, nou ta gen kèk pwoblèm paske on-- lè nou antre ansanm avè David, li pa t 'kapab add-- si nou pa t' jete l 'bay yon afè premye, nou pa t 'kapab ajoute ke etalaj nan strings sou yon fisèl. Men, si nou jete l 'bay yon fisèl, nou jwenn yon bagay tankou sa a, ki se petèt ki sa nou ta renmen li. Lè sa a se ortograf. Nou jis li nan bagay sa yo. Se konsa, nou ka li nan Mo endividyèl yo jan liy yo. Nou koupe koupe dènye a bagay, se konsa kolon mwens 1 chomps koupe bagay la pase ke we-- pèsonaj la sot pase yo nan yon fisèl. Nou pral di. OK, chak youn nan moun ki vin mete nan diksyonè sa a, kat nan yon valè de 1. Nou pa fè sa patikilyèman pran swen sou ke yon moun, men li la jis gen vle di, oh byen, bagay sa a mwen pral mete nan diksyonè a. Paske pita sa nou ap pral fè se nou ap pral di, byen, si li nan an nan diksyonè a nan tout. Yon fwa ankò, tcheke sa a pou rapòte se jiska opere l sèvi avèk yon konplètman diferan algorithm pase sa li pral nan yon lis, men nou rele l 'menm jan an, ki se kèk nan ki kouch sik Piton bagay sa yo ke yo ap pi fasil yo sèvi ak. Epi ankò, nou te wè bagay sa yo tankou sa a anvan. Sa a se fondamantalman jwenn, oswa li nan ekzakteman menm bagay sentaks la kòm jwenn, men se opere sou yon konplètman diferan estrikti. Apre sa, nou pa patikilyèman pran swen. Se konsa, sa yo se bagay sa yo ke ou te mande yo aplike pou ortograf. Nan ritm sa a, nou ap ale nan jwenn plis oswa mwens tout nan psets yo fè. ODYANS: Se konsa, ki fondamantalman jis vini tounen kòm mal eple si li fè sa pa matche ak yon bagay nan diksyonè a? ROSS RHEINGANS-YOO: Wi, repons lan se wi. Se konsa, sa a se yon adaptasyon nan yon pwoblèm mete ki mande ou fè egzakteman sa. ODYANS: Poukisa se liy lan mwens 1 a? ROSS RHEINGANS-YOO: Se konsa, lè w ap iteration sou yon dosye mande pou pa liy, liy ki vini ak yon karaktè nouvo liy nan fen l-- 1 nan mwens se jis yo achte moun nan. Lè sa a se yon patikilyèman fleksib fason pou Indexing nan bagay sa yo. Se konsa, si ou gen yon fisèl, epi ou ta renmen, byen mwen se ale nan kòmanse nan karaktè twa ak mwen pral pou yo ale nan fen an. 3 kolon pral fè sa pou ou. Si ou se tankou, mwen vle kòmanse nan la kòmanse epi ale nan 1 nan mwens pase karaktè, kolon mwens 1. Men, si ou te vle ale soti nan twazyèm lan nan mwens nan premye, lè sa a ou ta di 3 moins 1. Anplis de sa, si ou vle endèks nan bagay sa yo konte soti nan do a, ou jis endèks nan ak nimewo mwens. Epi paske, kote C ta eksploze oswa petèt manje ou lòt memwa ou pa t 'gen aksè a, koute ou ka di mwens 1 vle di dènye a men 1 karaktè nan yon fisèl. Modil yo se version-- yo analogue bibliyotèk nan C epi yo itil pou yon anpil nan bagay sa yo. Yon anpil nan bagay sa yo ou ta renmen fè nan Piton, san konte senp manipilasyon nan varyab, ou vle kwòk an nan pi gwo ak pi gwo bibliyotèk interfaces ak plis ankò kapasite pou kominike ak lòt pati nan mond lan. Sys se youn nan moun ak yon pakèt moun sou zouti ki yo itil yo pou kominike ak sistèm nan tèt li epi yo pral enpòte li tankou Sys enpòte. Genyen plis dokiman soti nan ki, ki ou te ka ale isit la, oswa ou ta ka jwenn sou Google pa googling Piton SYS. Ou tape nan antre. Lyen an premye a pwal dokiman an nan Piton 2, lyen ki dezyèm ki pral gen Piton nan dokiman 3. Men, si nou te ekri soti yon dosye ki te tankou sa a men Si an patikilye, nou ap gade nan opere sou agiman liy lòd, tankou nou te aprann fè trè byen bonè nan nan klas sa a. Sa a se pa difisil. Ou ka jwenn soti argv, ki se youn nan bagay sa yo ki se aplike pa SYS. Li pa nan bati-an nan la pake baz, men ankò, ou ka pwolonje li pa importation ki fonctionnalités soti nan SYS. Ou ap rele li SYS. kèlkeswa sa. Isit la gen nan argv. Genyen aktyèlman pa gen okenn arg nan Sys, paske ou ka jwenn li konsa fasil lè w rele Len. Nou Lè sa a, enprime ki soti, lè sa a nou kouri sou echo-args.py tèminal nou an. Nou jwenn tounen yon etalaj, ki se agiman sa a an premye. Yon fwa ankò, sa a se argv 0, ki se nan non bagay la ki te resevwa rele. Si nou rele l 'ak plis agiman, nou ta jwenn sa yo tounen. Sa a se youn fason pou trape liy lòd agiman. Si ou vle ou vire kote drapo bagay patikilye sou oswa pase sou desizyon yon default patikilye, argparse se zanmi ou yo. Epi ankò ou jwenn ke sou entènèt a piton argparse nan Google. Gen yon koup nan sèvis piblik modil ke ou jwenn tèt ou lè l sèvi avèk e ankò, si ou pase nenpòt ki lè nan lang sa a importation jsons pou lekti nan ak soti nan JSON dosye, pa sa ki konplike. Ou louvri moute yon dosye, ou rele json.load sou sa dosye ak ou jwenn tounen yon bagay. Ki sa ki se ke bagay? Li se yon objè JSON. Ki kote ki JSON gen etalaj, Piton a gen ranje. Ki kote ki gen JSON ranje asosyatif, Piton a diksyonè, strings, ak nimewo, ak sou sa. Ou vle pil fatra ki soti, ou louvri moute yon nouvo dosye, ou rele pil fatra, ak charj ak depo ale nan ak soti nan strings. Menm jan tou, marinated vin rele nan fondamantalman koòdone a menm. Li nan yon ti kras plis itil si w ap moun ap jete fatra Piton objè yo. Se konsa, si ou te janm te vle pou konsève pou yon vèsyon nan estati aktyèl la nan yon varyab pou yon avni kouri nan pwogram ou an, marinated se Piton a bibliyotèk pou fè sa. Si w gen nenpòt sòt de varyab ki ka ekri soti nan mo tankou ak karaktè ak bytes-- tankou diksyonè sa a, nou te ka ekri, nou te kapab ekri li desann kòm tankou yon objè JSON, ki te literalman sa yo karaktè. Lè sa a, li ta trè fasil pou yon moun yo louvri li leve- louvri moute , li li l. Si nou pa t 'patikilyèman pran swen sou moun lekti li, nou te ka package menm pi plis efikasite nan fòm ki ta ka pita dwe anbalaj oswa ki ta ka pita dwe gonfle. Lè sa a sove 80% nan la espas ki objè ou ta ka pran si ou te ekri yo soti lonnd. Ou rele marinated anpil menm way-- pil fatra, chay la, ak Lè sa a ou jwenn bagay sa yo ou tounen. Se konsa, si w ap ekri yon bagay ki pwogram Piton kout ki vle pou konsève pou eta a, ak Lè sa a li yo tounen apre sa, bagay sa yo tankou sa a tout, se zanmi ou yo. Ke ou ta ka trè fasil pil fatra yo tankou JSON. Pifò Piton objè ka pil fatra soti nan JSON si gen nan nenpòt ki espwa ke struktural yo te kapab dwe reprezante ki fason. Sa yo se sèlman pwent an nan la iceberg sou modil ki yo itil yo. Se konsa, Sys, os, multiprosesin, yo sòt de workhorses debaz pou bagay sa yo nou bezwen kominike avèk sistèm dosye eksplwatasyon an., tankou os.isfile, os.isdirectory, os.makefile, sa yo se zanmi ou yo. Si ou vle kominike ak yon kalite dosye patikilye, JSON, marinated, CSV. Si ou vle kominike avèk entènèt paj, urllib nan pou jwenn http paj. bs4-- BeautifulSoup-- li nan yon bèl bagay pou analizeur html. Ou kouri l 'sou yon html epi ou jwenn sa a etalaj enbrike objè kounye a, kote ou ka Traverse sou Lookin, ak tankou jis kap chèche si, se, nan, ki se kokenn. Genyen yon pakèt moun sou pakè pou running-- pou fè patikilyèman bagay mathy. Se konsa, si ou vle anpil anpil pitit, Invert, transfòme matris, numpy se itilize pa moun nan tout mond lan pou sa. scipy se menm plis itil zouti nan ki direksyon. sklearn-- aprantisaj machin, pwosesis ak lang natirèl, super bagay ki itil, vin aplike nan Piton tout tan tout tan an. Epi ankò, yon ti kras pran plis tan yo write-- regrèt, pran yon ti kras pi lontan nan kouri, men rezon ki fè reyèl yo gen tandans enjenyè itilize Piton se paske ou gen tandans yo dwe bloke sou ou ekri kòd la, olye pase òdinatè w lan kouri kòd la. Se konsa, si w ap ale nan ekri yon pwogram, ki anpil nan lòt moun yo ale nan sèvi ak pou tout tan, tankou Linux, ou ta ka ekri li nan C. Si ou te ale nan ekri yon motè kalkil, ou ta ka ekri nan Piton si ou bezwen chanje li chak mwa koup. Gen kèk moun ki ta ekri l 'nan C paske yo ap tankou sa. Se konsa, nou te wè Sys enpòte kòm yon fason pou trape bagay pou trape modil nan pwogram ou an. Ou kapab tou enpòte li kòm yon tinon, si ou ta renmen. Yon fwa ankò multiprosesin se yon doulè yo tape soti chak fwa, se konsa enpòte kòm MP ak Lè sa a nenpòt lè ou sèvi ak li nan pwogram nan, ou pral di mp.process, oswa sa ki gen ou. Si w ta renmen enpòte sèlman yon bagay yon sèl, se konsa urllib gen yon bagay yo rele demann, se konsa ou ka jis enpòte sa. Apre sa sou li a, ou pa pral envoke li kòm urllib.request, men jis kòm demann pou kont li. Epi ou ka enpòte tout bagay ki sòti nan yon modil si ou ta renmen. Sa a se detanzantan pa yon idea-- bon sa a anjeneral pa yon bon lide, aktyèlman. Paske ou paske si anyen very-- nan ki modil gen yon non ke ou te vle sèvi ak yon lòt kote nan pwogram ou an, ou pa kapab. Epi li se pa toujou evidan ki sa a, se ka-a. Yo nan lòd yo asire w ke sa ou t ap fè te an sekirite, ou bezwen louvri moute modil la ak wè tout nan non yo ki fini nan there-- tout nan fonksyon yo, tout nan varyab yo ki ap viv nan ki modil, paske w ap pote tout nan Espas non yo nan lokal ou a. Se konsa, pèp fè sa. Li se jeneralman rekòmande ke ou pa fè sa. Men, moun ki fè sa a tout tan an paske yo ap parese epi yo pa vle tape soti MP. anyen, tout tan. Tout bagay sa a pale sou modil mennen m 'bò kote nan yon pale kout sou ki jan ou desine pwogram nan Piton. Premye etap la se yo tcheke yo wè si nenpòt lòt moun te deja fè bagay la, oswa fè 90% nan bagay la. Chans yo yo pwobableman gen, epi ou ta dwe ale jwenn bagay yo epi yo kouri sa. Ou ekri yon pakè bò kote l ' adapte li nan objektif ou. Li nan sèlman apre yo fin ki gen echwe Lè sa a, ke ou ta ale sou yo ak write-- kòmanse panse sou ki jan ou ta ka mete bagay sa a yo ansanm. Genyen anpil bagay nan bagay yo deyò, e ke sa a youn nan ki pi itil nan bagay sou Piton. Fè tankou lang nan se elegant, lang nan se fasil yo sèvi ak, men tou, paske li nan tèlman elegant ak fasil yo sèvi ak, moun yo te lè l sèvi avèk li pou yon bon bout tan ak gen nan yon anpil nan bagay yo deyò ki ou kapab hanache pou itilize pwòp ou yo. Se konsa, règ sot pase yo nan Piton se, yon moun lòt te deja pwobableman ekri yon modil pou sa, yon moun lòt bagay te deja pwobableman ekri yon bibliyotèk pou sa. Anvan ou eseye fè yon bagay, gade yo wè si li a te aplike. Li pa ke difisil. Tout moun nan modil yo ke mwen mete anvan, ak petèt youn eksepsyon, vin pre-enstale nan chak estanda enstalasyon Piton. Se konsa, ak yon rele nan enpòte tou sa, ou gen nan tout sa fonctionnalités nan men ou. Kòmanse vlope moute sa a pale, gen yon bagay kèk ke mwen te kite kòm bwat nwa ak sòt de glossed sou, ak gen nan yon blan kèk manti ke mwen te di yo ke pou dedomajman pou la onètete, Mwen pral omwen pwen an isit la, menm si mwen pa vle ale super fon nan tout nan yo ak eksplikasyon teknik yo. Yon anpil nan bagay sa yo ke mwen te rele majik se sa lòt moun ta ka rele objè pwogramasyon oryante. Se konsa, gen anpil bagay nan things-- se konsa varyab yo trè souvan pa bytes senp chita nan, memwa, men yo bagay ki konplike anpil objè ki gen entèn eta sou fonksyon ak anpil varyab nan kache, anpil nan kache fonctionnalités, ki pèmèt ou vire yo nan strings, ki pèmèt ou repekte sou yo. Men, si w ap writing-- ak rezon ki fè nan yo ke yo gen tout bagay sa yo fonctionnalités rich se paske yo people-- achitèk yo nan la language-- te ale nan ak pou chak estanda objè, mete nan fonksyonalite a yo di sa a se ki jan sa a se ki jan sa a ki pral opere si yon moun vle repekte sou li. Se konsa, tout bagay ki yon moun ta ka pètèt vle repekte sou, te ekri nan lojik manyèlman sou kòman w ap sipoze repekte sou ki objè. Tout sa ou ta ka pètèt vle jete nan yon fisèl te lojik ekri. Sa a se fonksyon an ke ou rele si ou vle pil fatra sa a soti nan yon fisèl. Sa a se poukisa ou kapab rele Len sou bagay sa yo, sa a pou rezon sa ou ka rele pou nan, sa a se poukisa ou ka rele si nan sou tout bagay ke ou ta vle, paske moun tout ap pote avèk yo, teknik konnen ki jan-nan fè sa. Sa a se yon bagay ki mwen se super pa pral antre nan. Men, pou bagay nan lis se subtile diferan de C style pou pasan, epi ou ka li tout sou ke sou entènèt la si w ap enterese. Gen yon bò fènwa nan tout nan sa a, pou m 'mansyone, se konsa gen nan de bagay sa yo. Premye a se ke sa a objè oryante pwogram ajoute yon anpil nan sou tèt nan bagay sa yo o aza, se konsa ou fini lè l sèvi avèk yon anpil plis memwa; ou fini lè l sèvi avèk yon pi plis ti kras tan pase ou ta otreman. Other-- a men li plis la trètr bò fènwa a sa a se, si bagay sa yo jis aji tankou ou vle yo san yo pa ou gen yo panse super difisil sou si sa a ta dwe yon int oswa si ta dwe gen yon flote, li ta kapab ki sou isit la ou pwodwi yon int men sou isit la ou panse men yo pral always-- regrèt, li ta kapab ke isit la ou pwodwi yon flote, Men, lè ou jwenn yo dezyèm pati a nan pwogram ou an, ou ap panse, oh byen, men yo pral toujou pase m 'yon int. Men, si yo pa fè sa, li posib ke ou kale yon kote, si ou eseye sèvi ak sa nan endèks nan yon etalaj, oswa sa ki gen ou. Se konsa, youn nan reyèl la bagay sa yo itil sou C se li fòs ou yo panse reyèlman difisil anvan ou fè any-- anvan ou pote nenpòt varyab nan egzistans, tankou sa se ki kalite varyab sa a. Apre sa, li nan ale nan gen ki kalite pou tout tan. Sa a se pa vre Piton, ak nan reyalite, ou can-- si w ap jis sòt de ap pase zòrèy, epi ou fè kèk desizyon yon fason nan yon sèl kote, ak kèk desizyon yon sèl fason nan plas la lòt san yo pa mete ase bagay dèyè sèn nan nan plas la lòt trape bagay byen, ou ka jwenn kèk erè trè etranj. Ak pwogram nan kapab kenbe kouri pou yon tan trè lontan, paske li nan fè yon anpil nan travay yo di, byen bagay sa a te kapab opere fason sa a, se konsa mwen pral kouri fason sa a. Ak an reyalite, lefèt ke li pouse voye nan yon anpil nan ti erè vle di ke, souvan lè yon erè se aktyèlman move epi ou aktyèlman vle fikse li, li fini moute mil away-- pwogram nan fini moute kanpe mil lwen soti nan lè ou te gen erè ou yo. Se konsa, yon sèl bagay ke nou ta renmen pwogram fè, sometimes-- yon sèl bagay ke nou ta renmen pwogram w dwe fè lè nou ap debogaj se febli byen fò ak fail trè byen vit lè yon bagay ale mal. Piton se trè move nan sa. Piton se yon bagay ki bon nan pa li pap resevwa ak woule pou pi devan a bagay inatandi. Se konsa, sa a se itil pou lè w ap ekri pwogram ki piti yo. Lè ou jwenn konplike pinèz li pafwa pran yon tan long yo toumante yo deyò. Se konsa, gen nan yon bò fènwa nan tout nan sa a, tankou li jis ap travay. Li jis travay tankou ou ta atann l 'bay. Eksepte ke lè li fè sa pa, ou fini moute nan yon kote ki konplètman diferan ak ap eseye konnen ki kote li te ke ou te ale mal. Koleksyon fatra is-- konsa yon sèl bagay ke ou ap remake se ke nenpòt nan bagay sa yo pou Mwen te te pote nan existence-- ranje sa yo, sa yo diksyonè, sa yo objè, sa yo files-- pa janm jwenn libere. Pa te gen okenn rele nan gratis nan nenpòt nan pale sa a. Ak sa ki te sou C-kòt la, paske nou pa janm moute nan bagay sa yo. Men, nan Piton-kòt, gen se pa yon gratis. Bagay sa yo jwenn otomatikman libere lè Piton panse ou pa ap gade nan yo. Li nan reyèlman bon pa libere bagay sa yo ke ou ta ka toujou pètèt dwe gade nan, men sa a vle di ke si ou te ale nan asiyen bagay sa a gwo, epi w ap tankou, o M 'ap fè ak li kounye a, difisil li a di Piton ke w ap fè ak li kounye a. Ou ka pafwa mete varyab sa yo dwe pa youn, ak Lè sa a espere ke evantyèlman pèseptè a fatra vini nan ak netwaye li soti. Men, ankò, ou pa fè sa gen kontwòl sou sa. Ak youn nan rezon ki fè yo ke gen moun ki sèvi ak C pou vrèman Pèfòmans bagay kritik, se kapasite sa a yo vrèman konnen ki lè se memwa resevwa lajan ak lè li nan libere, epi yo gen yon anpil nan kontwòl sou li di: Mwen lè l sèvi avèk pa gen okenn memwa plis pase mwen bezwen. Ki se yon bagay ki Piton se pa sa ki gwo nan. ODYANS: Èske mwen ka mande w yon kesyon? Ki sa ou te vle di pa febli byen fò? ROSS RHEINGANS-YOO: Se konsa, si yon bagay k ap pase sa ki mal epi w ap nan debogaj mòd, ou ta trè souvan vle pwogram ou di ou kote egzakteman li nan ale sa ki mal, epi li pa jis tou dousman sispann kouri. Men, ou ta aktyèlman li ekri ak lèt ​​detache soti tout kalite enfòmasyon sou tankou, isit la se te sa a. Bagay Sa te rive w ap enprime Si yon wen-- si w ap kouri yon server-- entènèt ODYANS: [fèbl] ROSS RHEINGANS-YOO: Yeah, si w ap kouri yon sèvè sit entènèt, li nan pafwa move si ou se toujou jete erè, ak w ap di: byen ki pa t 'travay. Mwen pral sispann. Mwen jis ale nan inyore li epi kenbe pral sou. Paske lè sa a ou ka jwenn nan dè santèn nan erè sa yo epi yo pa wè yo. Li ta sètènman kapab itil pou rezon debogaj si chak fwa sèvè entènèt ou te fè yon erè, ou te gen dosye dirab nan sa. Petèt ou menm vle pwogram lan yo sispann, se konsa ke dosye sa yo fè pa jwenn antere l 'anba bagay sa yo. Men, ankò, sa a, se nan mòd debogaj. Anpil fwa nan mòd pwodiksyon, nan lemonn yo se yon ti kras diferan. Ak nan ti Scripts ke mwen kouri, kote bagay la ki m 'te di yo fè ta ka sèlman yon ti jan an soti nan sa ki mwen ta renmen li fè, Lè sa a, sòt de pouse nan erè se yon bagay ou ta ka vle. Ak nan ka sa yo, sètènman Piton reyèlman touche kòmanse li yo. Bagay la pase ke mwen pa t 'pale nan sa a men ke mwen pa t 'pale sou men yo ka vrèman rajan premye a fwa ou gen youn nan erè sa yo, ak dezyèm la ak twazyèm ak katriyèm fwa ou gen yon sèl erè sa yo. Piton, mwen mansyone ke li sèvi ak espas blan di ou ki nivo mark ak sa ki fonksyonèl blòk w ap nan, li trete onglè ak espas yon lòt jan. Se konsa, si ou tab sou kat, ak Lè sa liy nan pwochen te gen kat espas, menm si yo montre moute kòm nan menm kantite lajan nan editè ou, Piton pa trete yo menm bagay la. An reyalite, Piton trete onglè ak espas tankou lwil oliv ak dlo. Yo se bagay sa yo jis diferan. Pa gen okenn patikilye longè ke yon tab se, se konsa li a pa tankou yon tab egal 8 espas, e konsa ou ta jwenn bò kote l ' ki fason. Tankou, lè li di, ki sa nivo nan espas blan mwen se nan, li se aktyèlman kap chèche yon modèl nan espas ak onglè. Se konsa, pi bon fason yo fas ak sa a se toujou sèvi ak espas tout tan tout tan an. Apre sa, an reyalite, nan Cloud9 nan IDE ak CS50 IDE a, kle Contenu foure ou kat espas nan olye pou nan yon tab, ki se super itil. Menm si ankò, si ou te ekri yon Piton pwogram ak onglè ki ta ka amann, li nan jis si yon moun te ale nan ak yo te eseye ajoute yon sèl liy nan pwogram ou ke te gen kat espas pou chak tab, li ta kraze. Epi li ta kraze nan yon fason ki vrèman se pa vizib. Menm si erè a vrè mesaj ke li lanse te fè ak nouvo indent pa atann isit la, or-- si li nan ap pale de alinea ak li sanble li nan sa ki mal, li la pwobableman paske gen nan yon pwoblèm tab-espas. Yo ap toujou rajan dbug. Tout la pi gwo nan pale sa a, ki mwen pa t ' li ale nan paske li nan reyèlman yon konplike, sibtil sijè, e li te pa nesesè yo fè nenpòt ki nan bagay sa yo nou te fè twò lwen, se yon konsèp yo rele tuples. Yo la anpil tankou nan ranje ke ou pa kapab modifye. Yo jwenn itilize sou tout plas la paske yo yo itil yo pou anpil bagay ki ranje yo pa itil pou. Men, si ou ta renmen fè yon etalaj, ak Lè sa a, pwomèt entèprèt la ke ou pa janm ale nan vle modifye ki bagay-- an reyalite, si ou vle li modifye, ou pral fè yon yon sèl nouvo ak nouvo nan valè nan l-- sa yo se tuples. Olye ke pwodwi yo ak parantèz kare, ou pwodwi yo ak parantèz wonn. Poukisa ou ta sèvi ak bagay sa yo, se yon ti kras nan yon kesyon. . Bagay la sèlman ki mwen pral di sou sa ki ou ka itilize kòm tuples endis pou diksyonè. Ou pa ka sèvi ak ranje kòm endis pou diksyonè. Epi poukisa se, ankò, teknik ak Mwen pa pwal kouri antre nan li. Pset a ke mwen pa te manyen pase nan pale sa a se pset6. Se konsa, isit la nan ki jan ou ta aplike a-- isit la nan ki jan ou ta aplike pset6 nan Piton. Kenbe nan tèt ou Piton a sik konsepsyon, premye bagay la ke ou fè lè w ap pwogram ekri se chèk yo wè si yon moun nan fè l 'deja. An reyalite, si ou vle serve-- Apache 50 fè apeprè sa a, eksepte li pa vini estanda enstale sou machin Linux. Piton fè, ak Piton a sèvè http senp fè kòm byen. Si ou se tout tan tout tan sou yon machin Linux, oswa deyò a Cloud9 IDE nan CS50 epi ou ta renmen sèvi sa a kounye a anyè nan yon pò patikilye, piton-m SimpleHTTPServer pò sèvi sa. Ou kapab tou enpòte sèvè a http senp ak li a te resevwa yon anpil nan fonksyonalite si ou vle Customize li, oswa chanje li, oswa yo kouri l-- hanache li a kouri sèvis pwòp sèvè ou. Se konsa, sa a, se Piton nan yon Nutshell. Lè sa a te gen CS50. Mèsi.