ROSS RHEINGANS-YOO: Szia, én vagyok Ross.
És ez egy CS50 szemináriumon.
Ez elviszi a programozási A C programozás Python.
>> A Python programozási nyelv.
Ez nagyrészt, mint a C szintaktikai, bár néhány
A technikai részleteit hogyan szintaxis kerül végrehajtásra,
kissé más.
Ez kevésbé erős, mint a C valamilyen módon.
Ez kevésbé kifejező számára hogy pontosan hol a számítógép
memória lesz lefektetett, hogyan bomlik lefektetett,
ha nem lesz szabadság, valamint azok a dolgok.
>> Ez hasznosabb, mint a C valamilyen módon, mert könnyebb programozni.
A nyelv, néhány emberek, intuitívabb.
És valóban, a cél az, hogy hogy legyen gyorsabb programozásához
és potenciálisan lassabb végrehajtani.
>> Most, ha jól meggondoljuk az időt
költött az utolsó probléma a Writing
A kód ellen mennyi időt töltesz
Ön utolsó probléma állítsa végrehajtó a kódot,
azt képzelni, hogy a nyelvi ami kétszer olyan gyorsan írni,
és kétszer olyan lassú, hogy végre, talán lehet javulást C valamilyen módon.
Természetesen, ha akarsz írni, kis programok csinálni kis dolgokat,
Python hasznos választott nyelvre.
>> És a végén ennek szeminárium, remélem,
képes arra, hogy a választás a jövőbeni projektek
melyről nyelv helyes használatához és nem az ötlet
hogy az egyik nyelv több korrigálja az idő.
Néhány dolog, amit a szeminárium.
Ez a szeminárium nem célja, hogy megtanít Python a semmiből.
Python nagyon hasonló C, és felteszem
hogy te egy CS50 diák, vagy valaki hasonló ismerete C.
>> Ha CS50 diák körüli probléma készlet 6,
Szóval egy csomó dolgokat C, adok
A fő különbség, és néhány dolog
hogy Python más valamint a különleges és hasznos,
de nem fogok menni amit egy programozási nyelv
és hogyan kell megírni a programot.
Azonban ez a szeminárium tanítani hogy levelet Python programok
ha az egyik a néhány csoportok.
Ismét megnézzük, hogyan akkor végre psets--
hogy legyen 1-6- Python--, és mutatók
A hivatalos dokumentáció a jövőben is.
A másik dolog, ami fontos, arról, hogy ez a beszéd rendelt,
ez a videó lesz Online jóvoltából CS50,
ezért nem érzem magam meg kell, hogy vegye tudomásul veszi.
Bármikor vissza, és nézd A később, mint a referencia.
Emellett a diák állnak most
ezen az oldalon, amely hogy ha nem egy Google doc.
Ez egy kicsit rövidített változata Az, amit én jelenik meg a képernyőn.
>> Egy óvatos kikötés előtt mi ugrik be, Python 3
egy másik nyelvet a Python 2.
Úgy néz ki, ugyanaz; vannak nagyon csekély műszaki különbségek
hogy fog okozni programok Pythonban 2
nem, hogy képes legyen végrehajtandó A Python 3 környezetet.
>> A CS50 készülék jön Python alapértelmezésben használ a Python 2.
Ezt ellenőrizheti a beírni a parancssorba
python --version, amely kimenet 2.7.6 az aktuális készülék.
Próbálja Python 3, amely nem működik a készülékben,
Ha Python alapértelmezésben 2.X.Y, akár A készülék vagy a saját gép.
Ki kell cserélni a Python 3 bármikor Ebben az előadásban, hogy írok Python.
Ha a géped futó alapértelmezésként 2, típus
Python 3 annak érdekében, hogy képes legyen a ténylegesen kövesse végig, és végre ezeket a dolgokat.
>> Továbbá, én pont akkor A hivatalos források most.
docs.python.org/3--~~V óvatos hogy ez egy 3 és nem 2--
van hasznos hivatkozások.
Bemutató végigvezeti nagyjából ugyanezeket a dolgokat
hogy most csinálok, kivéve szöveges formában.
Referencia hasznos mint hivatkozás a nyelvet,
és a Standard Library ad néhány, a kiterjesztés
további funkciókat.
>> Tehát egy nagyon első Python programot.
A bal oldalon van a szabványos C, a jobb oldalon, a Pythont.
Lehet, hogy felismerték ezt a problémát, ez
az egyik első probléma készletek CS50, és ezek a
oldja meg ugyanazt a megoldást.
Most, az oka, hogy mi vagyunk nézi ezeket egymás mellé
annyira tudjuk nézni szintaktikai különbségek.
Az egyik elefánt a szobában hogy lehet, hogy észrevette, jobb
kapásból, hogy Python nincs fő funkciója rácsavarodjon kódot.
Tehát a C, írsz egy csomó fájlokat, akkor összekapcsolja őket,
és a program elkezdi végrehajtani ez a dolog nevű int main.
>> Python, írsz egy fájlt, futtassa a fájlt,
A program elkezdi végrehajtani a tetején a fájl.
Így fog kezdeni a tetején fájl
menj le addig, amíg találunk valami mást.
Ha úgy találja, egy függvényben, akkor valójában nem hajtja végre azt a kódot,
akkor egyszerűen a függvényt.
De itt, amikor az első program n = 10,
Az első dolog, hogy ez a program majd tennie, hogy ezt az értéket 10-
és állítsa be a változó nevű n.
>> Apropó, hogy a vonal, az egyik Más things-- sorry-- ezt
azt jelenti, hogy a C programok, akkor azt írja,
akkor tegyék, amely hivatkozhat néhány csengés parancsokat,
és akkor majd futtatni egy eredő végrehajtható.
Python programok futtatása szöveget file-- ezt mario.py talán
legyen ez a fájl, hogy én csak azt mutatta, you-- akkor elfogy a fájlt
és akkor végre, és a tartalmát is
hajtja végre a Python.
Megteheti ezt a IDE.
>> Tehát ha van egy Helló fájlt, amely egyszerűen ez tartalmáért.
Ez tulajdonképpen Python 2, nem Python 3, így nem
aggódni a szintaxis most.
De majd futni Python, a hello.py, és ez fut.
>> Egy másik módja, hogy tudom használni a Python, hogy Nem fogok foglalkozni annyira ezt a beszédet,
ha én csak típus Python kitesz egy olyan környezetbe, ahol
Tudom megetetni Python sorról sorra.
Tehát itt, ha én írja print space "Helló, világ!".
Írja be.
Ez köpni nekem, hogy vissza az eredményeket hogy az egyes vonal azonnal.
>> Ez hasznos lehet.
Ebben az előadásban fogok csinálni a dolgokat a diák.
És így lesz képes követni együtt akár itt, vagy írásban
tényleges fájlokat, majd kivégezte őket.
>> De, megy vissza erre kódot, egy másik dolog,
hogy lehet, hogy noticed-- nos,
Két dolog, hogy lehet, észre ezeket a blokkokat.
Az első, hanem a földi halandó, hogy A Python nincs lezáró pontosvessző.
>> Pontosvesszőket nem kötelező mindenhol és ártalmatlan mindenhol.
Felveheti őket.
Lehet, hogy az emberek, akik írni Python egy élő vihogás rád
hátad mögött, mert ők nem szükséges.
Ők gyakran a jele, hogy halasszák C. A tervezők a nyelven
úgy érzi, hogy ez inkább világossá így és hogy ez nem szükséges bejelenteni
minden alkalommal, amikor a végén egy sort.
>> A másik furcsa dolog ez n van, hogy nem rendelkezik olyan típusú csatolt.
Az egyik a mágikus darab Python-- és fogom nevezni mágia,
de vannak nagyon technikai okokat,
works-- egyik magic darab Python
az, hogy a változó lehet bővíteni, vagy zsugorodik tartalmaznak minden olyan adatot,
típusok amit szeretnénk.
>> Tehát ez egy 10.
Ha később le azt soroljuk ebbe n 0.5, így ez igen 0.5.
Nem számít, hogy ez egy int itt és lebegnek van, bármit is, amely e n
fog, több vagy kevesebb, hogy képes legyen szopni valamint ha nem lesz sem e.
Hacsak nincs valamilyen nagyon is valós ok, amiért nem tudja használni az adatokat
írja, hogy n jelenleg, ekkor lesz is
ékelt és dobja hibát, és azok a dolgok.
>> De itt, Python nem igazán érdekel, mit
ez, hogy fogok ragaszkodni ebben a mondat, mint például, hogy szeretné ezt a dolgot?
Ez a dolog, hogy?
Igen, ez a fajta dolog.
Maradok, hogy a végén.
Ez lesz a probléma később, ha valakit, aki használni akarja, hogy vége
nem tudja kezelni.
Ez az egyik legfontosabb különbségek Python és C
hogy megkönnyíti az levelet nagyon nagy C programok
és könnyebbé teszi, hogy írjon nagyon kicsi Python programot.
>> A szintaxis nem nagyon más, hogy mit tesz.
Ez kicsit más A hogyan is kifejezte.
Tehát ez egy nagyon, az úgynevezett Pythonic, ahogy az írás is.
sorban a tartományban (n), ez a számtartományt 0 és N,
befogadó alján és kizárólagos tetején.
Tehát ez 0 és n-1, amely a pontosan mi a C kódot csinál,
kivéve, hogy ez egy sokkal könnyebb nézni talán.
>> Az érintett blokk Nem elindult a nadrágtartó,
helyett ez elindult ez a behúzás.
Ezért az összes ilyen vonalak Négy terek fölött a jobb,
vagy mint körülbelül egy elefánt szélessége.
És ezek azok, amelyek lesz teljesíteni ezt.
Ha én összezavar a behúzás ezen és én
tolja, hogy a nyomtatási vissza Az eredeti behúzás,
hogy a nyomtatási fogja hagyni a for ciklus.
Ezzel szemben a C, ahol van Igazából kell mozgatni, hogy zárt zárójel körül.
>> Ez azt jelenti, hogy nem kap hibák hogy ugrik ki, mert te
hogy egy zárójel rossz helyen.
Ez nem jelenti azt, hogy hibaüzenetet kapsz hogy ugrik ki, mert te
tagolt vonal rossz.
Így teszi bemélyedések szuper óvatos.
Remélhetőleg te is szuper Ügyeljünk a behúzás egyébként,
és így ez nem az, hogy sokkal inkább teher.
>> De egy alapvető szabály Python, és mi lesz egy pár ilyen
hogy megyünk keresztül keresztül Az a beszélgetés folyamán,
A próbálni a természetes szintaxis mielőtt keres fel semmit.
Szóval ez a szintaxis, a ez a szám a tartományban,
nagyon jellegzetes tekintve a stílus.
Rengeteg dolog Python majd meglátjuk szedni ezt a formáját.
>> És így ha jön egy új objektumot, amit
úgy gondolja, hogy képesnek kell lennie végighaladni ez, ebben a formában,
Kiderül, hogy valószínűleg támogatja ezt a formátumot.
Nem fogunk menni szuper mélyen A technikai okokat, amiért ez igaz.
>> De ez egy hasznos intuíció, hogy ha eléred a Python programok,
hogy ez a dolog csak fog működni.
Próbáld ki.
Indítsd a Command Line Tolmács, hátha működik,
lépni a dolgokat, mielőtt is kell nyitni a Google, és azt mondják,
mi a szintaxis ez különösen a dolog?
Sok Python tudna felfedezni, azzal, hogy megpróbálja.
>> Ez, ha még több hasonló C, akkor a fors vannak.
Ne feledje, hogy nincs zárójelben.
A zárójelek, újra, ártalmatlan, de felesleges.
Van egy vastagbél végén csakúgy, mint az a hurkok,
és újra, a relatív blokkok tagolt, nem pedig elindult a fogszabályozó.
Ez van még az eredeti szintű behúzás,
és a lényeges blokk tagolt újra.
Azok pontosan úgy működik, mint ahogyan az C.
>> Ez tulajdonképpen nagyon hasonló.
Ismét nyomtatási veszít egy karakter off printf Ön át néhány szálat.
Kiderül húrok vagy lehet kijelölve
Egyetlen vagy dupla idézőjel.
Nincs különbség, kivéve, hogy belülről
aposztrófokra használhatja idézőjelek között önfeledten,
ahelyett, hogy menekülni mindet.
És belül idézőjel, akkor lehet egyszerű idézőjeleket önfeledten
anélkül, hogy elkerülje azokat.
Ha akarta keverni őket, akkor biztosan
felnéz az online hogyan kell csinálni.
>> Észre fogod venni, hogy itt, Már eltelt végén = ez a dolog.
Ez egy példa egy opcionális érv, amely egyike azoknak a dolgoknak
hogy a Python támogatja, hogy teszi nagyon hasznos.
Tehát nyomtatási valóban van egy csomó érvek, amelyek általában
állítsa az alapértelmezett értéke, de itt voltam
úgy döntött, hogy felülbírálja az egyik az úgynevezett végén.
Az ok, hogy azt kell bírálhatják felül egy üres string
hogy a nyomtatott Python, a Alapértelmezésben kiír egy új vonal
miután a dolog, hogy azt mondta, hogy túl.
>> Tehát ez a hash ténylegesen fog nyomtassa ki a hash egy új sorban.
És ha nem akarom hash kinyomtatni Új sor után, akkor azt kell mondanom,
Nem nyomtatni egy.
De még így, az egyik utolsó dolog, A program hiányzik, hogy valaki van
Részvételi tetején.
Nyomtatás sütnek Python így alapvetően hogy nincs fejléc vagy modul
hogy meg kell közé, bár ha akartam
hogy tartalmazza egyebek egy Python szkript,
Én megtenném, egy nagyon hasonló format-- A szavak csak kissé eltérő.
>> Már említettem, hogy mi Nem kell a fő itt,
mert a Python kezdődik végrehajtó tetején.
Ha akartam, hogy lezárja ez egy funkciót, I
megtenném, mint this-- I mondanám def funkció nevét,
érveket lehet menni, és mi lásd néhány ilyen később, vastagbél,
és aztán megint, ez teljes elindult blokk
az, ami a működési blokkolja az adott funkcióra.
Szóval ez a meghatározás A funkció.
És van egy nyilatkozatot, majd le Itt tudok csak hívja a funkciót.
És ismét, a program tolmács, kezdve a tetején,
fogja látni, hogy ez a meghatározás.
Nem fog végrehajtani ezt, amíg nem ideérnek, majd ez olyan, mint, oh
Most már hívott, én hiszem, kell végrehajtani.
>> Egy dolog van, ami nagyon gyakori hogy a Python-fájlok,
Különösen Python fájlok kikerülnek a nyilvánosság
és a fejlett by-- és a kifejlesztett karbantartott, van valami ebben a formában.
Ez basically-- így, mert Python, akkor indítsa el a felső
és akkor végre aljára, Én, ha muszáj volt Mario nevű idekint,
akkor bármikor azt tartalmazza ezt a fájlt Egy másik fájl, mert szerettem volna használni
Mario funkció, hogy a többi fájlt lenne is ezt a felhívást, hogy Mario benne.
És amikor futottam, hogy a fájl, Arra kéri Mario.
>> Így lehetséges, hogy én csak szeretné futtatni ezt, ha amit ténylegesen
végre az adott fájlt.
És így tudok csomagolja ezt egy idióma, mint ez, ahol azt mondom,
ha a neve ennek a végrehajtás környezet fő,
akkor szeretnék csinálni ezeket a dolgokat.
Különben valaki más is use-- közé én function--
fájlom, és csak azért, hogy hozzáférést ezeket a funkciókat
anélkül, hogy futtatni a dolgokat hogy szeretnék végrehajtani ebben az állományban.
Ez megint nem kötelező de nagyon gyakori.
>> Ezek a dolgok entirely-- vannak pontosan ugyanazt a C és Python,
bizonnyal 3.
Azt hiszem, a 2, az osztás Néha ad vissza úszik, amikor
Ön üzemelteti az ehavi, és vagy akartad, hogy vagy nem.
De plusz, mínusz, és ideje, működik pontosan olyan, mint az elvárható,
kivételt fölött valamivel több típus.
Szóval tud szaporodni úszós ints, és azok a dolgok.
>> set ugyanúgy működik.
Akkor dupla egyenlőség jelet.
inequals-- nagyobb mint, kisebb, mint ezek a fajta things--
jelentése az, hogy a Ön ismeri őket.
>> Ahol C használja ezeket a szereplők, Python valamivel több English
olvasható is.
Tehát a kettő helyett, és jel, akkor Szó írja az "és", "vagy"
vagy nem."
Mint a if-- a feltételes állítások,
korábban láttuk, hogy ez a szintaxis C Ennek megfelelő szintaxist Python.
És ott nem egy csomó más ott, kivéve egy kicsit
Az írásjelek körül az oldalán.
Ismét, ahol C lenne mást ha Python használ elif,
de ezek többnyire felszíni szinten változások.
>> Iteration mint ez gyakran írva ezt a kifejezést a Python.
Akkor gyártás ez a fajta a dolog egy while ciklus a külső
ha akart, de Természetesen nem kell.
És ismét, ha akarta, hogy a nyomtassa ki elemeket egy tömb
lehet, hogy ezt így.
Az egyik szórakoztató dolog Python mégis,
az, hogy nem kell hogy ezt a paradigmát,
és tudod használni a valamivel elegánsabb egyet.
Azt mondod, egy a Ary.
>> Tehát nem megy itt és fut át ​​az indexek,
majd húzza ki egyes elemek,
Megmondaná a számára, hogy valójában csak elgázolta maguk az elemek.
És akkor bármit csinál belül működhet közvetlenül
az elemekkel, ami elég vicces.
És mi see-- fogjuk használni hogy idióma újra és újra
ahogy megyünk keresztül kód.
>> Ez ismét egy példa valami, hogy fogom
hívja Python mágia, bár vannak nagyon technikai okok miért működik.
És vannak technikai dolgok, kell, hogy igaz legyen kb tömb érdekében
hogy ez a munka a színfalak mögött.
A lényeg az, hogy a legtöbb fajta ami azt várják, hogy ez a munka
volt ez végrehajtani Ön a beépített nyelvet.
>> A másik dolog, hogy jó lenne ha ez működött minden nyelven,
de van néhány ok, miért nem tudja, nyomtassa ki ezt a húr alkalommal ezt a számot.
Kiderült, Python, ez pontosan mit szeretnél, ami csak szórakoztató,
és azt jelenti, hogy mi is valójában csökkentik ezt a programot, újra mario.c.
Ahelyett iterációjával sokat, mi is csak annyit szeretnék néhány helyek száma,
Azt akarom száma hash, és néhány hash a végén.
És ismét, használjuk ezt a formátumot.
>> Itt vagyunk halad egy változó ezen a módon.
Ismét nem kell mondani, milyen típusú változó van,
és az egyetlen alkalom fogunk kap hibák futás közben.
Ha valaki megpróbálja átadni valamit,
ez lesz jönnek be a funkció csak finom.
Ha ék itt, mert ez nem a dolog, hogy hozhat létre tartományok felett,
Majd kap egy futásidejű hiba van, és én is, hogy debug meg így.
De addig is, nekem nincs Nagyon óvatosnak kell arról, hogy mi
gets telt, mindaddig, amíg a tényleges végrehajtás minden összejön nagyon tisztán.
>> Nem tudtam még, hogy ez a egy kicsit tisztább
alkalmazásával egy adott beépített függvény A vonósok, ami helyes igazolni.
Ez csak egy hasznos funkció heverni a könyvtárban.
Ez a dokumentációban ha megy, és keresni kell.
És én azt mondom, jól fogom van ez a szöveg egyes számú hash,
és szeretném jobbra igazítása it-- pad ki szóközökkel, hogy ez a hossz.
>> Ismét, ez a dokumentációt, amely összehozza us--
Én valóban kattintson a these-- amely elvezet minket a második szabály
A Python-- standard könyvtár funkciót módszerek barátaival.
És ez gyakran megéri hogy menjen keres Kíváncsi vagyok
ha van egy dolog, hogy csak csinálja ezt.
Valószínűleg van.
Ha azt szeretné, hogy pad egy karakterláncot, ha azt
szeretnék venni a hátsó felében egy sor, ha azt
szeretnék keresni egy húr, ha szeretne törni egy pár dolgot
együtt egy string vesszővel közöttük,
Vannak standard könyvtár funkciók vannak erre.
>> És ez teszi az életed könnyebb, ha használja őket
ahelyett, hogy gördülő ki mindent a saját
öt sornyi kódot itt, öt sornyi kódot itt.
Ez tényleg kezdődik adja ki valós időben.
>> Az egyik érdekes dolog arról, hogy ez lesz az úgynevezett.
Észre fogod venni, hogy van egy pont a dolog.
Van néhány tárgyat, a bal oldalon, majd hívtam egy pont függvényében.
Ez az egyik a paradigmák Python használja a kapcsolódó módszerek tárgyakat.
Megbeszéljük, mi ez nagyon röviden a végén,
de tudjuk, hogy mind működnek dolgokat azáltal, hogy a dolog mondván dot
függetlenül, vagy hívja a működést, mely
az objektumot, és néhány más érveket.
>> Tehát ezek mindkét irányban, hogy dolgokat kap tenni Pythonban.
És hogy egy adott funkcionalitás megvalósításának
ebben a stílusban, vagy ezt stílusa van valami, amit
fölnézzük amíg nem kap egy beletanul amiért az egyik akkor valószínű, hogy esik.
Van egy többé-kevésbé összetartó filozófiája, Python
hogy felszívja többnyire írásával sok benne.
Egy bizonyos ponton, amely az egyik ilyen valamit kell végrehajtani
természetessé válik.
Egyelőre ez csak valami megtanulod, amit kitalálni
Minden egyes dolog.
>> Tehát standard könyvtár funkciók a barátok,
és ezek segítségével írják, hogy igénybe venni ezt a sok helyet igazán nem sokkal,
Nagyon elegánsan.
És ez valójában talán több olvasható, azt mondanám, mint a C program
ott.
Nem beszélve arról, hogy így van rövid elfér egy egész elefántot
a térben, hogy már mentett.
>> A másik dolog, ez egy végrehajtási Mario ez pont C, ami szerintem
a legrövidebb lehet kapni.
Nem rendelkezik a GET int, de Nehéz kódok értékének 10
Ugyanúgy, ahogy ez egy igen.
Kiderült, hogy ez az egy órájával meg 84 karakter, míg Python 64.
És ez végtelenül olvasható, mint a szemetet itt.
Tehát Python hatékonyabb az űrben.
Ez kevésbé hatékony az időben, de nem sokkal.
>> A listák fontos dolog a Python.
Még nem láttam őket, de működnek ugyanúgy, mint a tömbök itt C.
Tehát itt van, akkor kijelentem nekik, akkor át őket egy dolog.
Most négyzetek rendelkezik egy tömb ezeket a dolgokat.
Ismét nem nyilvánították típus, de ha valaha is próbálja használni,
bármi, amit várnak, dolgozni egy sor egészek
fog dolgozni egy sor egészek.
>> Ez egy dolog, ami amit egyáltalán nem lehet
itt C, mert a memória annyira kezét,
de nagyon könnyű csinálni Pythonban.
Ha azt akarom, tömb, hogy nagyobb, tudok hozzáfűzni egy elemet, hogy ez és ez jó.
>> Mi folyik a színfalak mögött?
A tolmács megy ki, és egy kis memóriát,
És lehet, hogy kapsz egy kis extra memóriával,
úgyhogy nem úgyhogy nincs a realloc minden alkalommal.
De mennyivel több memória nem is kell?
Ez nem döntés hogy van, hogy,
a hasonló döntések, hogy a tolmács fog tenni.
>> Itt látjuk tartomány hogy a két érv,
de ez még mindig tart, hogy befogadó A top ezért adjunk hozzá 1 van.
Ez egy idióma, ami egy még okos módon írni a dolgokat, mint ez.
Úgy hívják lista értése, és itt, amit mondunk
A Szeretném, hogy hozzanak i faragva minden i értéke ebben a tartományban.
Ez a valami a jobb lehet egy másik tömb, és ez a dolog a bal
hogy különösebb funkció hogy venne i változóként
és adj meg néhány eredményt.
>> Mit fogok csinálni az, Megyek építésére
tömb, ami mindezen dolgok mindegyik érték ebben a tartományban.
És ez szuper elegáns, szuper rövid, és ez nagyon egyértelmű, hogy mit jelent.
Ez az egyik a things-- ez megint,
Egy of-- nagyon emblematikus oka annak, hogy az emberek, mint a Python.
Ha tetszik programozási mint ez, akkor a Python
egy olyan nyelv, esetleg szeretne tanulni.
>> És ismét, vannak technikai ez miért működik.
De amennyire mi szó, mi több vagy kevesebb, nem érdekel.
>> Tehát, ha szeretné kinyomtatni listákat, néhány azonos idiómák hasznosak.
Mert én ebben a tartományban, amit lehetett index végig a dolgokat
majd nyomtassa ki őket.
És látni fogod, len itt.
Ha valaha is akartam, hogy A hossza a tömb, ez
Nagyon könnyű Pythonban, nagyon nehéz a C.
Ez nyomtassa ki pontosan, amit elvárnánk, hogy.
Azt is, mint láttuk korábban, végighaladni az elemeket tömb
közvetlenül, majd csak beszélni őket, ahelyett, hogy az index
vissza a tömb minden alkalommal.
>> És ez egy dolog, amit tehetünk.
Tehát a C, ha kér valamit mint ez, print mondanám,
ez egy sor egészek.
Ez egyáltalán nem egy húr, nem tudok nyomtatni.
Python több vagy kevesebb, nem érdekel.
Ez olyan, mint, van-e mód, hogy én fordulhat ez a string?
Igen, ezt fogom csinálni.
És így én csak nyomtatni, hogy ki.
Ez azt jelenti, hogy dolgokat általam elvártnál ezeket
leginkább a kemény részek A játék a tizenöt, írásos
Nagyon röviden Python.
>> Látni fogod, hogy van Egy kicsit of-- itt
Már leadott egy egész számot egy string, és azt kell tennie, hogy a kézzel.
És fogok adni hogy egy másik szöveg,
vagy más módon Python összezavarodik.
De vajon, ha éppen hozzátéve, egy string, hogy egy egész,
vagyok azt hiszem, hogy egy integer vissza, vagy a húrt?
De ismétlem, ha csak hívja str egy dolog,
és ez lehet az esetleges világot alakítani egy húr,
ez valószínűleg alakítani egy húr.
>> Itt látjuk használata beágyazott listát értése
a bal oldalon, néhány indexálás, amely pontosan úgy, ahogy azt kell megszokni,
és néhány nyomtat ki a dolgok.
Ismét mi már meghatározott néhány funkciók és hívjuk őket
A fő, amikor tényleg csak a fájl.
cserébe pontosan úgy működik, mint azt elvár dolgozó C. Keresse,
tudjuk állítani a dolgokat, mint this-- itt listája értése
van olyan feladat, hogy egy változó, és mi is valójában ez még könnyebb.
Nem kell írni a keresés, mert beépített a nyelven
van, ha ez a dolog ebben a tömbben.
Return true, különben vissza hamis.
Szóval ez a teljes egészében találni.
>> A teljes egészében a sort magában hívó sort,
amely is-- vannak implementációk E épített bizonyos C könyvtárak.
Ha szeretné ezt a fajta hátra, akkor
felülírhatja ezt nem kötelező érv fordított egy igaz.
És ha azt szeretné rendezni felett húrok, hogy beépített is.
>> Tehát ez nem azt jelenti, ezek dolog, amit tennie kell, minden nap,
de az ötlet, hogy ez a a filozófia Python,
hogy mindezen dolgok amit inkább fajta akarok van beépített.
És ami a szokásos funkciók, így egyfajta, hosszúságú, függetlenül,
támogassa a legtöbb logikailag értelmes bemenet.
Ezt nevezed te len egy tömb azonos Így hívja len egy húr.
Ön multiply-- rendezni húrok ugyanúgy rendezni tömböket.
>> A legtöbb szabványos funkciók hogy az emberek építeni,
és a legtöbb harmadik féltől származó könyvtárak, hogy az emberek
építeni, mert ők emulálni A design a standard könyvtár,
nevezhetjük mindent, hogy te mint, hogy miért nem ezt csak a munka,
C. Több vagy kevesebb, működni fog Python
mert az emberek dolgozni mögött a figura hogy mi egy dolog, és akkor működni
megfelelően rajta.
Tehát újra, technikai háttér, de teszi életünket könnyebbé programozók.
>> Tehát itt file I / O. fájl I / O rengeteg kis dolgok, amik miatt bonyolult,
és így vannak források az interneten, de dióhéjban,
hívja nyitott egy fájlt Íme egy adott típusú.
Szóval ez olvasni, olvasni és írni, írni, vagy hozzáfűzni.
Azt olvastam, hogy bizonyos számú karakter, és kinyomtatni azokat,
kapsz Hello!
Úgy értem, ez a fájl volt Hello!
Ebben, hívja olvasni, és mit kapsz vissza
egy string, amely az összes A többi a tömb,
vagy az összes többi a fájlt.
Ha hívja újra olvasni, Ön végén a fájl,
és így nem kap semmit, és így lesz bezárni.
Ismét, ez .close helyett közel fájlt, mivel így a C-
Ez több, vagy kevesebb, mert f egy a dolog, és azt szeretné, f bezárásához.
De az alap file I / O nem különösen bonyolult.
Ismét, ha azt szeretné, hogy nyissa meg a fájlt, ha szeretnél olvasni egy adott vonalon,
akkor kap ki különösen line-- van beépített inek, hogy.
Ha azt szeretné, hogy írjon egy dolog, akkor megírom ezt.
Ha azt szeretné, hogy írjon ki az egyes harap, akkor írjon e.
És ha azt szeretné, hogy ismételget a vonalon egy fájl
egyénileg, mint mi egy darabot Néhány héttel ezelőtt, amit tehetünk, hogy a.
Ismét a legtöbb tárgy, hogy jobb lenne, ha Szeretem, hogy képes legyen végighaladni
támogatást az iterációt.
Ebben piton, a fájl talán egy dolog, hogy Szeretném végighaladni soronként.
Ha ez volt a szótárban A szavak és én
próbálok azokat az egyéni szavakat, aztán, ezen belül hurok,
sorban ez lesz Minden szó után, és ezt a
lesz végrehajtani minden vonalon a fájlban, amíg a végén a fájlt.
És ismét, ha kinyomtatják minden vonal, a vonalak jönnek az új vonalak,
úgyhogy beállítás végén vissza a dolgot, mint ez.
Akkor lennék a tartalmát az állományt.
>> A második dolog, ami működik Bizonyos szempontból, mint a listákat, és valamilyen módon
mint valami lényegesen erősebb,
szótárak, amelyek valóban cool használni, de alapvetően hash
asztalok álruhában.
Létrehoztunk egy t pontosan két karakter, ami félelmetes
ha megpróbálta végrehajtani a hash tábla a probléma szett,
Tudja mennyi fájdalmat, hogy lehet.
De az emberek , és megcsinálta olyan jól,
hogy nem kell aggódni többé.
>> Ezután beteheti az egyes dolgokat.
Hash tables-- vagy szótárak Nem különösebben
érdekel, mit tárolja őket.
Tehát, ha néhány bejegyzést számok, valamint egyes tételeket listáról,
ha egyes bejegyzéseket más szótárak, valamint egyes tételeket vonósok,
Python nem sokat törődik.
>> Ismét, ha megy bele vár a húr, és mit kap vissza
egy tömb, az a te bajod.
És lehet, hogy hiba, bárki Azt hitte, hogy üzembe dolgokat
a szótárban, lehet, hogy te voltál.
Ha ez valakinek mást, remélhetőleg ők
jól viselkedett, hogy mit megy a szótárban
és nem hagyott semmilyen buktatókat Önnek esnek.
>> De a alapfunkciói adja vissza jól viselkedett a dolgokat.
Tehát azt mondják, ez visszatér vissza a szótár húrok,
akkor minden fogsz kijutni egy szöveg.
Ha mégis néhány ilyen és kirándulások téged, nos, lehet, hogy neked.
Python biztosan ad elég kötél akasztani magát, ha szeretne.
Most ki is nyomtathatja, egyéni elemei ezt és ezt visszatér
Pontosan mit elvárható.
Pontosan az, amit Ön elvár, azt hiszem, egy olyan kifejezés, hogy én vagyok a sok,
de ez többé- kevesebb hogyan Python működik.
Ha kér egy dolog, ami nem ez, Python fogja kidobni hiba
és ez ki fog lépni akkor ki bármilyen programot voltak.
Ez lesz ténylegesen ki kell nyomtatni További információk, mint az,
ez lesz a pont you-- ez lesz adjunk hozzá egy sort, és így tovább.
>> És az is lehet, szeretnénk hogy végighaladni szótárak
és megtalálni azokat a dolgokat benne.
Itt vagyunk az iterációt két dolgot ugyanabban az időben.
És így fogunk csinálni egy kulcs, érték, de majd nyomtassa ki az összes ilyen.
>> És ha azt akartuk, hogy cast-- ha valóban futott ez,
mi lett volna valami baj, mert on-- amikor mentünk be David,
nem tudta add--, ha nem vesd a string első,
nem tudtunk hozzátenni, hogy tömb A húrok rá egy húr.
De ha vessétek azt a húr, kapunk valamit
mint ez, ami talán amit szeretnél olvasni.
>> És ez helyesírás.
Mi csak olvasni a dolgokat.
Így tudunk olvasni az egyes szavakat a vonalak.
Mi levágja az utolsó dolog, így a vastagbél mínusz 1
Chomps le az utolsó dolog, ami we-- Az utolsó karakter kiolvasása.
Azt fogjuk mondani.
OK, minden egyes ilyen lesz illeszteni ezt a szótárba,
leképezés értéke 1.
Mi nem elsősorban érdekli, hogy az egyik,
de csak ott, hogy azt mondják, hát igen, ez a dolog Beteszem a szótárban.
Mert később mi vagyunk eredménye, hogy mi vagyunk
akartam mondani, nos, ha ez A szótárban egyáltalán.
>> Ismétlem, ez csekket tagság akár működési
segítségével egy teljesen más algoritmust, mint ez lesz a listán,
de mi nevezzük ugyanúgy, amely az bizonyos, hogy a Python cukor bevonat
dolgokat, hogy ők könnyebben használható.
És ismét, láttunk dolgok, mint ez előtt.
Ez alapvetően találni, vagy ez pontosan ugyanazt a szintaxist
mint találni, de működik, mint egy merőben eltérő szerkezetű.
És mi nem különösebben érdekel.
Tehát ezek azok a dolgok, amit arra kérték, hogy végre a helyesírás.
Ebben az ütemben, fogunk kapni többé-kevésbé az összes psets történik.
>> Közönség: Szóval, hogy alapvetően csak visszajön
helytelenül írta, ha nem egyezik valamit a szótárban?
ROSS RHEINGANS-YOO: Igen, igen.
És így, ez egy adaptációja probléma beállítva
amely arra kéri, hogy pontosan erre.
>> Közönség: Miért van a sor mínusz 1 ott?
ROSS RHEINGANS-YOO: Tehát ha éppen ismételve
több mint egy fájlt kér a vonalak, a vonalak
jön egy új sor karakter végén it-- a mínusz 1
csak vásárolni azokat le.
És ez egy különösen rugalmas módja indexelünk dolgokat.
Tehát, ha van egy szöveg, és azt szeretné, jól vagyok
fog kezdeni a karaktert három és fogok menni a végén.
3 kettőspont fog tenni az Ön számára.
Ha tetszik, akarom kezdeni a kezdődő és menj az utolsó mínusz 1
karakter, vastagbél mínusz 1.
És ha akart menni A harmadik, hogy a mínusz első,
akkor azt mondanám, 3 mínusz 1.
>> Továbbá, ha azt szeretnénk, hogy index a dolgokat jobbról vissza,
csak index mínusz számokat.
És mivel, ahol C felrobban vagy talán
feed-más memória nem kellett volna hozzáférés, hallani lehet mondani mínusz 1
jelenti az utolsó, de 1 karakter egy húr.
>> A modulok version-- is analógok könyvtárak C
és hasznosak a sok mindent.
Egy csomó dolog, amit szeretnék csinálni Python,
Különben egyszerű manipuláció változók,
azt szeretnénk, hogy akassza be a nagyobb könyvtárakban nagyobb
interfészek és több képességek kölcsönhatásban
más részein a világon.
sys egyike azoknak egy csomó eszközt
, amelyek hasznosak a kölcsönható a rendszer maga
és importálja, mint import sys.
>> Van még dokumentációt hogy amit lehetett menni ide,
vagy ha lehet találni a Google Google-keresés Python sys.
Azt írja be lép.
Az első link lesz A dokumentáció Python 2,
A második link lesz a dokumentációt Python 3.
>> És ha írtunk ki egy fájlt, ami úgy nézett mint this-- Ha különösen vagyunk
nézi működő parancssori
mint megtudtuk, hogy nem nagyon korán ebben az osztályban.
Ez nem nehéz. Tudod, hogy ki argv,
amely egyike azoknak a dolgoknak által végrehajtandó sys.
Ez nem beépített a alapcsomag, de a lényeg, akkor
meghosszabbíthatja azt az importáló ezt a funkcionalitást a sys.
Meg fogom nevezni a sys.
bármi.
Itt van argv.
Itt tulajdonképpen nincs argc a sys, mert
lehet kapni olyan könnyen hívja len.
Ezután nyomtatott hogy ki, akkor futott a terminál echo-args.py.
Kapunk vissza egy tömb, amely ez az első érv.
Ismét, ez ARGV 0, amely a Nevét a dolog, hogy van úgynevezett.
Ha nevezte további érvek, mi lennék hátulról.
Ez az egyik módja annak, hogy parancssori paramétereket.
Ha azt szeretnénk, zászlók, ahol forduljon különösen a dolgokat, vagy felülírás
Egy adott alapértelmezett, argparse a barátod.
És ismét úgy találja, hogy az online A python argparse a Google.
>> Van egy pár segédprogram modulokat találja magát
és újra, ha időt pazarolni Az ezen a nyelven importáló jsons
olvasásra, és ki a JSON fájlokat, nem olyan bonyolult.
Akkor nyit egy fájlt, úgynevezett json.load azon a fájlt, és akkor kap vissza semmit.
Mi ez az izé?
Ez egy JSON objektumot.
Amennyiben ez a JSON van tömb, A Python tömbök.
Amennyiben ez a JSON van asszociatív tömbök, Python
szótárak, vonósok, és számok, és így tovább.
Azt akarod dobni, hogy ki, akkor nyit egy új fájlt, akkor hívja lerakó,
és terhelések és guba, hogy menjen és ki a szálakat.
>> Hasonlóképpen, savanyú lesz az úgynevezett A lényegében ugyanazt a felületet.
Ez valamivel több hasznos, ha te dömping Python objektumok.
Tehát, ha valaha is akartam menteni egy változata a jelenlegi állapot
egy változó a jövőbeni futtatni a programot,
Fűszeres van Python könyvtár csinálja.
>> Ha bármilyen fajta változó lehet kiírni
a mint a szavak és a karakterek és bytes--, mint ez a szótár,
írhatnánk le, mi írhatnánk le, mint
mint egy JSON, ami Szó szerint ezeket a karaktereket.
És akkor nem lenne nagyon könnyű egy ember, hogy nyissa meg up-- nyit
és olvasd el.
Ha nem, különösen, törődnek az emberek olvasni,
tudnánk csomagolni még hatékonyabban a formák, amelyek később kell csomagolni
vagy azt, hogy később ki lehet felfújni.
És ez takarít 80% -a helyet, hogy a tárgyak eshetnek
hogy ha azt írod őket kézírás.
>> Ezt nevezed te lé szépen azonos way-- lerakó, terhelés,
és akkor kap a dolgokat vissza.
Tehát, ha írunk nagyon rövid Python programok
szeretné menteni az állami, majd olvasd el vissza később, ilyeneket
a barátai.
Hogy akkor nagyon egyszerűen kiírása őket JSON.
A legtöbb Python objektumok lehet kiiratni JSON
ha van olyan remény, hogy szerkezetileg lehetne őket képviseli, hogy így.
>> Ezek csak a hegyét a jéghegy modulok, amelyek hasznosak.
Szóval sys, os, többfeladatos, amelyek egyfajta alapvető workhorses a dolgokat
van szükségünk, hogy kölcsönhatásba lépnek A fájlrendszer os.,
mint os.isfile, os.isdirectory, os.makefile, ezek a barátok.
Ha azt szeretnénk, hogy kölcsönhatásba lépnek egy adott típusú fájlt,
json, savanyúság, csv.
Ha azt szeretnénk, hogy befolyásolja a web oldalak, a urllib szerzés http
oldalak. bs4-- BeautifulSoup-- ez egy csodálatos elemző a html.
Ön futtatni egy html és hogy ezt a beágyazott tömb objektum most,
amit tud elmozdulni felett keresed, a hasonlóan csak keres
ha van, a, ami fantasztikus.
>> Van egy csomó csomagok running--
csinál különösen Mathy dolgokat.
Tehát, ha azt szeretnénk, hogy szaporodnak, fordítsa meg, átalakítani mátrixok,
numpy használják az emberek minden szerte a világon, hogy.
scipy még hasznosabb szerszámok ebben az irányban.
sklearn-- gépi tanulás, természetes nyelvi feldolgozás,
szuper hasznos cucc, kap Python nyelven megvalósított minden alkalommal.
>> És ismét, vesz egy kicsit hosszabb write-- sajnálom,
vesz kicsit hosszabb futni, de Az ok, hogy a valódi mérnökök hajlamosak
Python azért van, mert általában zárolásra írsz a kódot, hanem
mint a számítógépen futó kódot.
Szóval, ha akarsz írni egy program, amely sok más ember
fog használni örökre, mint a Linux, akkor
Lehet írni, hogy a C. Ha voltál fog írni egy számítási motor,
írhatunk Pythonban ha szükséges, megváltoztatni minden pár hónapban.
Egyesek azt írni, hogy a C, mert ők ilyenek.
>> Így láttuk import sys mint egy módja annak, hogy a dolgok
szerzés modul a programba.
Akkor is importálják, mint egy becenevet, ha szeretné.
Ismét többprocesszoros a fájdalom, hogy írja ki minden alkalommal, így importálni a MP
majd amikor csak használja azt a programot,
azt mondod mp.process, vagy bármi.
Ha azt szeretné, behozatali Csak egyetlen dolog,
így urllib van egy dolog, úgynevezett kérést, így csak importálni ezt.
Később, akkor nem fogja igénybe venni, mint urllib.request, de ugyanolyan kérés
magától.
>> És akkor importálni mindent egy modult, ha szeretne.
Ez néha nem egy jó ötletem ez általában nem jó ötlet, tényleg.
Mert akkor very-- mert ha bármi abban a modul egy nevet, amit
akarta használni máshol a programban, akkor nem.
>> És ez nem mindig egyértelmű hogy ez a helyzet.
Annak érdekében, hogy megbizonyosodjon arról, hogy amit csinálunk, az biztos,
meg kell nyitni A modul megtekinthet minden
A nevek a végén there-- az összes funkciót,
Valamennyi változót hogy él az adott modult
mert te és valamennyi őket a helyi névtér.
>> Szóval az emberek ezt.
Ez általában ajánlott hogy ne tegye ezt.
De az emberek ezt minden az időt, mert ők
lusta, és nem akarja, hogy írja ki, op.
semmit, soha.
>> Mindez beszélni modulok hozz körül, hogy egy rövid beszélgetés
hogyan tervezhet programok Python.
Az első lépés az, hogy ellenőrizze, hogy ha bárki más már megtette a dolog,
vagy kész 90% a dolog.
Esély van akkor valószínűleg, és akkor kell menni kap a dolog, és fuss, hogy.
Vagy levelet wrapper körül hogy alkalmazkodjon a célra.
Ez csak azt követően, hogy van nem, hogy gondolja majd
megy, és write-- kezdeni gondolkodni hogyan kellene ezt a dolgot együtt.
Van sok cucc odakint, és ez
az egyik leginkább hasznos dolgokat Python.
Mint a nyelv Elegáns, a nyelvet
könnyen használható, de azért is, mert ez annyira elegáns és könnyen kezelhető,
az emberek is használnak, hogy egy Hosszú idő, és van egy csomó dolog
arra nézve, hogy tudsz kihasználni saját használatra.
>> Így a múlt szabály Python, valaki más már valószínűleg írásos
egy modult, hogy valaki már
Valószínűleg írásbeli könyvtár erre.
Mielőtt megpróbál tenni valamit, nézd hogy ha ez megvalósult.
Ez nem olyan nehéz.
Az összes modult, hogy tettem fel előtt, és talán egy kivétellel,
előtelepítve minden szabványos Python telepítés.
És így egy hívást, hogy importálni bármi, akkor
minden ezt a funkciót kéznél van.
>> Elején, hogy lezárja ezt beszélni, van néhány dolog,
hogy elhagytuk fekete dobozként és egyfajta glossed vége,
és van egy pár fehér rejlik, hogy én már elmondta, hogy a kedvéért az őszinteség,
Megyek legalább pont Itt, még ha nem is fogok
go szuper mélyen mindet és technikai magyarázatokat.
>> Egy csomó olyan dolog, hogy hívtam mágia
az, amit a többi ember nevezné objektumorientált programozás.
Szóval van sok things-- így változók nagyon gyakran nem
egyszerű bájt ül, memória, de nagyon bonyolult
objektumokat, amelyek belső állam működéséről és sok-sok
A rejtett változók, sok-sok rejtett funkciók, amelyek
Lehetővé teszi azokat alakítani húrok, amely lehetővé teszi, hogy végighaladni őket.
És ha writing-- és az oka, hogy
már mindezt gazdag funkcionalitás azért van, mert a people--
Az építészek a language-- mentek
keresztül, és minden szabvány objektumot, tegye bele a funkcionalitást
hogy ezt kell mondanom, hogy ez hogyan van hogyan fog ez működni
ha valaki meg akarja végighaladni meg.
>> Tehát minden, hogy valaki esetleg esetleg szeretné végighaladni,
a logika íródott manuálisan, hogyan te
állítólag végighaladni, hogy az objektum.
Minden, amit esetleg szeretnénk dömpingelt egy string van logika írt.
Ez a funkció, hogy hívja, ha szeretné dump ezt ki, hogy egy string.
Ez miért lehet hívja len a dolgokat, ez a
Ezért lehet hívni az ez Ezért lehet hívni, ha az a mindent
hogy meg akarna, mert azok minden visznek magukkal,
A műszaki know-how-t csinálni.
>> Ez olyan dolog, hogy én vagyok szuper nem fog belemenni.
De a dolog a lista finoman eltér C stílust hurkok,
és akkor olvastam róla, hogy a Az interneten, ha érdekel.
Van egy sötét oldala minden Ennek, hogy már említettem,
így két dolgot.
Az első az, hogy ez az objektum-orientált programozási hozzáteszi csomó fölött
a véletlen dolog, így a végén felhasználásával sokkal több memóriát;
akkor a végén egy kicsit időt, mint egyébként.
A other-- de annál alattomos sötét oldala, hogy ezt
Azaz, ha a dolgok csak jár mint azt szeretné, hogy
nem érzed, hogy úgy gondolja, szuper kemény arról, hogy ez legyen egy int
vagy hogy kell-e egy úszó, lehet, hogy ide
produktum egy int de itt akkor úgy gondolja, de akkor always-- sajnálom,
lehet, hogy itt produktum úszó,
de ha kap, hogy a második rész a program, amire gondolsz,
hát igen, de akkor Mindig át nekem egy int.
És ha nem, akkor lehetséges, hogy ékelt valahol,
Ha használni próbálja, hogy az index tömbbe, vagy bármi.
>> Tehát az egyik az igazi hasznos dolgot C
arra kényszeríti, hogy gondolja igazán Nehéz mielőtt any--
Mielőtt jár semmilyen változó létre, mint amit
az a típusú ez a változó.
És ez megy, hogy ilyen típusú minden alkalommal.
>> Ez nem igaz Python, és valójában, akkor
can-- ha csak fajta megy hallás,
és akkor hoznunk néhány döntést egy út, egy helyen,
és néhány döntések egyike ahogy a másik helyen
anélkül, hogy elég dolog mögött A jelenetek a másik helyen
elkapni a dolgokat megfelelően, Lehet kapni néhány nagyon furcsa hibákat.
És a program tovább üzemel Egy nagyon hosszú idő, mert
ennek a sok munkát, hogy mondjam, jól ez a dolog működhetne így,
így fogok futni, hogy így.
>> És valóban, a tény, hogy kitolja továbbítsa a sok kis hiba
azt jelenti, hogy gyakran, amikor Hiba valójában rossz
és akkor tényleg szeretné megjavítani, hogy végül mérföld away-- program
végül megállás mérföld távolságban re, amikor még volt a hiba.
És így egy dolog, hogy szeretnénk programok csinálni, sometimes-- egy dolog
hogy szeretnénk programok a teendő, ha mi vagyunk a hibakeresés
ez nem hangosan, és nem nagyon Gyorsan, ha valami elromlik.
>> Python nagyon rossz, hogy.
Python nagyon jó, hogy nem ennek hiányában, és előregördülését
a váratlan dolgokat.
Tehát ez hasznos, ha a írsz kis programok.
Ha bonyolódni hibákat néha
hosszú időt vesz igénybe, hogy ugratni őket.
>> Szóval van egy sötét oldala minden Ennek mintha csak működik.
Egyszerűen csak működik, mint azt elvárná.
Kivéve, hogy ha nem, akkor a végén fel, egy teljesen más helyen
és megpróbálja kitalálni, hogy hol volt, hogy elromlott.
>> A szemétgyűjtés is-- így Egy dolog, amit észreveszel
az, hogy minden ilyen dolog, hogy Hoztam be existence--
Ez a tömb, ezek a szótárak, ezek tárgyak, ezek a files-- soha nem fog szabadítani.
Nem volt hívás Ingyenes bármilyen e beszéd.
És ez volt a C-oldalon, mert nem jutottunk be ezeket a dolgokat.
>> De Python-oldalán, nincs ingyen.
A dolgok automatikusan szabadul fel, amikor Python
hiszi, hogy nem nézi őket.
Ez tényleg jó, hogy nem szabadít dolgok lehet, hogy még esetleg nézi,
de ez azt jelenti, hogy ha volt fog kiosztani a nagy dolog,
és te, mint ó Elegem van, hogy most,
nehéz megmondani Python hogy kész vele most.
>> Tudod néha beállítva hogy a változó, hogy nincs,
majd remélem, hogy végül A szemétgyűjtő
jön át, és tisztítja ki.
De ismétlem, nem érted ellenőrzése alatt, hogy.
És az egyik oka, hogy az emberek használni a C az igazán sebességkritikus dolgokat,
ez a képesség, hogy valóban tudom, mikor memóriát
és amikor ez felszabadult, és Egy csomó felett mondván,
Én a nem több memóriát, mint amit kell.
Ami valami, Python nem olyan nagy a.
Közönség: Kérdezhetek egy kérdést?
Mit értesz azon, hogy nem hangosan?
>> ROSS RHEINGANS-YOO: Tehát, ha valami rosszul megy
és te hibakeresés mód, akkor nagyon gyakran
szeretné, hogy a program, hogy elmondjam hogy pontosan hol a baj,
és nem csak csendben leállnak.
De jobb lenne, ha valóban azt kinyomtatni ki mindenféle információkat
tetszik, itt volt ez.
Ez a dolog történt Ha nyomtatás Egy wen-- ha fut egy web server--
>> Közönség: [hallható]
>> ROSS RHEINGANS-YOO: Igen, ha futsz egy webszerver,
ez néha rossz, ha Mindig öntsük hibák,
és azt mondod, jól, hogy nem működött.
Megyek, hogy hagyja abba.
Csak megyek, hogy figyelmen kívül hagyja azt, és menj tovább.
Mert akkor kap száz Ezeknek a hibáknak, és nem látjuk őket.
>> Ez minden bizonnyal hasznos hibakeresésnél
ha minden alkalommal a webszerver tett Hiba, ha kellett tartós bejegyzések erre.
Talán még szeretne a program megállítani, így ezek a bejegyzések
nem kap alá temette a dolgokat.
De ismétlem, ez a hibakeresés módban.
>> Gyakran a termelési módban, a világ egy kicsit más.
És apró scriptek futok, ahol a dolog, hogy azt mondtam, hogy nem
Lehet, hogy csak egy kicsit off attól, amit szeretnék, hogy ezt,
majd a sort próbál keresztülvinni hibák az, amit érdemes.
És ezekben az esetekben, minden bizonnyal Python igazán keresi a kezdetét.
>> Az utolsó dolog, hogy én nem beszéltem A this--, hogy én nem beszélni
de lehet igazán dühítő az első alkalommal, amikor van egy ilyen hibák,
és a második és a harmadik és negyedik alkalommal, amikor egy ilyen hibák.
Python, megemlítettem hogy az általa használt fehér térben
hogy elmondjam, milyen szintű behúzás és milyen funkcionális egység te vagy,
kezeli tab és space másképp.
Tehát, ha fülön négy, majd A következő sorban négy terek,
akkor is, ha azok megjelennek, mint a ugyanez az összeg a szerkesztő,
Python nem kezeli őket ugyanaz.
>> Tény, Python kezeli lapok és terek, mint az olaj és a víz.
Ők csak különböző dolog.
Nincs különösebb hossza, hogy egy lap,
így ez nem olyan, mint egy lapon egyenlő 8 terek, és így kapnánk körül
arra.
Mint, amikor azt mondja, hogy mi szintű white space vagyok,
azt ténylegesen keres egy minta a szóközök és tab.
És igen, a legjobb módja annak, hogy ezt a az, hogy mindig használjon szóközt minden alkalommal.
>> És valóban, a Cloud9 IDE és a CS50 IDE,
a Tab gomb betétek Négy terek helyett
A lap, ami rendkívül hasznos.
Bár ismét, ha írunk egy Python program fülek, hogy jó lenne,
ez csak ha valaki Bementünk és megpróbáltam felvenni
Egyetlen sort a program, Négy terek minden lapon
hogy majd 'megszakad.
És ez lenne megtörni módon Tényleg nem látható.
Bár a tényleges hiba üzenetet dob
köze van az új behúzni nem várhatók,
or-- ha beszél francia és úgy néz ki, hogy ez helytelen,
valószínűleg azért, mert van egy fül-tér problémája.
Még mindig dühítő debug.
A legnagyobb összességében ez a beszéd, amit nem tettem
eljutni, mert nagyon egy bonyolult, finom téma,
és nem volt szükséges, hogy nem minden A dolog amit csináltunk eddig,
egy koncepció nevezett hármas helyett.
Ők ott ugyanúgy, mint a tömbök, hogy nem lehet módosítani.
Megszokja az egész hely, mert azok hasznosak sok dolgot
hogy az elrendezések nem hasznos.
>> De ha azt szeretné, hogy egy tömb, és Akkor ígérd a tolmács, hogy
soha nem fog módosítani akarja, hogy thing-- sőt, ha szeretné módosítani,
akkor, hogy egy új, az új értékeket it-- ezek esek.
Ahelyett, termelő azokat szögletes zárójelek,
Önnek ezek előállításához kerek zárójelben.
Miért lenne használni ezeket a dolgokat, egy kicsit a kérdést. .
Az egyetlen dolog, hogy fogok mondani, hogy te
Használhatja esek, mint indexeinek szótárak.
Nem használhatja tömböket indexeinek szótárak.
És miért van az, megint, műszaki és Nem fogok futni bele.
>> A PSET, hogy én még nem érintette tovább ebben a beszéd pset6.
Tehát itt van, hogyan -ezte végrehajtása egy-- itt
hogyan kellene végrehajtani pset6 Pythonban.
Szem előtt tartva a Python tervezési ciklusban, az első dolog,
hogy amit csinál, ha te írásban programok ellenőrzés
hogy ha valaki megcsinálta már.
>> Sőt, ha azt szeretnénk, hogy serve-- Apache 50
nem kb ez, kivéve, hogy nem jönnek
szabvány telepített linuxos gépeken.
Python tesz, és a Python egyszerű HTTP-kiszolgáló is.
Ha valaha egy linuxos gépen, vagy a Cloud9 IDE kívül CS50
és azt szeretné, hogy szolgálja ezt a jelenlegi könyvtár egy adott portot,
python-m SimpleHTTPServer port szolgálja, hogy.
Azt is import Az egyszerű http szerver
és ez van egy csomó funkcióval, ha testre akarja szabni, vagy megváltoztatni,
vagy futnak it-- élni vele, hogy futtatni a saját szerver szolgáltatás.
>> Szóval ez Python dióhéjban.
És ez volt CS50.
Köszönöm.