ROSS RHEINGANS-YOO: Živjo, jaz sem Ross.
In to je CS50 seminar.
To vas bo popeljal iz programiranja v C programiranja v Python.
>> Python je skriptni jezik.
To je v veliki meri kot C v skladnji, čeprav nekateri
tehničnih podrobnosti kako gets da skladnja usmrčen
so nekoliko drugačni.
To je manj močna kot C v nekaterih pogledih.
To je manj ekspresivna za kje v računalniku
spomin dobi določeno, kako se dobi določeno,
ko postane svobodo, in te vrste stvari.
>> To je bolj koristno kot C, v nekaterih pogledih, ker je lažje programirati v.
Jezik je, da se nekateri ljudje, bolj intuitivno.
In res je cilj za to, da se hitreje programirati
in potencialno počasneje izvršiti.
>> Zdaj, če menite, da o količina časa
ste porabili za tvoj zadnji problem je določeno pisanje
tvoj kodeks proti Količina časa, ki ga porabite
na zadnji problem nastavite izvršitve kodo,
ki ste jo predstavljam, da jeziku kar je dvakrat hitreje pisati,
in dvakrat počasi izvršiti, morda je izboljšanje v C v nekaterih pogledih.
Zagotovo ko poskušate pisati majhni programi narediti malo stvari,
Python je uporaben jezik izbire.
>> In na koncu tega seminar, upam, da boste
lahko da izbira v prihodnjih projektih
o tem, kateri jezik je pravilno uporabljati, ne ideja
da je en jezik več popravi ves čas.
A nekaj stvari o tem, kaj Seminar je.
Seminar ni namenjen Nauči vas, Python iz nič.
Python je zelo podoben na C, in sem ob predpostavki,
da ste CS50 študent, ali je nekdo s podobno poznavanje C.
>> Če ste CS50 študent okoli problem nastaviti 6,
tako da ste videli veliko stvari v C, jaz vam bom dal
so velike razlike, in nekatere stvari,
da bi Python razlikuje in posebno in koristno,
ampak ne bom šel za kaj je programski jezik, je
in kako pisati programe.
Vendar pa bo ta seminar naučil vas, da napišete pitona programe
Če ste eden tistih redkih skupin.
Spet bomo pogledali, kako bi izvajanje psets--
da mora biti 1-6 v Python-- in zagotavljajo kazalci
na uradni dokumentaciji za poznejšo uporabo.
Druga stvar, ki je pomembna o tem, kako je dodeljena ta pogovor,
Ta video bo spletu, courtesy of CS50,
zato se nikoli ne počutim kot morate zapiske.
Lahko vedno iti nazaj in pogled na njej kasneje kot referenca.
Dodatno diapozitive Na voljo zdaj
na tem mestu, ki naj bi vzemite si naredil Google doc.
To je nekoliko skrajšana verzija kaj sem prikazuje na zaslonu.
>> Ena previdni opozorilo pred skočimo v, Python 3
je drugačen jezik od Python 2.
Izgledajo veliko enako; obstajajo neznatne tehnične razlike
ki bo povzročila programe napisana v Python 2
niso sposobni, da se izvrši v Python 3 okolju.
>> CS50 aparata prihaja z Python, ki ga privzeto uporablja Python 2.
To lahko preverite tako, tipkanje v ukazni vrstici
python --version, ki naj bi proizvodnja 2.7.6 na trenutne aparata.
Poskusite Python 3, kar počne delo v aparatu
če Python privzame 2.X.Y, bodisi na aparat ali na svojih strojih.
Moral bi zamenjati Python 3 kadarkoli V tem predavanju da pišem Python.
Če je vaš stroj teče 2, ki ga privzeto, tip
Python 3, da bi lahko dejansko sledite skupaj in izvršitev te stvari.
>> Poleg tega bom točko na uradnih virov zdaj.
docs.python.org/3--~~V previdni da, da je 3 in ne 2--
ima koristne reference.
Tutorial vas bo popeljal skozi velik del iste stvari
da delam zdaj, razen v besedilni obliki.
Referenčna je uporabna kot reference za jezik,
in standardna knjižnica daje kar nekaj podaljškov
z dodatno funkcionalnostjo.
>> Torej zelo prvi program Python.
Na levi strani imamo standardni C, na desni strani imamo Python.
Morda ste priznana ta problem, to je
eden od prvega problema kompleti v CS50, in ti
rešiti z isto raztopino.
Zdaj, razlog, da smo gledaš te ob bok
je, da bomo lahko ogledate na skladenjske razlike.
Eden od sloni v sobi da ste morda opazili, prav
off kij, je, da ima Python ni Glavna funkcija zavijanje okrog kode.
Torej v C, pišete kup datoteke, jih povezati,
in se program zažene izvršitve na to stvar imenujemo int glavno.
>> V Python, pišete te datoteke, izvajajo datoteko,
se program zažene izvršitve Na vrhu spisa.
Tako se dogaja, da začnete Na vrhu spisa
dol, dokler ne najdejo kaj drugega.
Če ugotovi, definicijo funkcije, ne bo dejansko izvede to kodo,
se bo preprosto opredeliti funkcijo.
Ampak tukaj, ko je prvi Program je n enak 10,
prva stvar, ki ta program bo naredil, je, da ta vrednost 10
in jo nastavite v spremenljivko z imenom n.
>> Ko že govorimo o tej progi, eno od drugi things-- sorry-- to
pomeni, da se programi C, jih boste napisali,
boste, da jih, ki bo sklicuje na nekatere Jek ukazov,
in potem boste teči Nastalo izvedljivo.
Python programi, zaženete Besedilo file-- tem mario.py morda
biti to datoteko, da sem pravkar pokazala you-- boste zagnati datoteko
in boste izvršiti, in vsebine njej
Izvajal se bo s Python tolmač.
To lahko storite v vašem IDE.
>> Torej, če imam Hello datoteko, ki preprosto je to vsebino.
To je pravzaprav Python 2, ne Python 3, tako da ne
skrbeti skladnji za zdaj.
Ampak bom teči Python, na hello.py in teče.
>> Drug način, da sem lahko uporabite Python, ki Ne bom se ukvarjajo s toliko v tem predavanju,
je, če sem samo tip Python, je mi pade v okolju, kjer
Lahko ga nahraniti Python po vrsticah.
Torej, tukaj, če sem tip v print prostor "Hello, world".
Vnesite enter.
To mi bo pljunil, da nazaj na rezultate da posameznik linija takoj.
>> To je lahko koristno.
V tem predavanju bom delati stvari na diapozitivih.
In tako boste lahko spremljali vzdolž bodisi tukaj, ali s pisanjem
Dejanske datoteke in jih nato izvršitve.
>> Ampak, vrača v to koda, druga stvar
da boste morda morali noticed-- dobro, tam je
dve stvari, ki jih lahko obvestilo o teh blokov.
Prvi, precej bolj preprostega, je, da Python nima zaključne podpičjem.
>> Podpičja so neobvezna povsod in neškodljivo povsod.
Lahko jih dodate.
To lahko povzroči, da ljudje, ki pišejo Python za dnevno snicker na vas
za tvojim hrbtom, ker oni niso potrebni.
Oni so pogosto znak, da so bila prestavljena iz C. Oblikovalci jeziku
menijo, da je bolj jasno, na ta način in da je ni treba razglasiti
vsakič, ko na koncu črto.
>> Druga čudna stvar pri tem je n je nima tip priloženi.
Eden od čarobnih kosov Python-- in jaz grem, da ga pokličete magic,
vendar pa so zelo tehnične razloge, zakaj je
works-- eno od čarobne kosov Python
je, da lahko spremenljivke razširi ali skrči, da vsebujejo karkoli podatke
vrste, ki bi jih želeli.
>> Torej, to je 10.
Če kasneje dol sem dodeljena ta n 0.5, bi bilo potrebno, da je 0,5.
Ne glede na to, da je int tukaj in plavajo tam, karkoli, ki uporablja ta n
bo, bolj ali manj, lahko chug vzdolž če postane eden od teh.
Razen če obstaja nekaj zelo resnična Razlog, zakaj je ni mogoče uporabiti podatke
tip, ki n trenutno ima, na kateri točki bomo dobili
klinasta in vrgel napako, in tiste vrste stvari.
>> Ampak tukaj, Python v resnici ne zanima, kaj
je to, da bom, da se držijo v tem stavek, kot so, hočeš to stvar?
Ta stvar v tem?
Ja, to je nekako stvar.
Bom držijo na koncu.
To bo problem kasneje, če nekdo, ki želi uporabiti to konec
ne zmorem.
To je eden izmed glavnih Razlike med Python in C
ki omogoča enostavno pisanje zelo velike programe C
in omogoča lažje pisati zelo majhen program Python.
>> FOR skladnje ni zelo razlikuje v tem, kar počne.
To je nekoliko drugačen v tem, kako se je izrazil.
Torej, to je zelo, kar se imenuje Pythonic, način pisanja.
za vrstico v območju (n), to je Razpon števila od 0 do n,
vključujoča na dnu in izključno na vrhu.
Torej je od 0 do n-1, ki je točno to, kar je koda C počne,
razen da je veliko lažje pogled na morda.
>> Ustrezni blok je ne pobota s naramnicami,
namesto tega je to pobota iz te vdolbine.
Torej, vse od teh progah so štirje prostori več kot v desno,
ali kot o širino slona.
In to so tisti, ki so dogaja se izvrši v to za.
Če sem mess up razcepljenost na to in I
potisnite to print nazaj original zamik,
da print bo zapusti zanko.
V nasprotju s C, kjer je tu dejansko morali premakniti, da zaprto oklepaja okoli.
>> To pomeni, da ne boste dobili napak da skoči ven na vas, ker vas
dal opornico na napačnem mestu.
To ne pomeni, da boste dobili napake da skoči ven na vas, ker vas
zamaknjen linijo narobe.
Torej naredi vdolbine super previdni.
Upam, da ste bili pa super previdni pri zarezi vseeno,
in zato je to ne da veliko več breme.
>> Toda osnovno pravilo za Python, in bomo imeli nekaj teh
da bomo šli skozi skozi potek pogovora,
se poskusite naravne skladnje preden je videti ničesar gor.
Torej, to sintakso, za to število v območju,
je zelo razlikovalen v smislu sloga.
Veliko stvari v Python bomo videli, pri čemer ta obrazec.
>> In tako, če ste prišli do z novo predmet, ki ga
mislim, da bi morali biti sposobni Ponovil nad tem, v tej obliki,
Izkazalo se je, da verjetno podpira ta format.
Nismo šli super globoko v tehnični razlogi, da je res.
>> Ampak to je koristno, intuicija, da imajo ko ste približuje Python programe,
da je to stvar, le, da bo delovalo.
Poskusi.
Zagnati v ukazni vrstici Tolmač, vidim, če deluje,
korak naprej s stvarmi, pred vami tudi ni treba odpirati Google in pravijo,
kaj je sintaksa za to predvsem stvar?
Veliko Python, da bi lahko odkriti samo s poskušanjem.
>> To, če je še bolj podoben za C potem FORS so.
Upoštevajte, da tam ni oklepaje.
Oklepajih so, spet, neškodljivi, ampak nepotrebna.
Obstaja kolona konec tako kot za zanke,
in spet relativne bloki so zamaknjen ne pobota s naramnic.
To je še v izvirniku Stopnja vdolbine,
in njegova ustrezna blok spet zamaknjen.
Tisti, ki dela natanko tako, kot to počnejo v C.
>> To je dejansko zelo podobna.
Again, print izgubi en znak off printf Hodite nekaj nizov.
Izkazalo se je, strune se lahko bodisi označi
s enojnimi narekovaji ali dvojne narekovaje.
Ni razlike, razen tega notranjosti
enojnih narekovajev lahko uporabite dvojne kotacije s opustiti,
namesto da bi pobeg vse izmed njih.
In znotraj dvojnih narekovajev, si Lahko uporabite enojne narekovaje z opustiti
ne da bi jih pobeg.
Če boste želeli, da se pomešajo njih, lahko zagotovo
poglej gor na spletu, kako to storiti.
>> Opazili boste, da tukaj, Sem opravil na koncu = to stvar.
To je primer opcijski argument, ki je ena od tistih stvari
da Python podpira, da zaradi česar je zelo koristno.
Torej print dejansko ima veliko Argumenti, ki so običajno
nastavite na privzeto vrednost, ampak tukaj sem imel
odločila, da bo prepisala tisto, ki se imenuje konec.
Razlog, da moram preglasiti s praznim nizom
je, da je tisk v Python, ki jih privzeto, natisne novo vrstico
po stvar, ki jo je povedal preveč.
>> Torej, to hash se dejansko dogaja, da natisnite hashem v novo vrstico.
In če nočem hash natisniti nova linija po njej, potem moram reči,
ne natisnejo enega.
Vendar pa ni bil, tista zadnja stvar, ki ta program manjka, da ima ena
vključujejo na vrhu.
Tiskanje se peče v Python tako da v bistvu da ni glavo ali modul
da morate vključujejo, čeprav, če je želel
da vključuje tudi druge stvari, v Python skript,
Jaz bi to naredil na zelo podoben format-- besede so le nekoliko drugačna.
>> Omenil sem, da bomo Ne potrebujemo glavni tukaj,
ker je Python začne izvršitve na vrhu.
Če sem hotel zaviti to funkcijo, sem
bi to naredil kot this-- I bi rekel, def ime funkcije,
argumenti bi šel noter in bomo glej nekatere od teh kasnejši, debelega črevesa,
in nato še enkrat, to Celotna pobota blok
je tisto, kar je operativni blok za to funkcijo.
Torej je ta definicija funkcije.
In tam je izjava, potem navzdol tukaj, lahko sem samo pokličite funkcijo.
In spet, program tolmač, ki se začne na vrhu,
boste videli, da je to definicija.
Da ne bo izvrševala to do njega tu, in potem je všeč, oh
Sedaj ste jo poklical, sem Verjetno bi ga morali izvesti.
>> Stvar, ki je zelo pogosto videti v Python datotek
predvsem Python datoteke, ki se sprosti za javnost
in razviti by-- in razvili in vzdrževana, je nekaj tega obrazca.
To je basically-- zato, ker Python, začnete na vrhu
in potem se izvrši na dno, Jaz, če sem imel Mario zaklical tukaj,
potem pa vsak čas sem vključil to datoteko v druga datoteka, ker sem hotel uporabiti
je funkcija Mario, da bi druge datoteke imajo tudi ta poziv k mario v njej.
In ko sem tekel to datoteko, bi poklical Mario.
>> Torej je možno, da sem samo želite zagnati to, če sem dejansko
Lepa to posebno datoteko.
In tako sem lahko to zaviti v idiom, kot je ta, kjer sem rekel,
če je ime te izvedbe okolje je glavno,
potem želim narediti te stvari.
V nasprotnem primeru nekdo drug lahko use-- vključujejo moje function--
moje datoteke, in samo da bi dobili dostop do teh funkcij
ne da bi morali teči stvari da želim izvesti v tej datoteki.
To je, še enkrat, neobvezno vendar je zelo pogosta.
>> Te stvari so entirely-- so popolnoma enaka med C in Python,
gotovo v 3.
Mislim, da v 2, upravljavec delitev Včasih vam daje nazaj plava, ko
ti delujejo na ints, in bodisi si je želel, da ali nisi.
Ampak plus, minus in časi deluje natanko tako kot ste pričakovali,
razen z nekoliko več vrst.
Torej si lahko pomnožimo boje, ki jih Ints, in tiste vrste stvari.
>> sklop deluje popolnoma enak.
Lahko uporabite dveh enakih znakov.
inequals-- večja od manj kot, te vrste things--
pomene, ki ste seznanjeni z njimi.
>> Kjer je C uporablja te subjekte, Python uporablja nekoliko več angleščine
berljivi tisti.
Torej, namesto dveh, ampersands, si dobesedno vnesite besedo "in", "ali"
ali ne."
Tako kot v vašem if-- v vaš pogojni stavki,
smo videli že prej, da je ta sintaksa v C ustreza tej sintakso v Python.
In tam ni veliko drugačen tam, razen za malo
ločil okoli stranic.
Še enkrat, če bi C drugje če, Python uporablja Elif,
vendar so ti večinoma Spremembe na ravni površini.
>> Ponovitev, kot je to pogosto napisano v tem idiom v Python.
Lahko izdelavo te vrste stvar z while na zunanji
če boste želeli, vendar boste zagotovo ne bi bilo treba.
In še enkrat, če si želel izpisal elemente iz matrike
morda to storite na ta način.
Ena izmed zabavnih stvari o Python, čeprav,
je, da vam ni treba uporabljati to paradigmo,
in jih lahko uporabite nekoliko bolj elegantna ena.
Praviš, da za A arja.
>> Torej, namesto da gre tu in teče preko indeksov,
in nato izvlečete posamezni elementi,
vam povem, da dejansko samo povozil elementov samih.
In potem karkoli ti počneš notri lahko deluje neposredno
o elementih, ki je precej zabavno.
In bomo see-- bomo uporabili znova in znova, da idiom
saj hodimo skozi kodo.
>> To je spet primer nečesa, kar bom
pokličite Python čarovnijo, čeprav obstajajo zelo tehničnih razlogov, zakaj to deluje.
In obstajajo tehnične stvari, ki morajo biti res okoli matriki, da
za to, da delajo v zakulisju.
Stvar je v tem, da je večina vrst ki bi lahko pričakovali, da je to delo
so imeli to izvaja za ste v vgrajenem jeziku.
>> Druga stvar, da bi bilo lepo, če je to delal v vsakem jeziku,
vendar pa obstaja nekaj razlogov, zakaj ne more, tiskanje Ta niz krat to številko.
Izkazalo se je, v Python, to počne natanko kaj bi radi, kar je prav zabavno,
in pomeni, da bomo lahko dejansko zmanjšati ta program, znova mario.c.
Namesto ponavljanjem veliko, smo lahko samo reči, želim neko število mest,
Hočem število haše, in nekateri hashes na koncu.
In še enkrat, bomo uporabili ta format.
>> Tukaj smo poteka v spremenljivka na ta način.
Še enkrat, ne rabimo reči kaj tip spremenljivke, je to,
in edini čas, da bomo dobite napak je na doživljenjsko času.
Ko nekdo skuša da prenese nekaj v,
da bomo prišli v funkciji čisto v redu.
Če bomo zagozditev tukaj, ker to ni stvar, ki jo lahko ustvarite obsege več,
Grem napaka tam, in bom moral to debug na tak način.
Toda v tem času, nimam biti zelo previdni, kaj
dobi sprejet, dokler v dejanski izvedba je vse skupaj deluje zelo lepo.
>> Jaz bi celo, da je to malo čistilec
uporabljajo posebno vgrajeno funkcijo na strune, ki je desno Justify.
To je samo koristno funkcijo leži okoli knjižnici.
To je v dokumentaciji če greš in si za to.
In sem rekel, tudi jaz grem, da imajo ta niz, nekateri število haše,
in bi rad prav upravičiti it-- pad ven s presledki, da se ta dolžina.
>> Tudi to je v Dokumentacija, ki prinaša us--
Bom dejansko klikate these-- ki nas pripelje do našega drugega pravilu
za standardne knjižnice Python-- metode delovanja so tvoji prijatelji.
In to je pogosto vredno svojega časa iti išče Sprašujem
če obstaja stvar, samo to stori.
Verjetno je.
Če želite pad ven niz, če bi
želel vzeti nazaj polovica niz, če bi
želeli iskati skozi niz, če ti bi rad razbil nekaj stvari
skupaj z vrvico z vejicami med njimi,
obstaja standardno knjižnico funkcije za to.
>> In to naredi vaše življenje lažje, če jih uporabljate
namesto valjanje Vse na svojem
v petih vrstic kode tukaj, pet vrstic kode tukaj.
Da res začne pri dodate do realnem času.
>> Ena od zanimivih stvari o tem, kako postane ta imenuje.
Opazili boste, da je pika stvar.
Imam nekaj predmetov na levi, in potem sem poklical piko funkcija.
To je eden izmed paradigmah da Python uporablja za pritrditev metode za predmete.
Bomo govorili o tem, kaj je to je zelo kratko konec,
ampak vem, da bomo lahko tako deluje na Stvari, ki jih pri tem, da stvar, ki pravi dot
ne glede, ali ga kliče funkcija, ki je
da je objekt in nekatere druge argumente.
>> Torej, to so v obe smeri, ki Stvari se opravi v Python.
In ali je še zlasti funkcionalnost izvede
v tem slogu, ali je to slog je nekaj, kar vas
bi moral pogledati navzgor, dokler ne boste dobili visi za katera je verjetno, da sodijo v.
Tam je bolj ali manj kohezivna filozofija, Python
da ste absorbirajo večinoma s pisanjem veliko v njej.
Na neki točki, ki je eno od teh nekaj, kar se bo izvajal kot
bolj naravno.
Za zdaj, to je samo nekaj boste izvedeli, ko ugotovimo,
vsaka posamezna stvar.
>> Torej standardno knjižnico funkcije so vaši prijatelji,
in se vam pišejo, da je zavzamejo toliko prostora res malo,
res elegantno.
In to je dejansko verjetno bolj čitljive, bi rekel, kot programa C
tja.
Da ne omenjam dejstva, da je tako Skratka lahko fit celo slona
v prostoru, ki smo jih shranili.
>> Druga stvar, to je izvedba Mario, ki je dot C, ki mislim, da
je najkrajša jo lahko dobite.
To nima get int, vendar Težko kod vrednost 10
na enak način, da je to ena počne.
Izkazalo se je, da je to ena ure v na 84 znakov, medtem Python je 64.
In to je neskončno več berljiva kot te smeti tukaj.
Torej Python je bolj učinkovita v vesolju.
To je nekoliko manj učinkovita v času, ne pa veliko.
>> Seznami so pomembna stvar v Python.
Mi smo jih niso videli, pa so delujejo podobno kot nizi narediti v C.
Torej, tukaj si jih lahko razglasi, jih lahko preide v stvar.
Zdaj kvadratov poseduje Niz teh stvari.
Spet nismo deklariran kot tip, ampak če bomo kdaj poskusil, da jo uporabljajo,
vse, kar bi pričakovali, da deluje na paleto celih
se bo delo na niz celih števil.
>> To je stvar, ki jo nikakor ne morete
narediti v C, ker je pomnilnik je tako na roke,
vendar je zelo enostavno narediti v Python.
Če želim moj array biti večja, sem lahko dodajte element z njim in to je v redu.
>> Kaj se dogaja v zakulisju?
Tolmač bo šel ven in dobili nekaj pomnilnika,
in morda bomo dobili malo dodatnega pomnilnika,
tako da ne, da nimam da realloc vsakič.
Toda koliko več spomin pa je treba?
To ni odločitve da moraš narediti,
To so odločitve, ki so Tolmač bo naredil.
>> Tu vidimo območje lahko sprejme dva argumenta,
vendar je še vedno dogaja, da se inclusive na vrhu, zato smo dodali 1 tam.
To je Fraza, ki je še bolj pameten način, da napišete stvari, kot je ta.
Imenuje se seznam razumevanje, in tu kaj smo govoriš
se bi rad dal v i na kvadrat za vsako vrednost i na tem območju.
Ta stvar na desni strani bi lahko drugo matrika, in ta stvar na levi
da je vsaka posebej funkcija da bi potrebovali v i kot spremenljivka
in mi je dal ven nekaj rezultat.
>> Kaj bom storiti, je, Jaz bom za izgradnjo
matrika, ki je vse te stvari za vsako vrednost v tem območju.
In to je super elegantna, super kratke, in to je zelo jasno, kaj to pomeni.
To je eden izmed things-- to je spet,
ena of-- zelo simptomatičen od razlogov, da ljudje kot Python.
Če vam je všeč programiranje kot je ta, potem Python
je jezik, boste morda želeli, da se naučijo.
>> In spet, obstajajo tehnične Razlogi, zakaj to dela.
Ampak kolikor sva zadeva, smo bolj ali manj ne zanima.
>> Torej, če želite natisniti seznamov, nekatere enake idiomov so uporabni.
Za i na tem območju, smo lahko Indeks skozi vse stvari,
in jih nato vse natisnete.
In videli boste tukaj len.
Če ste kdaj želeli, da bi dobili dolžina matrike, ki je
zelo enostavno v Python, je zelo težko v C.
To bi izpisal ravno tisto, kar bi pričakovali, da.
Mi bi tudi, kot smo videli, Ponovil več elementov v matriki
neposredno, in potem samo govoriti o jim, namesto, da bi kazalo
nazaj v matriki vsakič.
>> In to je stvar, ki jo lahko narediš.
Torej v C, če vprašate za nekaj kot je ta, bi print pravijo,
da je niz celih števil.
To definitivno ni niz, ne morem natisniti.
Python bolj ali manj ne skrbi.
To je podobno, ali obstaja način, da sem To se lahko spremeni v na vrvici?
Ja, bom to naredil.
In tako bom samo tiskanje, ki ven.
To pomeni, da lahko delati stvari like-- ti
večina trdih delov igre od petnajst let, napisal
Zelo na kratko v Python.
>> Boste videli, da obstaja malo of-- tukaj
Sem vrgel celo število v niz, in moram narediti, da ročno.
In bom dodati je drugemu nizu,
ali drugače Python postane zmeden.
Toda, ali če ste dodajanje niz na celo število,
jaz mislim, da bi dobili celoštevilčnemu nazaj ali niz nazaj?
Ampak še enkrat, če vas le pokličite str na stvar,
in je lahko v katerem koli je to mogoče svet, ki se pretvori v niz,
verjetno bo pretvori v niz.
>> Tukaj vidimo uporabe ugnezdene seznam razumevanje
na levi strani, neke indeksiranje, ki je točno tako, kot bi se navadiš na to,
in nekateri tiskanje stvari.
Spet smo definirani nekateri funkcije in jih pokličem dol
V glavnem, ko smo dejansko dobili datoteko.
povratni deluje točno tako kot si želite pričakujejo od dela z C. Najdi,
bomo lahko ustanovi stvari this-- tukaj je seznam razumevanje
tam je naloga na spremenljivko, in bomo lahko dejansko narediti še lažje.
Mi ne potrebujemo, da napišete iskanje, ker je vgrajen v jeziku
če se bo ta stvar je v tem polju.
Return true, sicer vrne false.
Tako da je celota najdbi.
>> Celota vrste vključuje poziv vrste,
ki is-- obstajajo izvedbe to vgrajeno v nekaterih knjižnicah C.
Če bi to želeli nekako nazaj, vas
lahko preglasijo to izbirno argument v obratnem vrstnem redu z res.
In če želite, da razvrstite skozi strune, ki je vgrajen tudi.
>> Torej, to se ne pomeni, da so ti Stvari, ki jih morate narediti vsak dan,
ampak ideja je, da se ta je filozofija Python,
da vse te stvari, ki jih želite nekako želeli storiti, so vgrajeni.
In večina standardne funkcije, tako nekako, dolžina, karkoli,
podpirati najbolj logično razumno vhod.
Pokličeš len na paleto isti Tako boste klic dol na vrvici.
Vi multiply-- razvrščate strune na enak način, razvrstiti nize.
>> Večina standardne funkcije da ljudje gradijo,
in večina tretjih oseb knjižnic, ki ljudi
graditi, ker oni posnemanju zasnova standardne knjižnice,
lahko pozval vse, ki ste ga kot so, zakaj tega ne samo delo,
v C. Bolj ali manj, da bo delo v Python
ker ljudje delajo v ozadju na sliki kaj stvar je nato deloval
ustrezno nanjo.
Torej še enkrat, tehnično ozadje, ga vendar naredi naše življenje lažje, kot programerji.
>> Torej, tukaj je datoteka I / O. datoteko I / O je veliko malo stvari, zaradi katerih je zapleteno,
in tako obstajajo viri na spletu, ampak na kratko,
pokličete odprta datoteki ime z določenega tipa.
Tako da je branje, branje in pisati, pisati ali dodati.
Bereš določeno število znakov, in tiskate tiste,
boste dobili Pozdravljeni!
Mislim, tako kot je bilo to sliko Pozdravljeni!
V njej, pokličite, da se glasi, in kaj boste dobili nazaj
je niz, ki ima vse preostalega matrike,
ali vsi preostali spisa.
Če klic ponovno prebrati, ste na koncu datoteke,
in tako ne boste dobili karkoli in tako boste zaprete.
Tudi to je .close namesto blizu datoteka, saj bi bilo v C.
To je bolj ali manj, ker f je stvar, in ti bi rad za f zapreti.
Ampak osnovna datoteka I / O ni še posebej zapletena.
Še enkrat, če želite odpreti datoteko, če ti bi rad, da se glasi posebno linijo,
lahko ven zlasti line-- tam zgradili-ins za to.
Če želite napisati stvar, lahko to napisati.
Če želite napisati ven posameznika ugrizi, lahko pišete tiste.
In če bi radi ponovitev več vrstic v datoteki
posamično, kot smo to storili v kosu od pred nekaj tedni, ki jih lahko storite, da.
Again, večina predmetov, ki ste jo želeli, da bi lahko Ponovil več
Podpora iterating nad njimi.
V pitoni, datoteka je morda stvar, ki Želel bi ponoviti čez črto po liniji.
Če je bil angleški besed in sem bil
poskuša priti teh posameznih beseda iz, nato pa v to zanko,
črta, da se dogaja, da se vsaka beseda v zameno in to
se dogaja, da se izvede za vsako vrstico v spisu do konca spisa.
In spet, če sem izpisal vsak linije, linije prihajajo z novimi linijami,
tako da sem nastavitev konec nazaj k stvari, kot je ta.
Potem bi jaz dobil vsebino moje datoteke.
>> Druga stvar, ki deluje v nekaj načinov, kot so seznami, in v nekaterih pogledih
kot nekaj bistveno močnejši,
so slovarji, ki so res kul za uporabo, vendar so v bistvu hash
mize v preobleki.
Ustvarite eno uporabo natančno dva znaka, ki je super
če si se potrudil za izvajanje hash tabela za vaš problem set,
veste veliko bolečine, da se lahko.
Ampak ljudje so naredili jo, in jo naredil tako dobro,
da vam ne bi bilo treba skrbi več.
>> Potem lahko vstavite posamezne stvari.
Hash tables-- ali slovarji ne zlasti
zanima me, kaj ste shranjevanje v njih.
Torej, če so nekateri vnosi številke, in nekateri vnosi so seznami,
če so nekateri vnosi drugih slovarjev, in nekateri vnosi so strune,
Python ne veliko nege.
>> Še enkrat, če greš v to pričakoval niz in kaj dobiš nazaj
je matrika, da je tvoj problem.
In morda je kriv kdorkoli mislil, da je dajanje stvari
v slovarju, morda, da si bil ti.
Če je bil to nekdo, pa, upajmo, da so bili
dobro obnašal o čem se je dogajalo v slovarju
in ni pustil nobenih pasti za vas, da sodijo v.
>> Toda standardne funkcije bo daš nazaj pridni stvari.
Tako pravijo, da se ta vrne nazaj slovar nizov,
potem je vse boste da gremo ven je niz.
Če boste to storili nekaj za to in je bil Ste pripravljeni, dobro, da bi lahko na vas.
Python zagotovo vam daje dovolj Vrv sami visi, če želite.
Zdaj smo lahko natisnete posameznika Elementi ta in ta vrne
točno tisto, kar bi pričakovali.
Točno to, kar ste pričakovali, mislim, je stavek, ki sem z veliko,
ampak to je bolj ali manj kako Python deluje.
Če vprašate za stvar, ki je ne to bo Python vrgel ven napako
in to vas bo nehal iz glede na program, ki ga je bilo v.
To bo dejansko natisnete več informacij kot to,
da bomo točko you-- ga bom dodamo črto, in tako.
>> In spet, morda želimo Ponovil nad slovarji
in najti vse stvari v njem.
Tukaj smo ponavljanjem več dve stvari hkrati.
In zato bomo to storili s ključno, vrednosti, nato pa izpisal vse to.
>> In če smo želeli cast-- če bomo dejansko tekel to,
bi imeli nekaj težav, ker je on-- ko smo šli z Davidom
ni mogla add-- če ne bomo storili najprej vrže v niz,
nismo mogli dodati, da niz nizov, prenese na vrvico.
Ampak, če smo ga vrže k niz, smo dobili nekaj
kot je ta, ki je morda kaj bi radi, da se glasi.
>> In to je Speller.
Pravkar smo prebrali v stvari.
Tako smo lahko prebrali v posamezne besede, kot so črte.
Mi odsekal zadnji stvar, tako debelo črevo minus 1
prežveči off zadnja stvar, ki we-- zadnji znak niza.
Bomo rekli.
OK, vsak od teh dobi vstavljen v tem slovarju,
razporejanja v vrednosti 1.
Ne bomo posebej skrbi, da je eden,
ampak to je samo tam, da reči, oh no, ta stvar bom dal v slovarju.
Ker pozneje, kar smo tekoč storiti, je, da smo
reči, tudi, če je v slovarju sploh.
>> Tudi ta ček za Članstvo je do delovanja
uporabo popolnoma drugačen algoritem, kot da bo na seznamu,
ampak smo ga pokličete na enak način, ki je nekaj tega premaza Python sladkorja
stvari, tako da oni so lažji za uporabo.
In spet smo videli stvari, kot je to prej.
To je v bistvu ugotovili, ali to je povsem enako sintakso
kot najti, vendar deluje več kot popolnoma drugačno strukturo.
In ne bomo posebno skrb.
Torej, to so stvari, ki jih so bile pozvane izvajati za Speller.
Na tej stopnji, bomo dobili bolj ali manj vse psets storiti.
>> OBČINSTVO: Da v bistvu samo pride nazaj
kot nepravilno napisane, če se to ne zgodi ujemajo nekaj v slovarju?
ROSS RHEINGANS-YOO: Ja, ja.
In tako, da je to priredba problem določiti
ki vas vpraša storiti točno to.
>> OBČINSTVO: Zakaj je linija minus 1 tam?
ROSS RHEINGANS-YOO: Torej ko ste ponavljanjem
več kot datoteka, ki prosi za po linije, linije
prihajajo z novo linijo značaja Na koncu it-- minus 1
je samo za nakupovanje tiste off.
In to je predvsem fleksibilna način indeksiranje v stvari.
Torej, če imate niz, in bi radi, dobro sem
bo za začetek na značaj treh in bom šel do konca.
3 colon bo to naredil za vas.
Če ste kot, želim začeti izvajati začenja in pojdite na zadnje minus 1
lik, debelo črevo minus 1.
In če si hotel, da gredo iz Tretji minus prvo,
potem bi rekli 3 minus 1.
>> Poleg tega, če želite, da indeks v stvari, ki štejejo od zadaj,
si indeks s številkami minus.
In ker, kjer C bi eksplodirala ali morda
Vam krme drugo spomin niste imeli dostop do slišite lahko rečete minus 1
pomeni predzadnji 1 znak v nizu.
>> Moduli so version-- so analogov knjižnice v C
in so uporabni za veliko stvari.
Veliko stvari, ki jih želite radi naredili v Python,
poleg preproste manipulacija spremenljivk,
želite, da se zatakne v Večje knjižnice z večjimi
vmesniki in več zmogljivosti za interakcijo
z drugimi deli sveta.
SYS je eden izmed tistih s kopico orodij
ki so uporabni za interakcijo s samega sistema
in ga bo uvozil kot uvoznih sys.
>> Obstaja več dokumentacija iz da, ki bi lahko šla tu,
ali bi lahko našli na Googlu jih googling Python sys.
Vnesete v enter.
Prva povezava se bo dokumentacijo v Python 2,
Drugi povezava bo biti dokumentacija Python 3.
>> In če bomo napisal datoteko, ki je preučevala kot this-- Če je v posebej smo
gledaš, ki delujejo na argumenti v ukazni vrstici,
kot smo se naučili narediti zelo zgodaj v tem razredu.
To ni težko. Lahko ven argv,
ki je ena od tistih stvari ki ga izvaja sys.
To ni vgrajen na baza paket, vendar še enkrat, vas
lahko razširi z uvozom da funkcionalnost iz sys.
Boste to sys pokličite.
karkoli.
Tukaj je argv.
Tam je pravzaprav ni argc v sys, saj vas
To lahko dosežete tako zlahka ga kliče len.
Nato smo tiskani da ven, nato pa smo tekel na naši terminala echo-args.py.
Smo dobili nazaj niz, ki je to prvi argument.
Tudi to je argv 0, ki je ime od stvari, ki sem klical.
Če smo jo imenovali z dodatno argumenti, bi dobili tiste, nazaj.
To je eden od načinov za pridobivanje argumenti v ukazni vrstici.
Če želite zastavami, kjer zavijemo posebne stvari na ali preglasiti
posebno privzeto, argparse je tvoj prijatelj.
In spet vam zdi, da je na spletu na python argparse na Googlu.
>> Obstaja nekaj uporabnost modulov, ki se znajdete uporabo
in še enkrat, če ste porabili koli za ta jezik uvoz jsons
za branje v in iz JSON datoteke, ni tako zapleteno.
Odpreš datoteko, imenovano json.load na to datoteko in se vrneš stvar.
Kaj je to?
To je JSON objekt.
Kadar ima ta json paleto, Python ima nize.
Kadar ta json ima asociativne nize, Python je
slovarji, strune, in številke, in tako naprej.
Hočeš, da smetišče da ven, odpreti novo datoteko, pokličete smetišče,
in obremenitve in odlagališč za gredo v in iz strun.
>> Podobno škripcih gets imenuje v bistvu enak vmesnik.
To je nekoliko bolj koristno, če ste dampinga Python predmetov.
Torej, če ste kdaj želeli, da shranite različica trenutnega stanja
spremenljivke za prihodnost zagnati vašega programa,
škripcih je Python je knjižnica za tem.
>> Če imate kakršno koli spremenljivka, ki se lahko izpisano
v podobnih besed in znakov ter bytes-- kot tega slovarja,
lahko bi zapisali, smo bi ga lahko zapisali kot
kot kodeku json objekta, ki je dobesedno ti znaki.
In potem bi bilo zelo enostavno za človek, da ga odprete up-- odpirati
in ga prebral.
Če nismo posebej skrbi za ljudi branju,
smo lahko paket še bolj učinkovito v obrazce, da bi se kasneje ali razpakiranje
ali pa, da bi kasneje lahko napihnjena.
In to shrani v višini 80% prostor, da se vaši predmeti morda
sprejmejo, če jih napisal longhand.
>> Pokličete škripcih zelo enako way-- smetišče, obremenitev,
in potem boste dobili svoje stvari nazaj.
Torej, če ste zelo pisno kratki programi Python, ki
želite shraniti stanje, nato pa preberite jim kasneje, stvari, kot je ta
so tvoji prijatelji.
Da si lahko zelo jih enostavno smetišče kot JSON.
Večina Python predmeti Lahko smetišče ven JSON
če obstaja kakšno upanje, da je strukturno jih lahko zastopane na ta način.
>> To so samo vrh izmed iceberg na module, ki so koristni.
Torej sys, os, Večkratni, so vrsta osnovnih kmečki konji za stvari
moramo interakcijo z OS datotečni sistem.,
kot os.isfile, os.isdirectory, os.makefile, to so tvoji prijatelji.
Če želite interakcijo z določeno vrsto datoteke,
json, škripcih, csv.
Če želite interakcijo s spleta Strani se urllib za pridobivanje http
strani. bs4-- BeautifulSoup-- to je čudovito razčlenjevalnik za html.
Jo vodijo na html in vami dobili te ugnezdene matrike predmeta zdaj,
ki lahko prečkala čez gledaš, s podobno samo iščejo
če je, je, in, kar je fantastično.
>> Tam je kup paketi za running--
za to posebej MATHY stvari.
Torej, če želite, da se množijo, obrnemo, preoblikovanje matrike,
numpy se ljudje vse uporabljajo po svetu za to.
scipy je še bolj uporabna orodja v tej smeri.
sklearn-- učenje stroj, naravna obdelava jezika,
super uporabna stvar, dobi izvajajo v Python ves čas.
>> In spet, nekoliko traja dlje write-- žal,
nekoliko dlje traja, da teče, vendar Razlog, da je resnični inženirji ponavadi
Uporaba Python je zato, ker ste nagnjeni k biti blokiran na vas pisno kodo, ne
kot v računalniku teče kodo.
Torej, če ste tekoč napisati Program, ki se veliko drugih ljudi
se bo uporaba večno, kot je Linux,
Morda ga napisali v C. Če ste bili dogaja, da napišete računanja motor,
boste morda napisali v Python, če je potrebno da ga spreminjajo vsakih nekaj mesecev.
Nekateri ljudje bi ga napisal v C ker oni tako.
>> Tako smo videli uvoznih sys kot način za pridobivanje stvari
pridobivanje modul v vašem programu.
Prav tako ga lahko uvozite kot vzdevek, če želite.
Spet Multiprocesorski je bolečina tip ven vsakič, tako uvoz kot mp
in nato kadarkoli jo uporabite v programu,
boste rekli mp.process, ali tisto, kar imate.
Če želite uvoz samo eno stvar,
tako urllib ima stvar imenovano Zahteva, tako da lahko samo uvoz, ki.
Kasneje, ga ne bo uveljavljala kot urllib.request, ampak le kot zahtevo
sama po sebi.
>> In lahko uvozite vse od modula, če želite.
To je včasih ni dobra idea-- to ponavadi ni dobra ideja, pravzaprav.
Ker ste very-- ker če karkoli V tem modulu je ime, ki ga
hotel uporabiti nekje drugje v vašem programu, ne moreš.
>> In to ni vedno očitna da je temu tako.
Da bi zagotovili, da kaj ste počeli, je bilo varno,
morate odpreti modul in videli vsi
imen, ki končajo v there-- vse funkcije,
vse spremenljivke ki živijo v tem modulu,
ker ste prinaša vse jim v vaši lokalni imenski prostor.
>> Torej ljudje to storijo.
Na splošno je priporočljivo da tega ne boste storili.
Ampak ljudje to storite vse čas, ker oni
leni in ne želite, da tip out mp.
kaj, kdaj.
>> Vse to govorjenje o modulih mi prinese okoli na kratek pogovor
o tem, kako si oblikovati programe v Python.
Prvi korak je, da preverite, če kdorkoli je že narejeno stvar,
ali naredil 90% stvari.
Verjetno so verjetno imeli, in si bi morala iti dobili svojo stvar in vodijo to.
Ali pisati ovoj okoli njega da jo prilagodi svojim namenom.
Šele po tem ima ni uspelo, da si boš potem
iti naprej in write-- začeli razmišljati o kako bi si dal to stvar skupaj.
Tam je veliko stvari tam, in to je
eden izmed najbolj uporaben stvari o Python.
Tako kot je jezik eleganten, jezik
Je enostaven za uporabo, temveč tudi zaradi to je tako elegantna in enostavna za uporabo,
ljudje so jo uporabi za nekaj dolgo časa in tam je veliko stvari
tam zunaj, ki lahko izkoristiti za svojo lastno uporabo.
>> Torej zadnje pravilo Python je nekdo ostalo je že verjetno napisal
modul za to, nekdo drug je že
verjetno napisal knjižnico za to.
Preden poskusite narediti stvar, poglej da vidim, če je bil izveden.
Saj ni tako težko.
Vsi moduli, ki sem dal gor pred, z morda eno izjemo,
prihajajo vnaprej nameščen v vsakem standardna vgradnja Python.
In tako s pozivom za uvoziti karkoli, vas
imajo vse te funkcionalnosti na dosegu roke.
>> Začetek zaviti up to Pogovor, obstaja nekaj stvari,
da sem zapustil kot črnih skrinjic in nekako prezrli,
in tam je malo belo leži da sem povedal, da zaradi poštenosti,
Bom vsaj točki tukaj, tudi če ne bom
iti zelo globoko v vse izmed njih in njihove tehnične pojasnila.
>> Veliko stvari da sem poklical magija
je tisto, kar bi drugi ljudje pravijo objektno usmerjenega programiranja.
Torej obstaja veliko things-- tako spremenljivke so zelo pogosto ne
preprostih bajtov sedel, pomnilnik, vendar so zelo zapletena
predmeti, ki imajo notranje Stanje o funkcijah in veliko
od skritih spremenljivk, veliko skrito funkcionalnost, ki
si upamo jih spremenili v strune, ki vam omogoča ponovitev nad njimi.
In če ste writing-- in razlog, da so
imajo vse te bogate funkcionalnosti je zato, ker so people--
arhitektov language-- so odšli
skozi in za vsakega standarda objekt, dal v funkcionalnosti
reči, da je to, kako je to kako se to dogaja, da deluje
če nekdo želi ponoviti nad njim.
>> Torej je vse, da bi nekdo morda želite ponoviti čez,
je logika napisana v Ročno o tem, kako ste
naj bi Ponovil nad tem predmetom.
Vse, kar bi morda želeli odvrgli v nizu je logika napisal.
To je funkcija, da pokličete, če želite to smetišče ven na vrvici.
To je razlog, zakaj si lahko pokličite len na stvari, to
Zato lahko pokličete v, to je Zato lahko pokličete, če v na vse
da bi si želeli, saj tiste vsi prevažajo z njimi,
tehnično znanje, kako to storiti.
>> To je nekaj, kar sem super, ne bo šel v.
Ampak za stvar na seznamu je subtilno drugačen od C stilu za zank,
in si lahko preberete vse o tem na internet, če ste zainteresirani.
Obstaja temna stran vsem to, da sem omenjeno,
tako da je dve stvari.
Prvi je, da je ta predmet usmerjen programiranje dodaja veliko režijske
na naključne stvari, tako da boste na koncu z uporabo veliko več pomnilnika;
boste na koncu z uporabo malo bolj časa, kot bi jo sicer.
Other-- ampak bolj zahrbtna temna stran tega
je, če stvari preprosto delujejo kot si jih želijo
ne da bi morali razmišljati super trd o tem, ali bi to morala biti int
ali pa mora obstajati float, bi bilo, da se je tukaj
ste proizvajajo int ampak tukaj ste mislim, vendar jih bomo always-- žal,
je morda, da je bilo tukaj ste izdelavo plovec,
ampak, ko prideš na drugi del vašega programa, si mislil,
oh no, ampak jih bomo mi vedno opraviti int.
In če ne, je mogoče da ste klinasta nekje,
Če boste poskušali uporabiti, da bi kazalo v array, ali tisto, kar imate.
>> Torej eden pravi uporabne stvari o C je
da vas prisili, da res misliš Težko preden naredite any--
preden prinese kakršne koli spremenljivko začel delovati, kot je tisto,
je vrsta te spremenljivke.
In to se dogaja, da imajo da je tip za vse večne čase.
>> To ni res, Python, in v resnici,
can-- če ste pravkar nekako gredo po posluhu,
in naredite nekaj odločitev eden od načinov, na enem mestu,
in nekatere odločitve ena Način, na drugem mestu
ne da bi dovolj stvari za sabo prizori na drugem mestu
pravilno ujeti stvari, ki jih lahko dobite nekaj zelo čudnih napak.
In program lahko vodijo delovanje zelo dolgo časa, saj je
delaš veliko dela reči, dobro ta stvar lahko deluje na ta način,
tako da bom teči v tisto smer.
>> In v resnici, je dejstvo, da potisne naj skozi veliko manjših napak
pomeni, da pogosto, ko Napaka je pravzaprav slaba
in ti dejansko želijo, da to popravimo, se konča milj away-- programa
konča ustavitev milj od takrat, ko ste imeli svojo napako.
In tako je ena stvar, ki bi radi Programi za početi, sometimes-- eno stvar
da bi radi programe storiti, ko smo debugging
je ne glasno in ne zelo hitro, če gre kaj narobe.
>> Python je zelo slaba pri tem.
Python je zelo dobro, ne ni in vozni naprej
skozi nepričakovane stvari.
Torej je to uporabno, če pišete majhne programe.
Ko prideš zapleteno bugs včasih
traja dolgo časa, da jih draži ven.
>> Torej obstaja temna stran za vse od tega, kot da preprosto deluje.
Preprosto deluje, kot ste pričakovali, da.
Razen tega, da, ko se to ne zgodi, boste na koncu v popolnoma drugo mesto
in poskuša ugotoviti, kje je bilo, da si je šlo narobe.
>> Zbiranje smeti tako is-- ena stvar, ki jo boste opazili
je, da je kateri koli od teh stvari, ki Prinesel sem v existence--
Ti nizi, ti slovarji, ti predmeti, ti files-- se nikoli osvobodili.
Ni bilo klic prosti kateremkoli to talk.
In da je na strani-C, ker ne bomo nikoli dobili v teh stvareh.
>> Toda v Python-strani, ni svoboden.
Stvari se samodejno sprostil, ko Python
misli, da si ne gledamo na njih.
To je res dober ni sprostitev stvari, ki boste morda še vedno lahko gledaš,
vendar to pomeni, da če ste bili bo dodelila to velika stvar,
in ste kot, oh Jaz sem naredil z njim zdaj,
je težko povedati, Python da ste končali z njo zdaj.
>> Včasih lahko nastavite da spremenljivka biti nobeden,
in potem upam, da sčasoma pobiranje smeti
prihaja skozi in ga počisti.
Ampak še enkrat, ne boste imeti nadzor nad tem.
In eden od razlogov, da ljudje uporabljajo C za res predstava kritične stvari,
je to sposobnost, da res veš, kdaj je pomnilnik dodeljen
in ko je to osvobojeni, in imajo veliko nadzora nad rekel,
Jaz sem z ne več pomnilnika, kot rabim.
Kar je nekaj, Python je ne da veliko na.
OBČINSTVO: Vas lahko nekaj vprašam?
Kaj ste mislili s ne glasno?
>> ROSS RHEINGANS-YOO: Torej, če Nekaj ​​je šlo narobe
in ste v debugging Način, bi si zelo pogosto
želite, da vaš program, da vam povem, kje pa je šlo narobe,
in ne samo tiho prenehali prikazovati.
Vendar pa bi dejansko bilo za tiskanje iz vseh vrst informacij o
podobno, tukaj je bilo to.
To se je zgodilo Če tiskate wen-- če delate spletno server--
>> OBČINSTVO: [neslišno]
>> ROSS RHEINGANS-YOO: Ja, če ste teče spletni strežnik,
je včasih slabo, če ste vedno zavržemo napak,
in pravite, dobro, da ni delovalo.
Grem ustaviti.
Jaz sem le, da bo prezreti je in nadaljuj naprej.
Ker potem lahko dobiš na stotine teh napak in jih ne vidim.
>> Vsekakor bi bilo koristno za namene debugging
če je vsakič, ko vaš spletni strežnik vložen napake, ki jih je imela trajno evidenco o tem.
Morda boste celo želeli program ustaviti, tako da ti zapisi
Ne dobijo pokopan pod stvari.
Ampak še enkrat, da je v načinu debugging.
>> Pogosto v načinu proizvodnje, svet je malo drugačna.
In v majhnih skripte, tečem, če je stvar, ki mi je dejal, da storijo
morda samo malo off od tistega, kar bi rad to storiti,
potem nekako potiska skozi Napake je nekaj, kar boste morda želeli.
In v teh primerih vsekakor Python res zasluži svoje začne.
>> Zadnja stvar, da nisem govoril V this--, da nisem govoril o
vendar je lahko zelo razburja prvi Čas imate eno od teh napak,
in drugi in tretji in četrti Čas imate enega teh napak.
Python, sem omenil da uporablja bel prostor
da vam povem, kaj raven zamika in kaj funkcionalni blok ste v,
ravna zavihke in prostore drugače.
Torej, če ste zavihek čez štiri, nato pa naslednja vrstica ima štiri prostore,
tudi če se pokažejo kot enak znesek v vašem urejevalniku,
Python jim ne obravnavajo enako.
>> Dejstvo je, Python obravnava jezičke in prostori, kot olje in voda.
So samo različni stvari.
Ni zlasti Dolžina, da je jeziček
tako da to ni všeč zavihek enaka 8 prostori, in tako bi dobili okoli njega
na ta način.
Všeč, ko pravi, kaj Raven belega prostora sem na,
je pravzaprav išče vzorec prostorov in zavihkov.
In tako, je najboljši način, da se ukvarjajo s tem je, da vedno uporabljajte presledkov ves čas.
>> In v resnici, v Cloud9 IDE in CS50 IDE,
Vaše ključne Tab vložki štirje prostori, v namesto
iz kartici, ki je super uporabna.
Čeprav še enkrat, če si napisal Python Program z zavihki, da bi bilo fino,
to je samo, če nekdo šel in poskušal dodati
ena vrstica za vaš program, ki imela štiri prostore za vsako kartico,
da bi prekinil.
In bi pretrga na način, da res ni viden.
Čeprav dejansko napake Sporočilo, ki ga meče
ima opraviti z novo zamakniti ni pričakovati tukaj,
or-- če govorijo alinej in izgleda, da je narobe,
je to verjetno zato, ker tam je zavihek prostor problem.
Še vedno razburja debug.
Največji celoti v ta pogovor, ki ga nisem
priti, ker je res zapleten, subtilna tema
in ni bilo treba storiti vse stvari tako daleč, da smo naredili,
so koncept imenovan torke.
So pa zelo všeč nizi, ki jih ne morete spremeniti.
Ti se uporabljajo po vsem mestu, saj so uporabni za veliko stvari
da so nizi niso uporabni za.
>> Toda, če želite, da bi array, in potem pa obljubim, tolmač, ki vas
se nikoli ne bodo želeli spremeniti, da thing-- v resnici, če želite spremeniti,
boste narediti novega z novo Vrednosti v it-- teh so torke.
Namesto izdelave jim z oglatimi oklepaji,
jih proizvajajo v okroglih oklepajih.
Zakaj bi uporabili te stvari, je malo vprašanje. .
Edina stvar, ki jo bom povedati o, da je vas
Lahko uporabite zapise, kot Indeksi za slovarjih.
Ne morete uporabljati nizi kot Indeksi za slovarjih.
In zakaj je, še enkrat, tehnično in Ne bom teči v to.
>> Pset da nisem dotaknil o tem govori je pset6.
Torej, tukaj je, kako si "D izvajati a-- tukaj
kako bi se izvajala pset6 v Python.
Vodenje v mislih Python Oblikovanje cikel, je prva stvar,
da boste to storili, ko ste pisanje programov je preverjanje
da vidim, če je kdo to že naredil.
>> V bistvu, če hočeš da serve-- Apache 50
pa približno to, razen, da ne pride
standardno nameščen na Linux strojih.
Python počne, in Python preprosta http strežnik počne, kot dobro.
Če ste kdaj na Linux stroj, ali Cloud9 IDE izven CS50
in bi radi, da služi ta tok imenik določenem pristanišču,
python-m SimpleHTTPServer port služi to.
Prav tako lahko uvozite preprost http strežnik
in to je dobil veliko funkcionalnosti, če jo želite prilagoditi, ali pa ga spremeni,
ali se izvajajo it-- jo izkoristimo za teči svoj strežnik storitve.
>> Tako da je Python na kratko.
In je bilo to CS50.
Hvala.