ROSS RHEINGANS-YOO: Sveiki, aš esu Ross. Ir tai yra CS50 seminaras. Jis nuves jus nuo programavimo C su programavimu Python. Python yra skriptų kalba. Tai daugiausia kaip C sintaksės, nors kai techninių detalių kaip kad sintaksė paleidžiama vykdyti yra šiek tiek kitoks. Tai yra mažiau galingas, nei C tikrais būdais. Tai yra mažiau išraiškingas už kur tiksliai jūsų kompiuteryje atminties gauna išdėstyti, kaip ji pasireiškia išdėstyti, kai ji pasireiškia laisvės ir tie dalykų rūšių. Tai labiau naudingas nei C tam tikrais būdais, nes tai lengviau programuoti. Kalba yra, kai Žmonės, paprastesnis. Ir tikrai, tikslas yra kad jis būtų greičiau programuoti ir potencialiai lėčiau vykdyti. Dabar, jei jūs manote apie kiek laiko Jūs išleista jūsų paskutinis problema nustatyti rašymas Jūsų kodas prieš daug laiko praleidžiate Jūsų paskutinio problemos nustatyti vykdančiosios savo kodą, norite įsivaizduoti, kad kalba kuris buvo du kartus taip greitai rašyti, ir du kartus kaip lėtai vykdyti, gali būti per C tobulinimas tam tikrais būdais. Žinoma, kai jūs bandote rašyti mažos programos daryti smulkmenos, Python yra naudinga pasirinkta kalba. Ir ne iš šio tikslo seminaras, tikiuosi jums būtų galima padaryti pasirinkimas būsimus projektus apie kurią kalba teisinga naudoti, ne idėja kad viena kalba yra labiau ištaisyti visą laiką. Keletas dalykų, apie ką seminaras. Šis seminaras nėra skirtas Išmokyti jus, Python nuo nulio. Python yra labai panašūs C, ir aš darant prielaidą, kad esate CS50 studentas, ar kas nors su panašiu susipažinę su C. Jei esate studentas CS50 aplink problema nustatyti 6, Taigi, jūs pamatysite daug dalykai C, aš duosiu jums pagrindiniai skirtumai, ir kai kurių dalykų kad padaryti Python skiriasi ir ypatingas ir naudingas, bet aš nesiruošia eiti kas programavimo kalba ir kaip rašyti programas. Tačiau šis seminaras bus išmokyti rašyti Python'o programas Jei esate vienas iš tų nedaugelio grupių. Vėlgi mes pažvelgti, kaip jums būtų įgyvendinti psets-- kad turėtų būti iš 1-6 Python-- ir suteikti patarimų oficialiai dokumentus ateičiai. Kitas dalykas, kad svarbu apie tai, kaip tai kalbėti yra priskirtas, Šis vaizdo įrašas bus internete, mandagumo CS50, todėl jums neturėtų jaustis kaip jums reikia užsirašinėti. Jūs visada galite grįžti atgal ir pažvelgti į jį vėliau kaip nuoroda. Papildomai skaidrės yra prieinami dabar šioje vietoje, kuri turėtų imtis jums padaryti Google dok. Tai šiek tiek sutrumpinta versija ką aš rodomi ekrane. Vienas atsargūs įspėjimas prieš mes šokinėti, Python 3 yra skirtinga kalba iš Python'o 2. Jie atrodo daug tas pats; yra labai nežymūs techninių skirtumų , kad bus sukelti programas parašyta Python 2 ne, kad būtų galima būti įvykdytas į Python 3 aplinkoje. CS50 prietaisas ateina su Python, pagal nutylėjimą ji naudoja Python 2. Galite tai patikrinti rašyti savo komandinę eilutę python version, kuris turėtų produkcija 2.7.6 dėl dabartinės prietaisu. Pabandykite Python 3, kuris daro dirbti į prietaisą, jei Python nutylėjimą 2.X.Y, arba apie prietaisas ar jūsų pačių mašinų. Jūs turėtumėte pakeisti Python 3 kada Šiuo kalbėti, kad aš rašau Python. Jei jūsų mašina veikia 2 pagal nutylėjimą, tipas 3 python tam, kad būtų galima iš tikrųjų sekti kartu ir vykdyti šiuos dalykus. Be to, aš jums priminti oficialių išteklių dabar. docs.python.org/3--~~V atsargūs kad tai yra 3, o ne 2-- turi naudingų nuorodų. Susipažinkite nuves jus per daug tų pačių dalykų kad aš darau dabar, išskyrus teksto forma. Nuoroda yra naudinga, kaip nuoroda į kalbą, ir standartinis biblioteka suteikia Jums kai pratęsimų su papildomu funkcionalumu. Taigi pats pirmas Python programa. Kairėje pusėje turime standartinį C, dešinėje, turime Python. Galbūt pripažino Ši problema, tai vienas iš pirmųjų problemos rinkiniai CS50 ir jų ją išspręsti, naudojant tą patį tirpalą. Dabar tos priežasties, kad mes Žvelgiant į šiuos iki pusės šono yra todėl galime pažvelgti sintaksines skirtumai. Vienas iš kambario dramblių kad jūs galbūt jau pastebėjote, teisė nuo šikšnosparnių, yra tai, kad Python turi ne pagrindinė funkcija vyniojimo aplink kodą. Taigi C, jums parašyti krūva failus, sujungti juos kartu, ir programa pradeda vykdyti ne tai, ką pavadino int main. Be Python, rašote failą, vykdyti failą, programa pradeda vykdyti tuo failo viršuje. Taigi jis ketina pradėti ties failo viršuje eiti žemyn, kol jis ras kažką kita. Nustačiusi funkciją apibrėžimą, ji nėra iš tikrųjų įvykdyti tą kodą, ji bus tiesiog apibrėžti funkciją. Bet čia, kai pirmasis Programa yra n yra lygus 10, pirmas dalykas, kad ši programa bus padaryti, tai priimti šį 10 vertė ir nustatykite jį į kintamąjį vadinamą n. Kalbėdamas apie šios linijos, vienas iš kita Quake sorry-- tai reiškia, kad C programos, jums parašyti jiems, jums padaryti juos, o tai remtis kai klingsėti komandas, ir tada jums trunka šiek todėl vykdomąjį. Python programas, jums paleisti Tekstas file-- šio mario.py galėtų būti šį failą, kad aš tiesiog parodė you-- jums paleisti failą ir jums vykdyti, ir jo turinys bus įvykdytas Python'o interpretatorius. Jūs galite tai padaryti savo IDE. Taigi, jei aš turiu Hello failą, kuris tiesiog turi šį turinį. Tai tikrai Python 2, ne Python 3, todėl nereikia nerimauti sintaksę dabar. Bet aš paleisti Python, ant hello.py, ir ji veikia. Kitas būdas, kad aš galiu naudoti Python kad Aš ne susidoroti su tiek daug šiame aptarimas, yra, jei aš tiesiog įveskite Python, ji lašai mane į aplinką, kurioje Galiu maitinti Python eilutė po eilutės. Taigi čia, jei aš tipo Spausdinti erdvė "Sveikas, pasauli". Įveskite įvesti. Jis bus spjauti man, kad atgal rezultatus kad individualus linija karto. Tai gali būti naudinga. Šiuo kalbėti aš daryti dalykus, ant skaidrių. Ir tokiu būdu jūs galėsite sekti kartu arba čia, arba rašyti faktiniai failus ir tada vykdyti juos. Tačiau, grįžta į šią kodas, dar vienas dalykas, kad jums gali tekti noticed-- gerai, ten du dalykai, kurie jums gali pranešimas apie šiuos blokus. Pirmasis, o daugiau kasdieniškas, yra ta, kad Python neturi gale kabliataškį. Kabliataškiais yra neprivaloma visur ir nekenksmingas visur. Jūs galite pridėti juos. Tai gali padaryti žmones, kurie rašo Python gyvenamasis kikenimas į tave už jūsų nugaros, nes jie nėra būtini. Dažnai jie yra būti nukeltas ženklas iš C. kalbos dizaineriai pajusti, kad jis yra daugiau aišku, šis būdas ir kad tai nėra būtina deklaruoti kiekvieną kartą, kai baigti liniją. Kitas keistas dalykas apie šią n tai neturi tipas pridėtą. Vienas iš magijos vienetų Python-- ir aš ruošiuosi jį vadiname magija, tačiau yra labai dėl techninių priežasčių, kodėl ji works-- vieną iš magija vienetų Python yra tai, kad kintamieji gali išplėsti arba trauktis, kad yra nepriklausomai duomenis tipų jūs norėtumėte juos. Taigi, tai yra 10. Jei vėliau žemyn Aš priskirtas šiam N 0.5, ji imsis, kad 0.5. Nesvarbu, kad tai int čia ir plaukti ten, nieko, kad naudoja šį n bus daugiau ar mažiau, galės Elst kartu, jei ji pasireiškia kuri nors iš šių. Nebent ten kai labai reali Priežastis, kodėl ji negali naudoti duomenis tipo, kad n metu turi, kuriuo metu jis bus gauti įspraudžiama ir mesti klaidą, ir tie dalykų rūšių. Bet čia, Python tikrai ne rūpintis, ką tai, kad aš ruošiuosi klijuoti tai sakinys, kaip, norite šį dalyką? Tai tas dalykas? Taip, tai tipo dalykas. Aš klijuoti jį iki galo. Tai bus problema vėliau, jei kažkas, kas nori naudoti tą galą negali tvarkyti. Tai yra vienas iš pagrindinis skirtumai tarp Python ir C kad daro tai lengva rašyti labai didelius C programas ir lengviau rašyti labai mažas Python programa. Už sintaksė nėra labai skiriasi, ką ji daro. Tai šiek tiek kitoks , kaip tai išreikšti. Taigi, tai yra labai, kas yra vadinama Pythonic, būdas jį raštu. už eilės diapazone (n), tai yra asortimentas skaičių nuo 0 iki n, imtinai ant dugno ir išskirtinis viršuje. Taigi, tai nuo 0 iki n-1, kuris yra ką C kodas daro, išskyrus tai daug lengviau pažvelgti, galbūt. Atitinkama blokas nėra užskaitomos tarpusavyje pagal petnešos, o tai užskaityti šio įdubimas. Taigi visų šių linijų yra keturios erdvės virš į dešinę, ar patinka dramblys pločio. Ir tie yra tie, kurie yra bus vykdomas Šis. Jei aš bałagan įdubimas apie tai ir aš stumti, kad Spausdinti Atgal į originalus įdubimas, kad spausdinimo paliks už kilpa. Priešingai C, kur čia aš iš tikrųjų reikia perkelti, kad uždarą petnešomis aplink. Tai reiškia, kad jums nereikia gauti klaidos kad iššokti į tave, nes tau įdėti petnešomis iš netinkamoje vietoje. Tai nereiškia, kad jūs gaunate klaidos kad iššokti į tave, nes tau atitraukiama linijos negerai. Taigi ji daro išpjovomis Super atsargūs. Tikimės, kad jums buvo yra super Saugokite savo įdubimas vistiek, ir todėl tai yra ne tai, kad daug didesnė našta. Bet pagrindinė taisyklė Python, ir mes turime tai pora kad mes eiti per per Iš aptarimas Žinoma, yra išbandyti natūralią sintaksę prieš ieškote nieko iki. Taigi tai sintaksė, už šis skaičius diapazone, labai savitas, kalbant apie stilių. Daug dalykų Python matysime, atsižvelgiant šią formą. Ir todėl, jei jūs sugalvoti su naujas objektas, kurį manote, kad Jums turėtų būti suteikta galimybė pakartoti Per šį, šiuo formatu, Pasirodo, tai tikriausiai palaiko tą formatą. Mes neketiname eiti Super giliai techninės priežastys, kodėl tai tiesa. Bet tai naudinga intuicija turėti kai jūs artėja Python programas, kad šis dalykas yra tik ketina dirbti. Pabandyk tai. Paleisti komandinę eilutę Vertėja, pamatyti, jei ji veikia, pereiti dalykų, prieš jus net reikia atverti "Google" ir pasakyti, Kokia sintaksė Tai ypač dalykas? Daug Python galėtumėte atrasti tiesiog bando. Tai jei yra dar labiau panašūs C tada FORS yra. Atkreipkite dėmesį, kad ten ne skliausteliuose. Skliaustuose yra, vėlgi, nekenksmingi, tačiau nereikalingas. Yra pabaigoje gaubtinės žarnos kaip už kilpos, ir vėl, santykiniai blokai yra įspaudžiami o ne užskaityti petnešos. Tai dar yra originalas identifikavimo lygis, ir jo atitinkamo bloko atitraukiama dar kartą. Tie darbai tiksliai taip, kaip jie tai daro C Tai iš tikrųjų yra labai daug tos pačios. Vėlgi, spausdinti praranda vieną simbolį off printf Jūs praeiti keletas eilučių. Pasirodo, stygos arba gali būti atidalijami vienišų arba dvigubomis kabutėmis. Nėra skirtumo, išskyrus tai, kad viduje vienišų kabučių galite naudoti dvigubose kabutėse su atsisakyti, užuot išvengti visi iš jų. Ir viduje dvigubas kabutes, jums galima naudoti Viengubomis kabutėmis su atsisakyti be jų pabėgti. Jei nori maišyti , galite juos tikrai ieškoti internete Kaip padaryti, kad. Jūs pastebėsite, kad per čia Aš išlaikė pabaigoje = šį dalyką. Tai yra pasirinktinai pavyzdys argumentas, kuris yra vienas iš šių daiktų kad Python pritaria tam, kad daro tai gana naudinga. Taigi Spausdinti tikrųjų turi daug argumentai, kurie paprastai nustatyti jų numatytuosius vertė, bet čia aš nusprendė nepaisyti vienas vadinamas pabaigos. Priežasties, kad turiu nepaisyti jį su tuščiu eilutę yra tai, kad spausdinimo Python, kurias Numatyta, kad spausdina naują eilutę Po dalykas, kad jūs jį papasakojo per daug. Taigi tai maišos yra iš tikrųjų ketiname spausdinti maišos iš naujos eilutės. O jei aš nenoriu maišos atsispausdinti nauja eilutė po jo, tada aš turiu pasakyti, nespausdinami vieną. Bet dar taip, paskutinis dalykas, kad Ši programa nėra, kad vienas turi tai include, viršuje. Spausdinti kepama į Python todėl iš esmės kad ten jokio antraštę ar modulį kad jums reikia apimti, nors jei nori įtraukti kitus dalykus į Python scenarijų, Aš norėčiau tai padaryti labai panašiai format-- žodžiai yra tik šiek tiek skiriasi. Minėjau, kad mes nereikia pagrindinis čia, nes Python prasideda vykdant viršuje. Jei aš norėjau, į kuriuos vyniojami ši funkcija, I būtų padaryti jį kaip this-- I sakyčiau def funkcijos vardą, argumentai gali eiti čia ir mes pamatyti kai kuriuos iš tų vėliau, storosios žarnos, ir tada vėl, tai Visa užskaityti blokas kas yra veiklos blokuoti šiai funkcijai. Taigi, šis yra apibrėžimas iš funkcija. Ir ten deklaraciją, tada žemyn čia aš galiu tik paskambinti funkciją. Ir vėl, programa interpretatorius, pradedant nuo viršaus, pamatysite Tai yra apibrėžimas. Jis nebus įvykdyti tai, kol jis gauti čia, ir tada jis lyg oh dabar jūs jį pavadino, aš guess turėčiau jį vykdyti. Dalykas, kuris yra labai dažnas matyti Python failus, ypač Python failus, išleidžiami visuomenei ir sukūrė by-- ir parengė ir prižiūrimi, yra kažkas šią formą. Tai basically-- todėl, Python, pradėdami viršuje ir tada vykdyti į apačią, Aš, jei aš tiesiog turėjo Mario sušuko čia tada bet koks laikas man įtraukti šį failą kitą failą, nes norėjau naudoti Mario funkcija, ta kita byla, taip pat turi šį kvietimą Mario jame. Ir kai išbėgau tą failą, tai vadinčiau Mario. Taigi gali būti, kad tik aš norite paleisti tai, jei aš iš tikrųjų įvykdytas šį konkretų failą. Ir todėl galiu wrap tai idioma, kaip šis, kur aš sakau, jei šio vykdymo vardas aplinka yra pagrindinis, tada aš noriu padaryti šiuos dalykus. Priešingu atveju kažkas gali use-- yra mano function-- mano byla ir tik gauti Prieiga prie šių funkcijų nereikia paleisti dalykus kad aš noriu paleisti šį failą. Tai yra, vėl, pasirinktinai bet labai dažnas. Šie dalykai yra entirely-- yra tiksliai tarp C ir Python tą patį, žinoma, 3. Manau, 2, kvadratas operatoriaus kartais suteikia jums atgal plaukia, kai Jums operuoti int, ir arba jūs norėjote, kad arba jūs ne. Bet plius minus, ir laikai dirbti tiksliai taip, kaip jūs tikitės, išimties per šiek tiek daugiau rūšių. Taigi, galite padauginti nuplukdysime ints, ir tų dalykų rūšių. rinkinys veikia lygiai tą patį. Galite naudoti dviejų lygių požymiai. inequals-- didesnis nei mažiau nei, šių Quake rūšių turi reikšmes, kad esate susipažinę su jais. Kur C naudoja šiuos operatorius, Python naudoja šiek tiek daugiau anglų skaitymo tie. Taigi vietoj dviejų, jungimo ženklus, jums tiesiog įveskite žodį "ir", "arba", arba ne." Kaip jūsų if-- jūsų sąlyginiai teiginiai, mes matėme anksčiau, kad ši sintaksė C atitinka šį sintaksė Python. Ir ten ne daug skiriasi ten, išskyrus šiek tiek skyrybos aplink pusių. Vėlgi, kur C, dar jei, Python naudoja Elif, bet jie dažniausiai paviršiaus lygio pokyčiai. Kartoti, kaip tai dažnai parašyta šioje idioma Python. Galite gaminti šį rūšiuoti dalykas su while cikle išorėje jei norite, bet jūs tikrai neturite. Ir vėl, jei jūs norėjo spausdinti elementus iš masyvo galite tai padaryti tokiu būdu. Vienas iš įdomių apie Python, nors, yra tai, kad jums nereikia naudoti šią paradigmą, ir jūs galite naudoti šiek tiek labiau elegantiškas vienas. Jūs sakote, dėl per sio. Taigi užuot čia ir veikia per indeksų, ir tada traukdami atskiri elementai, galite pasakyti už faktiškai tik paleisti per pačių elementų. Ir tada, ką jūs darote viduje gali veikti tiesiogiai dėl tų elementų, kuris yra gana įdomus. Ir mes see-- mes naudosime kad idioma vėl ir vėl kaip mes vaikščioti per kodą. Tai yra, vėl, pavyzdys kažkas, kad aš skambinti Python magija, nors yra labai techninių priežasčių, kodėl ji veikia. Ir ten yra techniniai dalykai, kurie reikia, kad būtų tiesa apie masyvas, siekiant už šį darbą užkulisiuose. Dalykas yra tai, kad dauguma tipai kurios jūs tikitės šį darbą turėjo tai įgyvendinama Jūs vidinėje kalba. Kitas dalykas, kad tai būtų malonu jei tai dirbo kiekvieną kalbą, tačiau yra keletas priežasčių, kodėl jis negali Spausdinti šį styginių kartus šis skaičius. Pasirodo, Python, tai nereiškia, tiksliai Ką norėtumėte, kuri yra tik įdomus, ir tai reiškia, kad mes galime iš tikrųjų sumažinti šią programą, ir vėl mario.c. Užuot Iteracja daug, mes galime tiesiog pasakyti, noriu šiek tiek vietų skaičių, Noriu, kad masyvuose skaičių, ir kai kurių pabaigoje maišos. Ir vėl, mes naudojame šį formatą. Čia mes einančios kintamasis šiuo būdu. Vėlgi, mums nereikia sakyti kokio tipo kintamajam jis yra, ir tik laiko mes gauti klaidų vykdymo metu. Kai kas nors bando praeiti kažką, jis ateis į funkciją tik baudą. Jei mes pleišto čia, nes tai nėra dalykas, kad jūs galite sukurti svyruoja daugiau, Aš gausiu Klaida ten, ir aš turiu derinti, kad taip. Bet tuo tarpu, aš neturiu būti labai atsargūs, apie tai, ką pasireiškia priimtas, taip ilgai, kaip faktinis vykdymas viskas veikia labai švariai. Galėčiau net padaryti tai šiek tiek švaresnis naudojant tam tikrą built-in funkcija stygos, kurios yra Dešinioji lygiuotė. Tai tik naudinga funkcija gulinčius bibliotekoje. Tai dokumentacijoje jei jūs einate ir ieškoti. Ir aš sakau, gerai aš ruošiuosi Ši eilutė, kai masyvuose numeris ir aš norėčiau į dešinę pateisinti it-- trinkelėmis jį su tarpais, kad būtų šis ilgis. Vėl, tai yra į dokumentus, kurie atneša us-- Aš iš tikrųjų paspaudžia per these-- kuris atneša mums mūsų Antroji taisyklė už Python-- standartinėje bibliotekoje funkcija metodai yra jūsų draugai. Ir tai dažnai verta savo laiką eiti ieškoti Įdomu jei yra dalykas, kad tiesiog tai daro. Yra tikriausiai yra. Jei norite padas iš eilutę, jei norite norėtų imtis atgal pusė eilutę, jei norite patinka ieškoti per eilutę, jei norite sutriuškinti keletą dalykų kartu su eilutę kableliais tarp jų, yra standartinė biblioteka funkcijos tai daryti. Ir tai daro jūsų gyvenimą lengviau, jei jūs naudojate juos vietoj sukti viskas jūsų pačių penkių eilučių kodo čia penkios eilutės kodo čia. Tai tikrai prasideda pridėti iki realiu laiku. Vienas iš įdomių dalykų apie tai, kaip tai pasireiškia vadinamas. Jūs pastebėsite, kad yra taškas dalykas. Turiu šiek tiek kairėje objektą, ir tada aš vadinamas taškas funkcija. Tai yra viena iš paradigmų, kad Python naudoja pritvirtinti metodus objektų. Mes kalbame apie tai, kas tai yra labai trumpai pabaigoje, bet žinau, kad mes galime tiek veikti viskas priimant šį dalykas, sakydamas tašką kas, arba paskambinus funkcija, kuri trunka kad objektas ir kai kurie kiti argumentai. Taigi tai yra tiek būdų, kad dalykų gauti padaryti Python. Ir ar tam tikras funkcijos įgyvendinimą šio stiliaus ar tai stilius yra kažkas, kad jūs turėtų ieškoti, kol gausite pakabinti dėl kurių vienas tai greičiausiai patenka į. Yra daugiau ar mažiau nuosekli filosofija Python kad jūs sugeria daugiausia rašyti daug į jį. Tam tikru momentu, kai viena iš šių kažkas bus įgyvendinami tampa natūralu. Nes dabar, tai tik kažkas jūs išmoksite, kaip jums išsiaiškinti, kiekvienas individualus dalykas. Taigi standartinės bibliotekos funkcijos yra jūsų draugai, ir jie jums rašyti dalykus, kurie imtis šio daug vietos tikrai netrukus, tikrai elegantiškai. Ir tai yra faktiškai tikriausiai daugiau įskaitomas, sakyčiau, nei C programos Štai ten. Jau nekalbant apie tai, kad yra toks Trumpai tariant jums gali tilpti visą dramblį erdvėje, kad mes išgelbėti. Kitas dalykas, tai įgyvendinimas Mario tai dot C, kuris, manau, yra trumpiausias jūs galite gauti jį. Ji neturi GET int, bet sunku kodai 10 vertė taip pat, kad tai vienas daro. Pasirodo, kad tai vienas iš ne laikrodžiai 84 simbolių, o Python yra 64. Ir tai yra be galo daug skaitoma kaip šio šiukšlių čia. Taigi Python yra efektyvesnis erdvėje. Tai šiek tiek mažiau efektyvus laiku, bet ne daug. Sąrašai yra svarbus dalykas, Python. Mes nematėme juos, bet jie veikia panašiai kaip masyvai padaryti C Taigi čia, galite paskelbti juos, galite perduoti juos į dalyką. Dabar kvadratų eina masyvas iš šių dalykų. Vėlgi, mes ne deklaruoti kaip tipo, bet jei mes kada nors pabandyti jį naudoti, nieko, kad jūs tikitės dirbti ant sveikųjų skaičių masyvas ketina dirbti AN skaičių masyvas. Tai dalykas, kuris Jūs visiškai negali do C, dėl to, kad atminties tai taip rankas, bet yra labai lengva padaryti Python. Jei aš noriu, kad mano masyvas būti didesnis, galiu pridėti elementą į jį, ir tai gerai. Kas vyksta užkulisiuose? Vertėjas eisiu ir gauti šiek tiek atminties, o gal jis bus gauti Šiek tiek papildomos atminties, todėl aš neturiu, todėl aš neturiu į realloc kiekvieną kartą. Bet kiek daugiau atmintį ji reikia? Tai nėra sprendimai kad jūs turite padaryti, tai yra sprendimai, kad vertėjas ketina daryti. Čia mes matome diapazonas gali priimti du argumentus, bet jis vis dar bus įskaičiuota iš viršaus todėl mes pridėti 1 ten. Tai yra Idiom, kuris yra dar labiau protingas būdas rašyti tokius dalykus. Tai vadinama sąrašas supratimas, o čia tai, ką mes sakydamas yra Norėčiau įdėti i kvadrato kiekvienam i verte šio intervalo. Tai dėl teisės dalykas galėtų būti dar masyvo, ir šis dalykas kairėje būti bet kokią konkrečią funkciją kad būtų atsižvelgiama į I kintamojo ir duoti man šiek tiek rezultatą. Ką aš ruošiuosi padaryti tai, Aš ruošiuosi statyti masyvas tai visų šių dalykų kiekvieno šio intervalo vertę. Ir tai yra super elegantiškas, itin trumpas, ir tai labai aišku, ką tai reiškia. Tai yra vienas iš Quake tai vėl, vienas of-- labai simboliniu iš priežasčių, kad žmonės, kaip Python. Jei jums patinka programavimas kaip šis, tada Python yra kalba, galbūt jūs norėtumėte išmokti. Ir vėl, yra techninis priežasčių, kodėl tai veikia. Bet kiek mes susiję, mes daugiau ar mažiau nerūpi. Taigi, jei norite spausdinti sąrašus, kai kurie iš tų pačių idiomų yra naudinga. Aš šiame diapazone, mes galime rodiklis per visų dalykų ir tada spausdinti juos visus. Ir pamatysite, ilg čia. Jeigu jūs kada nors norėjo gauti masyvo ilgis, tai labai lengva Python, tai labai sunku C Tai atsispausdinti tiksliai ką jūs tikitės jį. Mes taip pat galėtų, kaip mes matėme anksčiau, pakartoti per išsirikiavo elementų tiesiogiai, ir tada tiesiog kalbama apie juos, o ne indeksą atgal į masyvą kiekvieną kartą. Ir tai yra dalykas, kad jūs galite padaryti. Taigi C, jei jūs paprašykite ko nors kaip tai, spausdinimo sakyčiau, Tai labai sveikųjų skaičių masyvas. Tai tikrai nėra eilutė, aš negaliu atsispausdinti jį. Python daugiau ar mažiau nerūpi. Tai kaip, ar yra būdas, kad aš gali pasirodyti tai į eilutę? Taip, aš tai padaryti. Ir todėl aš tiesiog atsispausdinti, kad iš. Tai reiškia, kad jūs galite daryti tai, ko jie like-- yra labiausiai standžiųjų dalių žaidimas penkiolikos, parašyta labai trumpai Python. Jūs pamatysite, kad ten šiek tiek of-- čia Aš mesti sveikasis skaičius į eilutę, ir aš turiu padaryti, kad rankiniu būdu. Ir aš ruošiuosi pridėti ji į kitą eilutę, ar kitaip Python sutrinki. Bet ar kada esate pridedant eilutę sveikasis skaičius, aš manau, kad gauti sveikasis skaičius nugaros ar styginių atgal? Bet vėl, jei jūs tiesiog skambinti g ant dalykas, ir jis galėtų bet įmanoma Pasaulio būti konvertuojamos į eilutę, tai tikriausiai bus paverčiamas į eilutę. Čia mes matome, naudoti įdėtos sąrašas supratimas kairėje, kai indeksavimo, kuris yra tiksliai taip, kaip norite būti naudojamas į jį, o kai spausdinate iš dalykų. Vėlgi, mes apibrėžti kai funkcijos ir mes vadiname juos žemyn Į pradžią kai mes iš tikrųjų gauti failą. grįžimas veikia tiksliai taip, kaip norite tikisi dirbti su C. Surasti, mes galime sukurti tokius dalykus kaip this-- čia sąrašas supratimas ten yra kintamasis perleidimas, ir mes iš tikrųjų gali tai padaryti dar lengviau. Mums nereikia rašyti paiešką, nes įmontuotą į kalbą tai, jei šis dalykas yra šiame masyve. Grįžti tiesa, else return false. Taigi, kad iš radinį visuma. Iš rūšiuoti visuma apima raginama rūšiuoti, kuri is-- yra diegimas tai pastatytas į tam tikrus C bibliotekose. Jei norite tai rūšiuoti atgal, jums gali nepaisyti tai neprivaloma argumentas atbulomis su tiesa. Ir jei norite rūšiuoti per įsipareigojimų, kad manimi built-in, taip pat. Taigi, šis yra ne pasakyti, tai yra dalykų, kad jums reikia padaryti kiekvieną dieną, bet idėja yra tai, kad yra Python filosofija, kad visi šie dalykai, kuriuos norite rūšiuoti norite daryti yra built-in. Ir dauguma standartinės funkcijos, taip tarsi, ilgis, kas, remti dauguma logiškai protingai įvestį. Jūs vadinate ilg nuo masyvo tas pats būdas skambinate ilg ant eilutę. Jūs multiply-- galite rūšiuoti eilutes tas pats, kaip jums rūšiuoti masyvus. Dauguma standartinių funkcijų kad žmonės statyti, ir dauguma trečiųjų šalių bibliotekos, kad žmonės statyti, nes jie mėgdžioti standartinės bibliotekos dizainas, galima pavadinti viską, kad jūs kaip, kodėl tai ne tik darbas, C Daugiau ar mažiau, jis dirbs Python nes žmonės dirba už išsiaiškinti , ką dalykas yra ir tada veikti atitinkamai ant jo. Taigi dar kartą, techninį išsilavinimą, bet jis daro mūsų gyvenimą paprasčiau, nes programuotojai. Taigi čia failą I / O. failą I / O yra daug mažai dalykų, kad ji sudėtinga, ir todėl yra ištekliai internete, bet trumpai tariant, skambinate atidaryti failą vardą tam tikros rūšies. Taigi, kad skaityti, skaityti ir rašyti, rašyti ar pridėti. Jūs perskaitykite tam tikrą skaičių simbolių, ir jums spausdinti tuos, Jūs gausite Hello! Aš turiu galvoje, kaip šis failas turėjo Sveiki! Be jo, skambinti skaityti, ir ką jūs gausite atgal yra eilutė, kuri turi visas iš masyvo poilsio, arba visi likusios bylos. Jei skambinate iš naujo skaityti, jūs esate failo pabaigos ir todėl jums nereikia gauti nieko ir todėl jūs uždaryti. Vėl, tai yra, o ne .close Uždaryti failą, nes tai būtų C Tai yra daugiau ar mažiau, nes f yra dalykas, ir jūs norite už uždaryti f. Bet bazinis failą I / O yra ne ypač sudėtinga. Vėlgi, jei norite atidaryti failą, jei norite skaityti tam tikrą liniją, galite gauti iš ypač line-- ten built-ins, kad. Jei norite parašyti dalykas, galite tai rašyti. Jei norite rašyti individualią Bites, galite parašyti tie. Ir jei norite pakartoti virš failo eilutes individualiai, kaip tai darėme gabalas nuo Prieš keletą savaičių, galite padaryti, kad. Vėlgi, dauguma objektų, kad norite patinka, kad būtų galima pakartoti per parama Iteracja virš jų. Be Pitonai, failas yra gal dalykas, kad Norėčiau pakartoti per eilutė po eilutės. Jei tai buvo žodyną žodžių ir aš buvau bando gauti tie atskiri žodžiai, tada, per šį kilpa, linijai, kurią ji ketina būti kiekvienas žodis iš eilės ir šis bus vykdomi kiekvieną eilutę į iki tol, kol gale failo failo. Ir vėl, jei aš atspausdinti kiekvienam linija, linijos ateina su naujų linijų, todėl aš nustatant pabaigą atgal į panašaus dalyko. Tada aš gauti iš mano failo turinį. Antras dalykas, kuris veikia Kai kurie, kaip sąrašus būdais, o tam tikrais būdais kaip kažkas iš esmės daugiau galingas, yra žodynai, kurie tikrai kietas naudoti, tačiau iš esmės yra maišos stalai užmaskuoti. Jūs sukuriate vieną naudodami tiksliai dviejų simbolių, kurie yra awesome Jei bandėte įgyvendinti maišos lentelės jūsų problemą, rinkinį, jūs žinote, daug skausmo, kad gali būti. Bet žmonės padarei tai ir padariau jį taip pat, kad jūs neturite worry about it anymore. Tada galite įterpti individualius dalykus. Hash tables-- arba žodynai ne itin rūpintis, ką jūs saugoti juos. Taigi, jei kai kurie įrašai yra numeriai, ir kai įrašai yra sąrašai, jei kai kurie įrašai yra kitų žodynai, ir kai įrašai yra įsipareigojimų, Python nėra daug priežiūros. Vėlgi, jei jūs einate į jį tikisi styginių ir ką jūs gaunate atgal yra masyvas, tai jūsų problema. O gal tai kaltės kiekvienas, kuris maniau jis buvo išleisti dalykų žodyne, o gal tai buvo jums. Jei tai buvo kažkas kita, tikiuosi, jie buvo gerai elgėsi, apie ką ketino žodyne ir nepalikite jokių keblumų jums patenka į. Tačiau standartinės funkcijos suteikti jums atgal gerai elgėsi dalykų. Taigi jie sako, tai grįžta atgal žodyną eilučių, tada viskas jūs ketinate gauti iš to seka. Jei ką nors tai ir kelionės jus, gerai, kad gali būti ant jūsų. Python tikrai suteikia jums pakankamai virvė pakabinti save, jei norite. Dabar mes galime atspausdinti asmeniui elementai tai ir tai grįžta ką jūs tikitės. Būtent tai, ko jūs tikitės, manau, yra frazė, kad aš naudoju daug, bet tai daugiau ar mažiau kaip Python veikia. Jei jūs paprašykite dalykas, kuris nėra tai, Python bus išmesti klaidą ir jis bus mesti jums iš kokia programa jums buvo. Tai bus iš tikrųjų atsispausdinti daugiau informacijos nei, kad jis bus atkreipti you-- jis bus pridėti eilutę, ir taip. Ir, vėlgi, gal mes norime į pakartoti per žodynai ir rasti visus jos daiktus. Čia mes Iteracja per du dalykus, tuo pačiu metu. Ir taip mes tai padaryti su rakto, vertę, bet tada atsispausdinti visiems. Ir jei mes norėjome cast-- jei mes iš tikrųjų bėgo tai, mes turime šiek tiek problemų, nes on-- kai nuėjome su Dovydu, ji negalėjo add-- jei mes ne sviedė jį į eilutę pirma, mes negalėjo pridėti, kad masyvas eilučių ant eilutę. Bet jei mes sviedė jį į A eilutė, kurią mes gauname kažką kaip tai, kuris yra gal ką mes norėtume skaityti. Ir tai Speller. Mes tiesiog skaityti dalykų. Taigi, mes galime skaityti atskiri žodžiai, linijas. Mes nukirsti paskutinis dalykas, todėl storosios žarnos atėmus 1 chomps ne paskutinis dalykas, kad we-- paskutinis simbolis eilutę. Mes pasakyti. Gerai, kiekvienas gauna vienas iš tų, įdėti į šį žodyną, kartografavimas į vertė 1. Mes ne itin rūpinasi, kad vienas, bet tai tik tam, kad pasakyti, oi gerai, šis dalykas aš įdėti į žodyną. Nes vėliau, ką mes ketina padaryti, tai mes ketinate pasakyti, gerai, jei tai žodyne ne visiems. Vėlgi, tai patikrinimas Narystė yra iki operacinės naudojant visiškai kitoks algoritmas, nei ji bus sąraše, bet mes jį vadiname tas pats būdas, kuris yra kai kurie, kad Python cukraus danga viskas taip, kad jie būtų lengviau naudoti. Ir vėl, mes matėme tokie dalykai kaip anksčiau. Tai iš esmės susirasti, arba tai lygiai tas pats sintaksė kaip rasti, bet yra, veikiančioms visiškai kitokia struktūra. Ir mes ne itin rūpi. Taigi jie yra dalykų, kad jūs klausė įgyvendinti už Speller. Į šią normą, mes ketiname gauti daugiau ar mažiau visi psets padaryta. Auditorija: Taigi, kad iš esmės tik grįžta kaip neteisingai parašyti, jei jis nėra suderinti kažką žodyne? ROSS RHEINGANS-YOO: Taip, taip. Ir taip, tai yra pritaikymas problema nustatyti kuris prašo jus padaryti būtent tai. Auditorija: Kodėl linija atėmus 1 ten? ROSS RHEINGANS-YOO: Taigi kai jūs Iteracja per failas prašydama pagal linijas, linijų ateiti su nauja linija charakterio ne iš it-- Minuso pabaigoje 1 yra tik apsipirkti tiems išjungtas. Ir tai yra ypač lankstus būdas indeksavimo į dalykų. Taigi, jei turite eilutę, ir norite, gerai aš ketina pradėti charakterio trijų ir aš ruošiuosi eiti iki galo. 3 dvitaškis bus padaryti už jus. Jeigu esate kaip ir aš noriu pradėti ne pradeda ir pereiti prie paskutinio minus 1 charakteris, storosios žarnos atėmus 1. Ir jei jūs norėjo eiti iš į minuso trečioji pirma, tada sakyčiau 3 minuso 1 d. Be to, jei norite, kad puslapis į dalykus, skaičiuojant nuo nugaros, jūs tiesiog indeksas su minus numerius. Ir todėl, kur C būtų sprogti arba gal pašarų jums Kitos atminties tu neturi prieigą prie išgirsti galite pasakyti atėmus 1 reiškia, kad paskutinis, bet 1 personažas eilutę. Moduliai yra version-- yra analogų bibliotekoms C ir yra naudinga daug dalykų. Daug dalykų norite patinka daryti Python, Be paprasta manipuliavimas kintamųjų, norite prijungti į didesni bibliotekos Didesniais sąsajos ir daugiau galimybės bendrauti su kitais pasaulio dalių. sis yra vienas iš tų, su įrankių krūva kad yra naudingi sąveikaujant su pačios sistemos ir importuoti jį kaip import sys. Yra daugiau dokumentacija nuo kad kuri tu gali eiti čia ar galima rasti "Google" "Google" paiešką Python sys. Jūs įrašykite įvesti. Pirmoji nuoroda bus Python 2 dokumentacija, antra nuoroda ketina būti dokumentai Python 3. Ir jei mes surašė failą, kuris atrodė kaip this-- jei pirma, mes žiūri veikia komandinės eilutės argumentai, kaip mes išmokome daryti labai pradžioje šioje klasėje. Tai nėra sunku. Galite išeiti argv, kuris yra vienas iš šių daiktų kurią įgyvendina sys. Tai ne built-in į bazės paketas, bet vėl, jums gali jį pratęsti importuodami kad funkcionalumas iš sys. Jūs jį vadiname sys. nesvarbu. Čia nėra argv. Yra tikrai ne argc į sys, nes jus galite gauti jį taip lengvai paskambinę Len. Mes tada atspausdinti, kad iš, tada mes vyko mūsų terminalo echo-args.py. Mes grįžti masyvą, kuris tai pirmasis argumentas. Vėl, tai yra argv 0, kuris yra Pavadinimas dalykas, kad gavo vadinamas. Jei mes pavadino jį su papildoma argumentai, mes norime gauti tuos atgal. Tai yra vienas būdas gauti komandinės eilutės argumentai. Jei norite vėliavas, kur jūs savo ruožtu konkretūs dalykai Įjungta arba nepaisymo ypač pagal nutylėjimą, argparse yra jūsų draugas. Ir vėl jums rasti, kad interneto ne python argparse ne "Google". Yra naudingumo pora moduliai, jums rasti sau, naudojant ir vėl, jei jūs praleisti bet kuriuo metu tai kalba importuoti jsons skaityti ir iš JSON failai, o ne tai, kad sudėtinga. Jūs atverti failą, vadinamas json.load dėl šios bylos ir gausite atgal dalykas. Kas yra tas dalykas? Tai JSON. Jeigu tai JSON yra masyvas, Python yra masyvus. Jeigu tai yra JSON asociatyvūs matricos, Python žodynai, įsipareigojimų, ir numeriai, ir kt. Jūs norite, kad sąvartynas, jūs atverti naują failą, galite skambinti sąvartynas, ir apkrovos ir sąvartynų į eiti ir iš stygos. Be to, marinatas iškviečiamas į iš esmės ta pati sąsaja. Tai šiek tiek daugiau naudinga, jei jūs dempingo Python objektus. Taigi, jei jūs kada nors norėjo išgelbėti esamos statuso versija iš būsimos kintamojo paleisti savo programą, marinatas yra Python'o biblioteka daryti. Jei turite kokių nors rūšiuoti kintamasis, kuris gali būti parašytas panašiomis žodžių ir simbolių ir bytes-- kaip šio žodyno, galėtume užrašyti, mes gali rašyti jį žemyn, kaip kaip JSON, kuris buvo pažodžiui šių simbolių. Ir tada jis būtų labai lengvai žmogaus, kad jį atidarytumėte up-- atverti ir jį perskaityti. Jei mes ne itin rūpi žmonėms jį skaityti, galėtume paketas dar efektyviau į formas, kurios vėliau gali būti išpakuoti arba kad vėliau galėtų būti pripūstos. Ir šis išsaugo 80% vietos, kad jūsų daiktai galėtų imtis, jei rašėte juos Paprastoji laišką. Jūs vadinate marinatas labai tas pats way-- sąvartynas, apkrova, ir tada gauti savo daiktus atgal. Taigi, jei rašote labai trumpi Python programas, norite išsaugoti būseną, o tada skaityti juos vėliau, tokie dalykai kaip šis yra jūsų draugai. Kad galėtumėte labai lengvai sąvartynas juos kaip JSON. Dauguma Python objektus gali sąvartynas iš JSON jei yra kokia nors viltis, kad struktūriškai jie gali būti atstovaujami, kad taip. Tai yra tik galiuko Iceberg moduliai, kurie yra naudingi. Taigi sis, os, multiprocessing, yra Rūšiuoti pagrindinių darbiniai arkliukai už ką turime bendrauti su failų sistema os., kaip os.isfile, os.isdirectory, os.makefile, tai yra jūsų draugai. Jei norite bendrauti su konkrečiu failo tipo, JSON, marinatas, CSV. Jei norite bendrauti su web puslapiai, norint gauti urllib http puslapiai. bs4-- BeautifulSoup-- tai puikus analizatorius HTML. Jūs paleisti jį į HTML ir jums gauti šio albumo masyvo objektas dabar kurią galite feed per lookin, su kaip tik ieškote jei yra, kuris yra fantastinis. Yra krūva paketai running-- daro ypač MATHY dalykų. Taigi, jei norite daugintis, pavartykite, transformuoti matricas, numpy naudoja visi žmonės daugiau už tą pasaulį. scipy dar naudinga Įrankiai ta kryptimi. sklearn-- mašina mokymo, natūralios kalbos apdorojimas, Super naudinga medžiaga, gauna įgyvendintas Pythonie visą laiką. Ir vėl, šiek tiek užtrunka ilgiau write-- Atsiprašome, užima šiek tiek ilgesnis paleisti, bet priežastis, kad tikrieji inžinieriai yra linkę naudoti Python yra todėl, kad jūs linkę būti užblokavo jums rašyti kodą, o nei jūsų kompiuteris veikia kodą. Taigi, jei jūs ketinate rašyti programa, kuri daug kitų žmonių ketinate naudoti amžinai, pavyzdžiui, Linux, jums gali rašyti C Jei buvo ketina parašyti skaičiavimo variklį, jums gali rašyti Python, jei jums reikia keisti jį kas pora mėnesių. Kai kurie žmonės būtų parašyti jį C, nes jie, kaip kad. Taigi mes matėme import sys kaip gauti dalykų būdu gauti modulį į savo programą. Taip pat galite importuoti jį kaip slapyvardis, jei norite. Vėlgi multiprocessing yra skausmas tipo iš kiekvieną kartą, todėl importuoti kaip mp ir tada kada jums naudoti jį į programą, jums pasakyti mp.process arba ką jūs. Jei norite importuoti tik vienas dalykas, taip urllib turi dalykas vadinamas prašymas, todėl jūs galite tiesiog importuoti, kad. Vėliau, jums nereikės remtis kaip urllib.request, bet tik kaip prašymą savaime. Ir jūs galite importuoti viską nuo modulio, jei norite. Tai kartais nėra geras idea-- tai paprastai nėra gera idėja, iš tikrųjų. Kadangi jūs very-- nes jei nieko tame modulyje turi pavadinimą, kuris jus norėjau naudoti kažkur kitur į savo programą, jums negali. Ir tai ne visada yra akivaizdus kad toks atvejis. Siekiant užtikrinti, kad ką veikėte buvo saugus, jums reikia atverti modulis ir pamatyti visus iš pavadinimų, kurie atsiduria there-- visas funkcijas, visų kintamųjų kad tame modulyje gyventi, nes esate pareikšti visus juos į savo vietos vardų. Taigi žmonės tai padaryti. Paprastai rekomenduojama kad jums nereikia daryti. Bet žmonės tai padaryti visiems laikas, nes jie tingus ir nenori tipo iš MP. nieko, bet kada. Visa tai kalbama apie moduliai padėk man aplink trumpą aptarimas apie tai, kaip kuriate programas Python. Pirmas žingsnis yra patikrinti, ar kas nors jau padaryta dalykas, arba padaryta 90% dalykas. Tikimybė, kad jie tikriausiai turi, ir jūs turėtų eiti gauti savo dalyką ir paleisti, kad. Arba parašyti aplink jį įvynioti pritaikyti ją prie savo tikslo. Tai tik po to turi nepavyko, kad norite, tada eiti ir write-- pradėti galvoti apie kaip galėtumėte įdėti šį dalyką kartu. Yra daug dalykų, ten, ir tai vienas iš labiausiai naudinga dalykų apie Python. Kaip ir kalba elegantiškas, kalba yra paprasta naudoti, bet taip pat, nes tai taip elegantiška ir lengva naudoti, žmonės buvo naudojant jį dėl ilgą laiką ir yra daug dalykų iš ten, kad jūs galite panaudoti savo reikmėms. Taigi paskutinė taisyklė Python yra kažkas kitas jau tikriausiai parašyta už tai modulis, kažkas jau tikriausiai parašyta biblioteka už tai. Prieš bandant nieko daryti, ieškoti pamatyti, jei ji buvo įgyvendinta. Tai nereiškia, kad sunku. Visi moduliai, kad aš supakuoti anksčiau, galbūt, išskyrus vieną, ateina iš anksto įdiegta kiekvieną standartinis Python montavimas. Ir taip su skambutis importuoti kas, jums turime visus šios funkcijos po ranka. Įsivažiuoja susivynioti tai aptarimas, yra keletas dalykų, kad aš kairę, kaip juodosios dėžės ir tarsi glossed, ir ten keletas balta yra, kad aš pasakyta, kad sąžiningumo dėlei, Aš bent taško čia, net jei ne aš eiti Super giliai į juos visus ir jų techninės paaiškinimai. Keletas dalykų, daug kad aš vadinamas magija yra tai, ką kiti žmonės vadinčiau Objektinis programavimas. Taigi yra daug Quake taip kintamieji yra labai dažnai nėra paprasti baitų sėdi, atminties, bet yra labai sudėtinga objektus, kurie turi vidaus valstybinė apie funkcijų ir daug paslėptų kintamųjų, daug paslėptas funkcija, kuri leidžia jums paversti juos stygos, kuri leidžia jums pakartoti virš jų. Ir jei jūs writing-- ir to, kad jie turėti visus šio turtingo funkcionalumą yra todėl, kad people-- architektų language-- dingo per ir už kiekvieną standartą objektas, įdėti į funkcionalumą pasakyti tai, kaip tai kaip tai vyksta veikti jei kas nors nori pakartoti per jį. Taigi viskas, kad kažkas gali galbūt norėsite pakartoti daugiau, jau logika parašyta rankiniu būdu, kaip jūs turėtų pakartoti per tą objektą. Viskas, kad jums galbūt norite dempingo kaina į eilutę yra logika parašyta. Tai funkcija, kuri jums skambinti, jei norite sąvartynas tai dėmesį į eilutę. Tai kodėl jūs galite skambinti Len dalykų, šis Štai kodėl galite skambinti į tai kodėl galite skambinti jei apie viską kad jūs norėtumėte, nes tie, visi yra atlikimą su jais, technines žinias, kaip tai padaryti. Tai yra kažkas, kad aš Super nesiruošia eiti į. Bet dalykas sąraše yra subtiliai skiriasi nuo C stiliaus kilpos, ir jūs galite skaityti apie, kad interneto, jei jus domina. Yra tamsiai pusėje visiems tai, kad aš minėta, todėl ten du dalykus. Pirmasis yra tai, kad šis objektas orientuotas programavimo prideda važtaraščius daug atsitiktinių dalykų, todėl jūs galų iki naudoja daug daugiau atminties; jūs galų gale naudojant šiek tiek daugiau laiko nei tai darytumėte kitaip. Other-- bet daugiau klastingas tamsioji pusė tai yra, jei viskas tiesiog veikia kaip norite juos Jums net nereikės galvoti super sunku apie tai, ar tai turėtų būti int ar turėtų būti plūdė, tai gali būti, kad per čia Jūs gaminti int bet per čia manau, bet jie always-- Atsiprašome, gali būti, kad čia Jums pagaminti plūdę, bet kai jūs gaunate į antrąją dalį savo programą, jūs galvojate, Oh well, bet jie visada praeiti man int. O jei ne, tai galima kad jūs įspraudžiama kažkur, jei bandote naudoti, kad į indeksą į masyvą, arba ką jūs. Taigi, vienas iš realaus naudingų dalykų apie C ji verčia jus galvoti tikrai sunku prieš jums padaryti any-- Prieš jums atnešti bet kokį kintamąjį, į egzistavimą, kaip ir tai, ką ir yra šio tipo kintama. Ir tai teks kad tipo visiems laikams. Tai netiesa Python, ir iš tikrųjų, jūs can-- jei jūs tiesiog Rūšiuoti vyksta ausies, ir jūs padaryti kai kuriuos sprendimus vienas būdas vienoje vietoje, ir kai kurie sprendimai viena kelią į kitą vietą nekeliant pakankamai stuff už Į kitą vietą scenos tinkamai sugauti dalykų, jums galite gauti keletą labai keistų klaidų. Ir programa gali nuolat veikia labai ilgą laiką, nes tai daro daug darbų pasakyti, gerai šis dalykas gali veikti tokiu būdu, todėl aš ruošiuosi paleisti, kad taip. Ir iš tiesų, tai, kad ji stumia perduoti per mažų klaidų daug reiškia, kad dažnai, kai klaida yra iš tikrųjų blogai ir jūs iš tikrųjų norite ją išspręsti, jis baigiasi mylių away-- programos baigiasi nutraukus mylių nuo tada, kai jūs turėjote savo klaidą. Ir taip vienas dalykas, kad mes norėtume programos daryti, sometimes-- vieną dalyką kad mes norėtume programas daryti, kai mes derinimo yra nesugeba garsiai ir nesugeba labai greitai, kai kažkas negerai. Python yra labai blogai, kad. Python yra labai gerai ne jei ir valcavimo į priekį per netikėtų dalykų. Taigi, tai yra naudinga, kai rašote mažas programas. Kai jūs gaunate sudėtinga klaidas kartais užima daug laiko erzinti juos. Taigi ten tamsioji pusė visiems tai, kaip ji tiesiog veikia. Jis tiesiog veikia kaip jūs tikitės, kad jis. Išskyrus tai, kad, kai ji nėra, jūs galų sudaryta visiškai kitoje vietoje ir bando išsiaiškinti, kur ji buvo, kad jums negerai. Šiukšlių is-- taip vienas dalykas, kad jūs pastebėsite, yra tai, kad bet kuri iš šių daiktų, kad Aš atnešė į existence-- Šios matricos, šie žodynai, šie objektus, jų files-- niekada išlaisvinti. Nebuvo skambutis nemokamai bet tai kalbėti. Ir kad buvo ant C-pusėje, dėl to, mes niekada pateko į tuos dalykus. Tačiau Python pusėje, nėra nemokama. Daiktai gauti automatiškai išlaisvino kai Python mano, jūs ne žiūri į juos. Tai tikrai geras ne išlaisvina tai, kas Jums vis dar gali būti galbūt žiūri, tačiau tai reiškia, kad, jei buvo ketina skirti tai didelis dalykas, ir jūs esate kaip, oi Atlikau su juo dabar sunku pasakyti Python kad jūs baigsite su juo dabar. Jūs kartais galite nustatyti kad kintamasis nėra, ir tada tikiuosi, kad galiausiai šiukšlininkas ateina per ir valo jį. Bet vėl, jūs neturite kontroliuoti, kad. Ir viena iš priežasčių, kad žmonės naudoja C už tikrai, našumo kritinius dalykus, tai gebėjimas tikrai žinoti, kada atmintis yra skirta ir kai jis išlaisvino, ir turi iš kontrolės sakydamas daug, Aš naudoju ne daugiau atminties nei man reikia. Kuris yra kažkas, kad Python yra ne tai, kad puikiai. Auditorija: Ar galiu užduoti jums klausimą? Ką reiškia nesugeba garsiai? ROSS RHEINGANS-YOO: Taigi, jei kažkas vyksta negerai ir jūs esate derinimo režimas, jums būtų labai dažnai norite, kad jūsų programa papasakoti kur tiksliai tai negerai, ir ne tik tyliai sustabdysime. Bet jūs iš tikrųjų ji spausdinti iš visų rūšių informacijos apie kaip čia buvo tai. Šis dalykas atsitiko Jei spausdinate wen-- jei jūs naudojate interneto server-- Auditorija: [nesigirdi] ROSS RHEINGANS-YOO: Taip, jei vykdote žiniatinklio serverio, tai kartais blogai, jei esate visada išmesti klaidų, ir jūs sakote, gerai, kad neveikia. Aš ruošiuosi sustoti. Aš tik ketina ignoruoti IT ir nuolat vyksta. Nes tada galite gauti šimtus šių klaidų, o ne juos matyti. Be abejo, būtų naudinga derinimui tikslais jei kaskart jūsų žiniatinklio serverio padarė klaida, jūs turėjote patvarus įrašus, kad. Gal net nori programą sustoti, kad tie įrašai Nesupraskite palaidotas pagal dalykų. Bet vėl, tai į Derinimo režimas. Dažnai gamybos režimu, pasaulis yra šiek tiek kitoks. Ir mažytė scenarijus, kurie Bėgu, kur dalykas, kad aš sakė daryti gali būti tik šiek tiek nuo iš to, ką aš norėčiau, kad jis tai daryti, tada tarsi stumia per klaidos yra kažkas galbūt norėsite. Ir tais atvejais, tikrai Python tikrai uždirba jos prasideda. Paskutinis dalykas, kad aš ne kalbėti į this--, kad aš ne kalbėti apie tačiau gali būti tikrai Doprowadzający į wściekłości pirmas kartą jūs turite vieną iš šių klaidų, ir antra ir trečia ir ketvirta kartą jūs turite vieną šių klaidų. Python, jau minėjau, kad ji naudoja baltą erdvę pasakyti, kokio lygio įdubimas ir kas funkcinis blokas esate, ji elgiasi skirtukus ir erdves skirtingai. Taigi, jei jūs skirtuką per ketverius, o tada Kitas linija turi keturias erdves, net jei jie rodomi kaip pati suma jūsų redaktorius, Python nebetraktuoja jiems tą patį. Tiesą sakant, Python gydo skirtukai ir tarpai, pavyzdžiui, aliejaus ir vandens. Jie tiesiog skirtingi dalykai. Nėra ypač ilgis, kad skirtukas, todėl nėra kaip skirtukas lygus 8 erdves, ir taip jūs galėtumėte gauti aplink jį kad taip. Kaip, kada jis sako, ką lygis tarpas Aš ne, ji iš tikrųjų ieško dėl modelis erdvių ir skirtukus. Ir taip, geriausias būdas kovoti su šia yra visada naudoti erdves visą laiką. Ir iš tiesų, į Cloud9 IDE ir CS50 IDE, Jūsų TAB mygtuką, įdėklai keturi skyriai, o iš kortelėje, kuri yra super naudinga. Nors vėl, jei jūs parašė Python Programa su skirtukais, kad būtų gerai, tai tiesiog, jei kas nors įėjo ir bandė pridėti viena linija su jūsų programa, turėjo keturis erdves kiekviename skirtuke tai būtų galima nutraukti. Ir tai būtų pertrauka tokiu būdu, kad tikrai nesimato. Nors faktinės klaidos Pranešimą, kad jis meta turi daryti su nauja įtrauka nesitikima čia or-- jei jis kalba apie įtraukose ir atrodo, kad tai negerai, tai tikriausiai, nes ten skirtukas erdvės problema. Jie vis dar Doprowadzający į wściekłości derinti. Didžiausias visa į tai kalbėti, o aš ne gauti, nes tai tikrai sudėtingas, subtilus temą, ir nebuvo būtina daryti bet iš dalykų, mes padarėme iki šiol, yra koncepcija vadinama kortežų. Jie ten panašiai kaip masyvai, kad jūs negalite keisti. Jie pripranta visame, nes vietoje jie yra naudingi daug dalykų kad masyvų nėra naudingi. Bet jei jūs norite padaryti masyvą, ir tada žada interpretatorių, kuris jus niekada ketinate norite keisti, kad thing-- iš tiesų, jei norite keisti, jums padaryti naują su nauju vertės it-- Tie Kortežai. Užuot gaminti juos su laužtiniuose skliaustuose, Jūs gaminti juos su lenktiniuose skliaustuose. Kodėl turėtumėte naudoti šiuos dalykus, yra šiek tiek klausimu. , Vienintelis dalykas, kad aš pasakyti apie tai jums galima naudoti kaip kortežą indeksai žodynus. Jūs negalite naudoti masyvus kaip indeksai žodynus. Ir kodėl taip yra, vėlgi, techninė ir Aš nesiruošia paleisti į jį. Pset, kad aš ne palietė nuo šio Talk pset6. Taigi čia, kaip jūs 'd įgyvendinti a-- čia kaip galėtumėte įgyvendinti pset6 Python. Turint omenyje, Python Dizainas ciklas, pirmas dalykas, kad jūs darote, kai esate rašymo programos yra patikrinimas pamatyti, jei kas nors daroma tai jau. Iš tiesų, jei norite į serve-- Apache 50 daro maždaug tai, išskyrus tai neateina standartas įdiegtas Linux mašinų. Python daro, ir Python paprastas HTTP serveris veikia taip pat. Jei esate kada nors ant Linux mašina, arba Cloud9 IDE už CS50 ir norite tarnauti Ši srovė katalogas kad tam tikro prievado, python-M SimpleHTTPServer uostas aptarnauja kad. Taip pat galite importuoti paprastas HTTP serveris ir jis atšoko funkcionalumo jei daug norite pritaikyti jį arba ją pakeisti, arba paleisti it-- panaudoti ją Vykdyk savo serverį. Taigi, kad Python trumpai. Ir tai buvo CS50. Ačiū.