ROSS RHEINGANS-YOO: Hei, olen Ross.
Ja tämä on CS50 seminaari.
Se vie sinut ohjelmointi C ohjelmatyötä Python.
>> Python on skriptikieli.
Se on pitkälti kuin C syntaksia, vaikka jotkut
teknisistä yksityiskohdista miten tämä syntaksi saa suorittaa
ovat hieman erilaiset.
Se on vähemmän tehokas kuin C jollain tapaa.
Se on vähemmän ilmeikäs varten missä tarkalleen tietokoneen
muisti saa säädettyihin, miten se saa säädetyn,
kun se saa vapauden, ja tuollaiset asiat.
>> Se on enemmän hyötyä kuin C jollain tapaa, koska se on helpompi ohjelmoida.
Kieli on jossain ihmiset, enemmän intuitiivinen.
Ja todella, tavoitteena on, se olla nopeampi ohjelmoida
ja mahdollisesti hitaampi toteuttaa.
>> Nyt jos ajattelee aikaa
olet käyttänyt viimeisen Harjoitus kirjoittaminen
koodi vastaan aikaa vietät
teidän viimeinen ongelma asettaa täytäntöönpanovaltion koodia,
olisit kuvitella, että kieli joka oli kaksi kertaa niin nopeasti kirjoittaa,
ja kaksi kertaa niin hidas toteuttaa, saattaa olla parannus C jollain tapaa.
Varmasti kun yrität kirjoittaa pieniä ohjelmia tehdä pieniä asioita,
Python on hyödyllinen kieli valinnan.
>> Ja lopussa tämän seminaari, Toivottavasti sinulla
voi tehdä valinta tulevissa projekteissa
siitä, mitä kieltä on oikea käyttää, ei ajatus
että yksi kieli on korjata koko ajan.
Muutamia asioita, mitä seminaari on.
Tämä seminaari ei ole tarkoitettu opettaa sinulle Python tyhjästä.
Python on hyvin samankaltainen C, ja olen olettaen
että olet CS50 opiskelija tai joku samanlaisella perehtyneisyys C.
>> Jos olet CS50 opiskelija noin Harjoitus 6,
Niin olet nähdä paljon asioita C, minä annan sinulle
suuria eroja, ja joitakin asioita
jotka tekevät Python eri ja erityinen ja hyödyllisiä,
mutta en aio mennä mitä ohjelmointikieli on
ja miten kirjoittaa ohjelmia.
Tämä seminaari opettaa voit kirjoittaa Python-ohjelmia
jos olet yksi niistä harvoista ryhmistä.
Jälleen me tarkastelemme miten voisitte toteuttaa psets--
että pitäisi olla 1-6 Python-- ja antaa viitteitä
virallisten asiakirjojen myöhempää käyttöä varten.
Toinen asia, joka on tärkeä miten tämä puhe on osoitettu,
tämä video on verkossa, kohteliaisuus CS50,
joten sinun ei pitäisi tuntea sinun täytyy tehdä muistiinpanoja.
Voit aina palata ja katsoa sitä myöhemmin viitteenä.
Lisäksi diat juuri nyt saatavilla
tällä sivustolla, joka olisi ottaa teet Google asiak.
Se on hieman lyhennetty versio mitä olen näytetään näytöllä.
>> Yksi huolellinen varoitus ennen me hypätä, Python 3
on erilainen kieli Python 2.
Ne näyttävät paljon samaa; on hyvin vähäisiä teknisiä eroja
joka aiheuttaa ohjelmat kirjoitettu Python 2
ei voida suorittaa Python 3 ympäristölle.
>> CS50 Laitteen mukana Python, oletuksena se käyttää Python 2.
Voit tarkistaa tämän kirjoittamalla komentorivi
python Version, joka olisi lähtö 2.7.6 nykyisen laitteen.
Kokeilla Python 3, joka ei työskentelevät laitteen,
jos Python oletuksena 2.X.Y, joko laitteen tai omalla koneita.
Vaihda Python 3 tahansa tässä puhetta että kirjoitan Python.
Jos laite on käynnissä 2 oletuksena, tyyppi
Python 3 voidakseen itse seurata pitkin ja toteuttaa näitä asioita.
>> Lisäksi minä kohta sinua virallisissa resurssit nyt.
docs.python.org/3-- huolellinen että se on 3 eikä 2--
on hyödyllinen viittauksia.
Opetusohjelma vie sinut läpi paljon samoja asioita
että teen nyt, paitsi tekstimuodossa.
Viittaus on käyttökelpoinen Viite kielen,
ja standardin kirjasto antaa sinulle joitakin laajennuksia
lisätoiminnoilla.
>> Joten ensimmäinen Python ohjelma.
Vasemmalla meillä on vakio C, oikealla, meillä on Python.
Olet ehkä tunnustettu Tämän ongelman, se on
yksi ensimmäinen ongelma setit CS50, ja nämä
ratkaisemiseksi käyttäen samaa liuosta.
Nyt, siitä syystä, että olemme tarkastelee näitä vierekkäin
on niin voimme tarkastella syntaktinen eroja.
Yksi norsuja huoneessa että olet ehkä huomannut oikeus
suoralta kädeltä, että Python ei ole päätehtävä kiertyy koodi.
Joten C, kirjoitat joukko tiedostoja, liittää ne yhteen,
ja ohjelma alkaa täytäntöönpanosta Tämän asia sanottu int main.
>> Python, voit kirjoittaa -tiedoston, suorittaa tiedoston,
ohjelma alkaa täytäntöönpanosta yläreunassa tiedoston.
Joten se tulee aloittaa yläreunassa tiedosto
mene alas kunnes se löytää jotain muuta.
Jos se toteaa, funktion määritelmää, se ei oikeastaan ​​suorittaa että koodia,
se yksinkertaisesti määritellä toiminnon.
Mutta täällä, kun ensimmäinen Ohjelma on n on 10,
ensimmäinen asia, että tämä ohjelma tekee on ottaa tämä arvo 10
ja aseta se muuttuja nimeltä n.
>> Puhuminen että linja, yksi muut things-- sorry-- tämän
tarkoittaa, että C-ohjelmia, voit kirjoittaa ne,
voit tehdä ne, jotka vedota jotkut kalahtaa komentoja,
ja sitten voit ajaa tuloksena executable.
Python ohjelmia, suoritat teksti file-- tämä mario.py pitää
olla tämän tiedoston, että olen juuri osoitti sinä-- sinun ajelu että tiedosto
ja voit suorittaa, ja sen sisältöä
toteutetaan vuoteen Python-tulkki.
Voit tehdä tämän sinun IDE.
>> Joten jos minulla Hei tiedoston, joka yksinkertaisesti on tämä sisältö.
Tämä on todella Python 2, ei Python 3, joten älä
murehtia syntaksi nyt.
Mutta minä ajaa Python puolesta hello.py, ja se toimii.
>> Toinen tapa, että voin käyttää Python että En käsitellä niinkään tämä puhe,
on jos vain kirjoittaa Python, se putoaa minut ympäristö, jossa
Voin ruokkia sitä Python rivi riviltä.
Joten tässä, jos en kirjoita Tulosta tilaa "Hello, world".
Tyyppi kirjoita.
Se sylkeä minulle, että takaisin tulokset että yksittäiset linja välittömästi.
>> Tämä on voi olla hyötyä.
Tässä puhua Teen asioita dioja.
Ja niin voit seurata pitkin joko täällä tai kirjoittamalla
varsinaiset tiedostot ja sitten täytäntöönpanosta ne.
>> Mutta, menee takaisin tähän koodi, toinen asia
että saatat olla noticed-- hyvin, siellä
kaksi asiaa, jotka saatat huomaat nämä lohkot.
Ensimmäinen, pikemminkin arkisempi, että Python ei ole perään puolipiste.
>> Puolipisteillä ovat valinnaisia ​​kaikkialla ja vaaraton kaikkialla.
Voit lisätä niitä.
Se voi tehdä ihmiset, jotka kirjoittavat Python for elävä hihittää sinua
selän taakse, koska ne eivät ole tarpeen.
He usein merkki pidetään yli C. suunnittelijat kieli
tuntuu, että se on selkeämpi tällä tavalla ja että se ei ole tarpeen ilmoittaa
joka kerta lopetat linja.
>> Toinen outo asia tässä n se ei ole tyyppiä liitteenä.
Yksi taika kappaletta Python-- ja aion kutsua sitä taikaa,
mutta on hyvin teknisistä syistä miksi se
works-- yksi taika kappaletta Python
on, että muuttujat voidaan laajentaa tai kutistua sisältämään mitä tietoja
tyypit mitä haluaisi niitä.
>> Joten tämä on 10.
Jos myöhemmin alas minä määrätty tähän n 0.5, se veisi että 0.5.
Ei ole väliä, että se on int täällä ja kellua siellä, mitään, joka käyttää tätä n
on, enemmän tai vähemmän, voi säksättää pitkin jos se saa jompaakumpaa näistä.
Ellei siellä on hyvin todellinen miksi se ei voi käyttää tietoja
kirjoita, että n on tällä hetkellä, jolloin se saat
kiilata ja heittää virheen, ja tuollaiset asiat.
>> Mutta täällä, Python ei oikeastaan ​​välitä, mitä
se on, että aion pysyä tässä lause, kuten, haluat tämä asia?
Tämä asia, että?
Joo, se on sellainen asia.
Minä kiinni sen loppuun.
Se tulee olemaan ongelma myöhemmin, jos joku, joka haluaa käyttää tätä varten
ei voi käsitellä sitä.
Tämä on yksi tärkeimmistä eroja Python ja C
että on helppo kirjoittaa hyvin suuri C ohjelmia
ja helpottaa kirjoittaa hyvin pieni Python ohjelma.
>> Syntaksille ei ole kovin erilainen mitä se tekee.
Se on hieman erilainen miten se ilmaistaan.
Joten tämä on hyvin, mitä kutsutaan Pythonic, tapa kirjoittaa se.
riville kantaman (n), tämä on erilaisia ​​numeroita 0 n,
inclusive pohjassa ja yksinomainen päällä.
Joten on 0-n-1, joka on mitä C-koodia tekee,
paitsi se on paljon helpompaa katsomaan ehkä.
>> Kyseisen lohkon on ei kuittaantuu henkselit,
sen sijaan se on asetettu pois tämän sisennys.
Joten kaikki nämä linjat ovat neljä tilat yli oikealle,
tai kuten siitä elefantti leveys.
Ja ne ovat niitä, jotka ovat aiotaan teloitettiin tätä.
Jos minä sotkea sisennys tästä ja minä
push että Tulosta Takaisin alkuperäinen sisennys,
että Tulosta jättää silmukka.
Toisin kuin C, missä täällä olen itse täytyy siirtää suljetun ahdin noin.
>> Tämä tarkoittaa, että et saa virheitä että hyppää ulos sinua, koska olet
laittaa ahdin väärässä paikassa.
Se ei tarkoita, että saat virheitä että hyppää ulos sinua, koska olet
sisennetty linja väärä.
Joten se tekee painumia erittäin varovainen.
Toivottavasti olitte Super varovainen sisennys muutenkin,
joten tämä ei ole, että paljon enemmän taakka.
>> Mutta perussääntö Python, ja meillä on pari näitä
että käymme läpi läpi aikana puhua,
on kokeilla luonnollinen syntaksin ennen näköinen mitään ylös.
Joten tämä syntaksi, sillä tämän numeron välillä,
on hyvin erottuva tyylinsä.
Paljon asioita Python näemme ottamisen muodossa.
>> Joten jos keksitte uusi objekti, että olet
Sinun pitäisi pystyä kerrata tänä, tässä muodossa,
osoittautuu se luultavasti tukee tätä muotoa.
Emme aio mennä Super syvälle tekniset syyt, miksi se on totta.
>> Mutta se on hyödyllinen intuitio on kun olet lähestymässä Python-ohjelmia,
että tämä asia on vain menossa töihin.
Kokeile.
Boot ylös komentoriviltä Tulkki, katso jos se toimii,
eteenpäin asioita, ennen kuin edes tarvitse avata Googlen ja sanoa,
mitä syntaksi tässä juttu?
Paljon Python voisit löytää vain kokeilemalla.
>> Tämä jos on vieläkin samanlainen C sitten Fors ovat.
Huomaa, että ei ole suluissa.
Suluissa olevat luvut ovat, jälleen, harmittomia mutta tarpeeton.
On kaksoispiste lopussa kuten silmukoita,
ja jälleen, suhteellinen lohkot ovat rikkonainen sijaan kuittaantuu olkaimet.
Tämä muu on alkuperäinen taso sisennys,
ja sen kyseisen lohkon sisennetty uudelleen.
Ne työtä aivan kuten he tekevät C.
>> Tämä on itse asiassa hyvin paljon samaa.
Jälleen tulostaa menettää yksi merkki pois printf Ohitat jousia.
On käynyt ilmi jouset voidaan joko merkitty
by puolilainausmerkkejä tai lainausmerkkeihin.
Ei ole eroa, paitsi että sisällä
ja puolilainausmerkkejä voit käyttää lainausmerkkeihin kanssa luopua,
sen sijaan, että paeta niitä kaikkia.
Ja sisällä lainausmerkkeihin, voit voi käyttää puolilainausmerkkejä kanssa luopua
ilman paeta niitä.
Jos halusi sekoittaa ne, voit varmasti
etsiä verkossa, miten se tehdään.
>> Huomaat, että tänne, Olen läpäissyt lopussa = tämä asia.
Tämä on esimerkki valinnainen argumentti, joka on yksi niistä asioista
että Python tukee tätä käy varsin hyödyllistä.
Joten tulosta on itse asiassa paljon perustelut, jotka ovat yleensä
asetettu niiden oletus arvo, mutta tässä olen
päätti ohittaa yksi nimeltään pää.
Syystä, että joudun ohittaa sen tyhjällä merkkijono
on, että tulostaa Python, jonka Oletuksena tulostaa uusi rivi
jälkeen asia, että kerroit sen.
>> Joten tämä hash on todella menossa tulostaa hash uuden linjan.
Ja jos en halua hash tulostaa uusi rivi jälkeen sitä, niin minun on sanottava
älä tulostaa yhden.
Mutta, mutta niin, yksi asia, että tämä ohjelma puuttuu, että yksi on on
ovat huipulla.
Tulosta leivotaan Python joten periaatteessa että ei ole ylä- tai moduuli
että sinun täytyy ovat, mutta jos halusi
sisällyttää muita asioita in Python script,
Haluaisin tehdä sen hyvin samankaltainen format-- sanat ovat vain hieman erilaisia.
>> Mainitsin, että me ei tarvitse tärkein täällä,
koska Python alkaa täytäntöönpanosta huipulla.
Jos halusin kääriä tämä toiminto, I
tekisin niin kuin this-- I sanoisi def funktion nimi,
mahdolliset väitteet menevät tänne ja me nähdä joitakin niistä myöhemmin, paksusuoli,
ja sitten taas, tämä Koko lähti lohko
on mitä on toiminnassa estää kyseisen toiminnon.
Joten tämä on määritelmä toiminnon.
Ja siellä on ilmoitus, sitten alas täällä, voin vain soittaa toiminto.
Ja vielä, ohjelma tulkki, alkaen huipulla,
näkevät tämän on määritelmä.
Se ei suorita tätä ennen kuin se tänne, ja sitten se on kuin, oh
nyt olet kutsui sitä, minä kai pitäisi suorittaa sen.
>> Asia, joka on hyvin yleinen nähdä Python tiedostoja,
erityisesti Python tiedostot ovat julkistettuja
ja kehittänyt by-- ja kehitetään ja säilytetään, on jotain tämän lomakkeen.
Tämä on basically-- niin, koska Python, aloitat huipulla
ja sitten voit suorittaa pohjaan, Minä jos Minulla oli Mario kutsutaan täällä,
sitten tahansa olen mukana tämän tiedoston toinen tiedosto, koska halusin käyttää
on Mario toiminto, että muut tiedosto olisi myös tämä kutsu Mario siihen.
Ja kun juoksin tiedoston, se soittaa Mario.
>> Joten on mahdollista, että minä vain Haluatko suorittaa tämän, jos olen todella
toteutetaan tässä tiedosto.
Ja niin voin kääri tämän muotokieli näin, jos sanon,
jos nimi tämän suorituksen ympäristö on tärkein,
sitten haluan tehdä näitä asioita.
Muuten joku muu voi use-- ovat minun function--
minun tiedosto, ja vain saada pääsy näihin toimintoihin
joutumatta käyttämään asiat että haluan toteuttaa tähän tiedostoon.
Tämä on jälleen valinnainen mutta hyvin yleinen.
>> Nämä asiat ovat entirely-- ovat täsmälleen sama välillä C ja Python,
varmasti 3.
Uskon 2, jako operaattori joskus antaa sinulle takaisin kelluu kun
te toimineet ints, ja joko halusit sitä tai et ole.
Mutta plus, miinus, ja ajat toimivat täsmälleen kuten odottaa saattaa,
paitsi yli hieman enemmän tyyppejä.
Joten voit moninkertaistaa lautoissa ints, ja tuollaiset asiat.
>> setti toimii täsmälleen sama.
Voit käyttää kahta yhtäsuuruusmerkit.
inequals-- suurempi kuin, vähemmän kuin, tämänkaltaisissa things--
tarkoittavat, että olet perehtynyt niihin.
>> Jossa C käyttää näiden toimijoiden, Python käyttää hieman enemmän Englanti
luettavissa niistä.
Joten sen sijaan kaksi,-merkkejä, voit kirjaimellisesti kirjoita sana "ja", "tai"
tai ei."
Kuten teidän if-- omassa ehtolauseet,
näimme aiemmin, että tämä syntaksi C vastaa tämän syntaksin Python.
Ja siellä ei ole paljon erilaisia siellä, lukuun ottamatta hieman
välimerkkejä noin puolet.
Jälleen jossa C olisi muualla jos, Python käyttää Elif,
mutta nämä ovat enimmäkseen pinnankorkeus muuttuu.
>> Iteraatio näin on usein kirjoitettu tässä muotokieli Python.
Voit valmistaa tällaista juttu kun silmukka ulkopuolella
jos halusi, mutta sinä todellakaan ei tarvitse.
Ja vielä, jos halusi tulostaa elementtejä array
saatat tehdä sen tällä tavalla.
Yksi hauskoja asioita noin Python kuitenkin,
on, että sinun ei tarvitse käyttää tätä paradigman,
ja voit käyttää hieman enemmän tyylikäs yksi.
Voit sanoa kaupungissa kuuta.
>> Joten sen sijaan menee täällä ja käynnissä yli indeksien,
ja vetämällä ulos yksittäisiä osia,
kerrot varten todella vain ajaa yli elementtejä itse.
Ja sitten mitä tahansa teetkin sisälle voi toimia suoraan
niistä elementeistä, joka on aika hauskaa.
Ja me see-- käytämme että muotokieli uudelleen ja uudelleen
kun kuljemme läpi koodi.
>> Tämä on jälleen esimerkki jotain, että olen will
soittaa Python taika, vaikka on olemassa hyvin teknisistä syistä, miksi se toimii.
Ja on teknisiä asioita, täytyy olla totta noin array järjestyksessä
tämä toimisi kulissien takana.
Asia on, että useimpien joka voit odottaa tämä toimisi
on ollut tämä toteutettu sinua sisäänrakennettu kielellä.
>> Toinen asia, että olisi kiva jos tämä toimi kaikilla kielillä,
mutta on joitakin syitä, miksi se ei voi, tulosta tämä jono kertaa tämä määrä.
Osoittautuu Python, tämä ei juuri mitä haluat, joka on vain hauskaa,
ja tarkoittaa, että voimme todella vähentää ohjelman uudelleen mario.c.
Sen sijaan, iteroimalla paljon, voimme vain sanoa, haluan joitakin useita tiloja,
Haluan määrä hash, ja jotkut tiivisteiden lopussa.
Ja vielä, käytämme tätä muotoa.
>> Täällä olemme ohimennen muuttuja tällä tavalla.
Jälleen meidän ei tarvitse sanoa minkälainen muuttuja on,
ja ainoa kertaa me virheilmoituksia on suorituksen aikana.
Kun joku yrittää siirtää jotain,
se tulee tulla toiminto hienosti.
Jos me wedge täällä, koska tämä ei ole asia, että voit luoda vaihtelee yli,
Haen runtime error siellä, ja minun täytyy debug niin.
Mutta sillä välin, minulla ei ole olla hyvin varovainen, mitä
saa siirtää vuonna, niin kauan kuin varsinaisessa suorittamisen kaikki toimii hyvin siististi.
>> Voisin jopa tehdä tämän hieman puhtaampi
käyttäen tiettyä sisäänrakennettu toiminto jousille, mikä on oikein Perustele.
Tämä on vain hyödyllinen toiminto lojumaan kirjasto.
Se on asiakirjat jos mennä ja etsiä sitä.
Ja sanon, hyvin aion olla tämä merkkijono, jotkut määrä tiivisteitä,
ja haluaisin oikealle perustella it-- pad se ulos välilyönneillä olla tämä pituus.
>> Tämäkin on dokumentaatio, joka tuo us--
Minä todella napsauttaa these-- joka tuo meidät toinen sääntö
varten Python-- standardin kirjasto toiminto menetelmät ovat ystäviäsi.
Ja se on usein vaivan arvoista mennä etsimään Ihmettelen
jos siellä on asia, että juuri tekee tämän.
On todennäköisesti on.
Jos haluat pad ulos merkkijono, jos haluat
haluavat ottaa takaisin puolet merkkijono, jos haluat
haluavat etsiä merkkijono, jos haluat murskata pari asiaa
yhdessä merkkijono pilkuilla niiden välillä,
on standardin kirjasto toiminnot tämän tekemiseen.
>> Ja se tekee elämästä helpompaa, jos käytät niitä
sijasta tuloaan kaiken itse
viidessä riviä koodia täällä, viisi riviä koodia tässä.
Se todella alkaa lisätä jopa reaaliajassa.
>> Yksi mielenkiintoisia asioita siitä, miten tämä saa kutsutaan.
Huomaat, että on olemassa piste juttu.
Minulla on joitakin esine vasemmalla, ja sitten kutsuin piste toiminto.
Tämä on yksi paradigmojen että Python käyttää kiinnittämiseen menetelmiä esineitä.
Puhumme mitä tämä on hyvin lyhyesti lopussa,
mutta tietää, että voimme molemmat toimia asioita ottamalla että asia sanomalla piste
riippumatta, tai soittamalla toiminto, joka vie
että esine ja jotkut muut väitteet.
>> Joten nämä ovat molemmat tapoja, asiat tehdyksi Python.
Ja onko tietty toiminnallisuus toteutettu
tällä tyylillä tai tämä tyyli on jotain,
pitäisi etsiä kunnes saat roikkua joista jokin on todennäköisesti jakaa.
On enemmän tai vähemmän yhtenäisempi filosofia Python
että imevät enimmäkseen kirjoittamalla paljon se.
Jossain vaiheessa, mikä näistä jotain pannaan täytäntöön
tulee luonnollista.
Nyt se on vain jotain opit kun selvittää
jokaisen yksittäisen asia.
>> Joten standardin kirjasto toiminnot ovat ystäviäsi,
ja ne voit kirjoittaa asioista, jotka ottaa tämän paljon tilaa todella pian,
todella tyylikkäästi.
Ja tämä on todella luultavasti enemmän luettavia, sanoisin, kuin C-ohjelma
tuolla.
Puhumattakaan siitä, että on niin lyhyt mahtuu koko norsu
tilassa että olemme tallennettu.
>> Toinen asia, tämä on täytäntöönpano Mario se piste C, joka mielestäni
on lyhin voit saada sen.
Se ei ole get int, mutta se kova koodit arvo 10
Samalla tavoin, että tämä yksi ei.
Osoittautuu, että tämä yksi kelloja osoitteessa 84 merkkiä, kun taas Python on 64.
Ja tämä on äärettömän lisää luettavissa kuin tätä roskaa täällä.
Joten Python on tehokkaampaa avaruudessa.
Se on hieman vähemmän tehokas ajoissa, mutta ei paljon.
>> Luettelot ovat tärkeä asia Python.
Emme ole nähneet niitä, mutta ne toimivat aivan kuten taulukot tehdä C.
Joten tässä, voit ilmoittaa heille, voit siirtää ne asia.
Nyt neliöt pitää joukko näistä asioista.
Jälleen, emme ole ilmoitettu tyyppi, mutta jos me koskaan yrittää käyttää sitä,
mitään, että voit odottaa työskennellä erilaisia ​​kokonaislukuja
on menossa töihin joukko kokonaislukuja.
>> Tämä on asia, joka ehdottomasti ei voi
do C, koska muisti on niin kädet,
mutta on erittäin helppo tehdä Python.
Jos haluan array olla suurempi, voin liittää elementti se ja se on hieno.
>> Mitä tapahtuu kulissien takana?
Tulkki menee ulos ja saada joitakin muisti,
ja ehkä se saat vähän ylimääräistä muistia,
joten en ole niin minulla ei ole jotta RealLOC joka kerta.
Mutta kuinka paljon enemmän muistia se tarvitsee?
Tämä ei ole päätöksiä että sinun täytyy tehdä,
nämä ovat päätöksiä, jotka tulkki aikoo tehdä.
>> Tässä näemme alue voi ottaa kaksi argumenttia,
mutta se on silti olemaan kattava alkuun niin lisäämme 1 siellä.
Tämä on muotokieli, joka on vieläkin fiksu tapa kirjoittaa asioita, kuten tämä.
Sitä kutsutaan lista ymmärtämistä, ja tässä mitä sanomme
on Haluaisin laittaa I potenssiin jokaista arvo i tällä alueella.
Tämä asia oikealla voisi olla toinen array, ja tämä asia vasemmalla
olevan mitään tiettyä toimintaa joka veisi i muuttujana
ja antaa minulle joitakin tulos.
>> Mitä aion tehdä, on, Aion rakentaa
array, joka on kaikki nämä asiat kunkin arvo tällä alueella.
Ja tämä on erittäin tyylikäs, erittäin lyhyt, ja se on hyvin selvää, mitä se tarkoittaa.
Tämä on yksi things-- tämä on jälleen,
yksi of-- hyvin tunnusomaista syitä, että ihmiset, kuten Python.
Jos pidät ohjelmointi näin, niin Python
on kieli haluat ehkä oppia.
>> Ja vielä, on olemassa teknisiä syitä, miksi tämä toimii.
Mutta sikäli kuin olemme huolissaan, me enemmän tai vähemmän eivät välitä.
>> Joten jos haluat tulostaa luetteloita, joitakin samoja idiomien ovat hyödyllisiä.
I tällä alueella, voisimme indeksi läpi kaikki asiat
ja sitten tulostaa ne kaikki pois.
Ja näet len ​​täällä.
Jos olet koskaan halunnut saada pituus array, joka on
erittäin helppo Python, se on erittäin vaikea C.
Tämä tulostaa tarkalleen mitä voit odottaa sitä.
Voisimme myös, kuten olemme nähneet aiemmin, kerrata yli elementtejä array
suoraan, ja sitten vain puhua ne, sen sijaan, että indeksi
takaisin array joka kerta.
>> Ja tämä on asia, että voit tehdä.
Joten C, jos kysyt jotain kuten tämä, tulostaa sanoisi,
se joukko kokonaislukuja.
Se ei todellakaan ole jono, en voi tulostaa.
Python enemmän tai vähemmän ei välitä.
Se on kuin, on olemassa tapa, että olen voisi kääntää tämän sisään merkkijono?
Joo, minä teen sen.
Ja niin minä vain tulostaa että ulos.
Tämä tarkoittaa, että voit tehdä asioita like-- nämä
ovat useimmat kovat osat peli viidentoista, kirjallinen
hyvin lyhyesti Python.
>> Näet, että on olemassa vähän of-- täällä
Olen heittää kokonaisluvun merkkijono, ja minun täytyy tehdä, että käsin.
Ja aion lisätä sen toiseen merkkijono,
tai muuten Python saa sekoittaa.
Mutta onko kun olet lisäämällä merkkijono kokonaisluku,
olen Oletan saada kokonaisluku takaisin tai merkkijono takaisin?
Mutta jälleen kerran, jos vain soita str on asia,
ja se voisi mahdollisesti maailma muunnetaan merkkijono,
se luultavasti muunnetaan merkkijono.
>> Täällä näemme käyttö sisäkkäisiä lista ymmärtäminen
vasemmalla, jotkut indeksointi, joka on juuri niin kuin haluat käyttää sitä,
ja jotkut tulostamalla asioita.
Jälleen olemme määritelty joitakin toiminnot ja soitamme ne alas
Tärkeimpien kun me itse saada tiedosto.
paluu toimii täsmälleen kuten haluat odottaa työskentelemästä C. Etsi,
voimme perustaa asioita, kuten this-- tässä lista ymmärtäminen
siellä tehtävä muuttujaan, ja voimme todella tehdä sen vieläkin helpompaa.
Meidän ei tarvitse kirjoittaa haun, koska sisäänrakennettu kieltä
on, jos tämä asia on tässä array.
Return true, muuten return false.
Niin, että kokonaisuudessaan löytää.
>> Kokonaisuudessaan lajitella kuuluu soittaa lajitella,
jotka is-- on toteutuksia Tämän rakennettu tietyt C-kirjastoja.
Jos haluat tämän tavallaan taaksepäin, te
voidaan ohittaa valinnainen argumentti päinvastaisessa kanssa totta.
Ja jos haluat lajitella yli jouset, joka on sisäänrakennettu samoin.
>> Joten tämä ei ole sanoa nämä ovat asioita, jotka sinun täytyy tehdä joka päivä,
mutta ajatus on, että tämä on filosofia Python,
että kaikki nämä asiat, jotka olisit tavallaan haluavat tehdä on sisäänrakennettu.
Ja useimmat tavalliset toiminnot, niin lajitella, pituus, mitä tahansa,
tukea useimmat loogisesti järkevä panos.
Soitat len ​​siitä array samalla tavalla soittaa pit narussa.
Voit multiply-- voit lajitella jouset samalla tavalla lajitella taulukot.
>> Useimmat tavalliset toiminnot että ihmiset rakentaa,
ja useimmat kolmannen osapuolen kirjastot että ihmiset
rakentaa, koska he jäljittelemällä suunnittelu standardin kirjasto,
voidaan kutsua kaiken, että olet kuten, miksi ei tämä vain toimi,
C. Enemmän tai vähemmän, se toimii Python
koska ihmiset työskentelevät takana kuvan mitä asia on ja sitten toimia
asianmukaisesti sitä.
Joten jälleen, tekninen tausta, mutta se helpottaa elämäämme kuin ohjelmoijat.
>> Joten tässä on tiedosto I / O. tiedosto I / O on paljon pikku asioita, jotka tekevät siitä monimutkaista,
ja niin on resursseja verkossa, mutta pähkinänkuoressa,
soitat auki tiedosto nimetä tietyn tyypin.
Niin että on lukenut, lue ja kirjoittaa, kirjoittaa tai liittää.
Voit lukea tietty määrä merkkiä ulos ja tulostat ne,
saat Hei!
Tarkoitan, kuten tämä tiedosto oli Hei!
Siinä soittaa lukea, ja mitä saat takaisin
on merkkijono, joka on kaikki loput array,
tai kaikki loput tiedoston.
Jos soitat lukea uudelleen, olet lopussa tiedoston,
ja niin et saa mitään ja niin voit sulkea.
Uudelleen, tämä on .close sijaan lähellä tiedosto, koska se olisi C.
Tämä on enemmän tai vähemmän, koska f on asia, ja haluat f sulkea.
Mutta perus tiedosto I / O ei ole erityisen monimutkainen.
Jälleen, jos haluat avata tiedoston, jos haluat lukea tietyn linjan,
voit saada pois erityisesti line-- siellä Takkasydämet siitä.
Jos haluat kirjoittaa asia, voit kirjoittaa tähän.
Jos haluat kirjoittaa yksittäisiä puree, voit kirjoittaa ne.
Ja jos haluat kerrata yli riviä tiedoston
yksilöllisesti, kuten teimme kappaleena muutama viikko sitten, voit tehdä sen.
Jälleen useimmat esineet että haluat haluavat pystyä kerrata yli
tuki iteroimalla heitä.
Vuonna pytonit, tiedosto on ehkä asia, että Haluaisin kerrata yli rivi riviltä.
Jos se oli sanakirja sanoja ja olin
yrittää saada ne yksittäisten sanansa, niin, tässä silmukka,
linja se tulee olemaan jokaisen sanan vuorollaan ja tämän
aiotaan suorittaa jokaiselle riville tiedoston loppuun tiedoston.
Ja vielä, jos minä tulostaa kunkin viiva, linjat tulevat uudet linjat,
joten olen asettamalla loppuun Takaisin asia näin.
Sitten saisin sisältö minun arkistoida.
>> Toinen asia, joka toimii Jollain tavalla kuten luettelot, ja tietyllä tavalla
jotain olennaisesti tehokkaampia,
ovat sanakirjoja, jotka ovat todella viileä käyttää, mutta ovat pohjimmiltaan hash
taulukot valepuvussa.
Voit luoda sellaisen täsmälleen kaksi merkkiä, joka on mahtava
jos yrittänyt toteuttaa tiiviste ongelmaasi asettaa,
Tiedätkö paljon tuskaa, joka voi olla.
Mutta ihmiset ovat tehneet se, ja tehnyt sen niin hyvin,
että sinun ei tarvitse välitä siitä enää.
>> Sitten voit lisätä yksittäisiä asioita.
Hash tables-- tai sanakirjoja eivät erityisemmin
välitä mitä olet tallentamalla niihin.
Joten jos jotkut merkinnät ovat numeroita, ja jotkut merkinnät ovat listoja,
jos jotkin merkinnät ovat muita sanakirjoja, ja jotkut merkinnät ovat jouset,
Python ei paljon hoitoa.
>> Uudelleen, jos menet sitä odottaa merkkijono ja mitä saat takaisin
on taulukko, joka on sinun ongelmasi.
Ja ehkä se on vika kuka mielestä se oli laittaa asiat
sanakirjassa, ehkä se olit sinä.
Jos se oli joku muuta, toivottavasti ne olivat
hyvin käyttäytyviä mitä aikoi sanakirjassa
ja ei jättänyt mitään sudenkuoppia voit jakaa.
>> Mutta standardi toiminnot antaa sinulle takaisin hyvätapainen asioita.
Joten he sanovat tämä palaa takaisin sanakirja merkkijonojen,
sitten kaikki olet menossa päästä pois on merkkijono.
Jos teet joitakin tämän ja se laukeaa sinut, hyvin, että voisi olla sinulle.
Python varmasti antaa sinulle tarpeeksi köysi roikkua itse, jos haluat.
Nyt voimme tulostaa yksittäisiä osia tämän ja tämä tuotto
mitä voit odottaa.
Juuri mitä voit odottaa, luulisin, on lause, joka käytän paljon,
mutta se on enemmän tai vähemmän kuinka Python toimii.
Jos pyydät asia, joka ei ole se, Python heittää ulos virhe
ja se lopettaa sinut ulos mitä ohjelmaa olit.
Se tulee todella tulostaa enemmän tietoa kuin, että
se tulee kohta sinä-- se tulee lisätä rivi, ja niin.
>> Ja taas, ehkä haluamme iteroida yli sanakirjoja
ja löytää kaikki mitä siinä on.
Täällä me iteroimalla yli kaksi asiaa samanaikaisesti.
Ja niin me teemme sen avaimella, arvo, mutta sitten tulostaa kaikki nämä.
>> Ja jos halusimme cast-- jos me todella juoksi tämän,
meillä olisi joitakin ongelmia, koska on-- kun menimme sisään David,
se ei voinut add-- jos emme heittää merkkijono ensimmäinen,
emme voineet lisätä, että array merkkijonojen päälle merkkijono.
Mutta jos me heittää string, saamme jotain
kuten tämä, joka on ehkä mitä haluaisimme lukea.
>> Ja tämä on speller.
Me vain lukea asioita.
Voimme siis lukea yksittäisiä sanoja kuten linjat.
Me katkaista viimeisen asia, joten paksusuolen miinus 1
chomps pois viimeinen asia, että we-- viimeisen merkin merkkijono.
Me sanomme.
OK, jokainen näistä saa asetettiin tähän sanakirjaan,
kartoitus arvoon 1.
Emme erityisen välitä että yksi,
mutta se on vain siellä sanoa, no, tämä asia laitan sanakirjassa.
Koska myöhemmin mitä olemme aikoo tehdä on olemme
aikoo sanoa, hyvin, jos se on sanakirjassa lainkaan.
>> Tämäkin tarkista jäsenyys on käyttötilaselvityksiä
käyttämällä täysin eri algoritmi kuin se tulee luetteloon,
mutta me kutsumme sitä samalla tavalla, joka on joitakin että Python sokeripinnoitteesta
asiat niin, että ne on helpompi käyttää.
Ja vielä, olemme nähneet asioita, kuten tämä ennen.
Tämä on pohjimmiltaan löytää, tai se on täsmälleen samaa syntaksia
kuten löytää, mutta toimii yli täysin erilainen rakenne.
Ja emme ole erityisen välitä.
Joten ne ovat asioita, joita pyydettiin toteuttaa speller.
Tällä vauhdilla, aiomme saada enemmän tai vähemmän kaikki psets tehty.
>> Yleisö: Jotta pohjimmiltaan vain tulee takaisin
sillä väärin kirjoitettu, jos se ei vastaavat jotain sanakirjassa?
ROSS RHEINGANS-YOO: Kyllä, kyllä.
Ja niin, tämä on mukauttaminen Harjoitus
joka pyytää sinua tekemään juuri näin.
>> Yleisö: Miksi linja miinus 1 siellä?
ROSS RHEINGANS-YOO: Niin kun olet iteroimalla
yli tiedosto pyytää viivoilla, linjat
mukana uuden rivin merkki lopussa it-- miinus 1
on vain tehdä ostoksia niitä pois.
Ja tämä on erityisen joustava tapa indeksoida asioihin.
Joten jos sinulla on merkkijono, ja haluat, hyvin olen
aikoo aloittaa merkin kolme ja aion mennä loppuun.
3 kaksoispiste tekee sen puolestasi.
Jos olet kuten, haluan aloittaa alkaa ja mennä viime miinus 1
merkki, paksusuolen miinus 1.
Ja jos halusi mennä kolmannesta miinus ensimmäinen,
sitten sanoisit 3 miinus 1.
>> Lisäksi, jos haluat indeksoida asioihin laskien takaisin,
juuri indeksi sisään miinus numerot.
Ja koska, jossa C räjähtäisi tai ehkä
syötteen muita muistia ei ollut pääsy, kuulla voit sanoa miinus 1
tarkoitetaan viimeistä mutta 1 merkin merkkijono.
>> Moduulit ovat version-- ovat analogit kirjastoille C
ja ovat hyödyllisiä paljon asioita.
Paljon asioita olisit haluavat tehdä Python,
lisäksi yksinkertainen sellaisten muuttujien käsittelyä,
haluat kytkeytyä Suuremmat kirjastot suurempia
rajapinnat ja lisää valmiuksia vuorovaikutuksessa
muiden osien kanssa maailmassa.
sys on yksi niistä kanssa joukko työkaluja
jotka ovat hyödyllisiä vuorovaikutuksessa järjestelmän itse
ja tuoda sen kuin tuonti sys.
>> On enemmän asiakirjoja että, mikä voisi mennä täällä,
tai voit löytää Googlessa Google-hakuja Python sys.
Kirjoitat syöttää.
Ensimmäinen linkki tulee olemaan asiakirjat Python 2,
toinen linkki on menossa olla asiakirjat Python 3.
>> Ja jos me kirjoitti ulos tiedosto, joka näytti kuten this-- Jos erityisesti, olemme
katsomalla toimivat komentoriviargumentteja,
kuten opimme tekemään hyvin varhain tässä luokassa.
Tämä ei ole vaikeaa. Voit saada pois argv,
joka on yksi niistä asioista joka on toteutettu sys.
Se ei ole sisäänrakennettuna peruspaketti, mutta jälleen, te
voi laajentaa sitä tuomalla että toiminnallisuuden sys.
Sinulle se tarkoittaa sys.
aivan sama.
Täällä on argv.
Ei oikeastaan ​​mitään argc vuonna sys, koska olet
saada sen niin helposti soittamalla len.
Sitten tulostaa että ulos, niin me sai pitkän terminaaliimme echo-args.py.
Saamme takaisin array, joka on tämä ensimmäinen väite.
Uudelleen, tämä on argv 0, joka on nimeksi asia, joka sai maksun.
Jos me kutsui sitä ylimääräisiä argumentteja, olimme saada näitä takaisin.
Tämä on yksi tapa saada komentoriviargumentteja.
Jos haluat liput josta käännytään erityisesti asioita tai ohitus
Oletussignaalit, argparse on ystäväsi.
Ja taas huomaat, että online- klo python argparse Google.
>> On olemassa pari apuohjelma moduulit, jotka löydät itsesi käyttäen
ja uudelleen, jos vietät tahansa Tämän kielen tuoda jsons
lukemiseen ja ulos json tiedostoja, ei kovin monimutkainen.
Voit avata tiedoston, soitit json.load kyseisestä tiedostosta ja saat takaisin asia.
Mikä tuo on?
Se on json esine.
Jossa että JSON on array, Python on taulukot.
Jos kyseinen json on assosiatiiviset taulukot, Pythonin
sanakirjoja, jouset, ja numerot, ja niin edelleen.
Haluat dumpata että ulos, te avata uuden tiedoston, soitat kaatopaikka,
ja kuormat ja kaatopaikat mennä sisään ja ulos jouset.
>> Samoin, suolakurkku saa nimeltään periaatteessa samalla käyttöliittymän.
Se on hieman enemmän hyötyä, jos jätät Python objekteja.
Joten jos olet koskaan halunnut säästää versio nykyisestä tilasta
muuttujan tulevalle ajaa oman ohjelman,
suolakurkku on Pythonin kirjasto näin.
>> Jos sinulla on eräänlainen muuttuja, joka voidaan kirjoittaa ulos
samanlaisissa sanat ja merkit ja bytes-- näin sanakirja,
voisimme kirjoittaa, me voisi kirjoittaa sen alas
kuten JSON esine, joka oli kirjaimellisesti nämä merkit.
Ja sitten se olisi erittäin helppoa ihminen avaa se up-- avata
ja lukea se.
Jos emme erityisen välitä ihmisten lukea sitä,
voisimme paketti vieläkin tehokkaammin muotoihin, jotka voidaan myöhemmin purkaa
tai jotka voisivat myöhemmin liioiteltu.
Ja tämä säästää 80% tilaa, että esineet pitää
ryhtyä, jos olet kirjoittanut ne pois longhand.
>> Soitat suolakurkku paljon sama way-- kaatopaikka, kuormitus,
ja sitten saat asiat takaisin.
Joten jos kirjoitat hyvin lyhyt Python ohjelmat
haluavat säästää valtion, ja sitten lukea ne takaisin myöhemmin, asioita, kuten tämä
ovat ystäviäsi.
Että sinulla voisi hyvin helposti dumpata niitä json.
Useimmat Python objekteja voi dumpata ulos json
onko siellä mitään toivoa, että rakenteellisesti he voisivat olla edustettuna tällä tavoin.
>> Nämä ovat vain kärki jäävuoren moduulit, jotka ovat hyödyllisiä.
Joten sys, os, moniprosessointi, ovat eräänlainen perus työhevosille asioita
meidän on vuorovaikutuksessa tiedostojärjestelmä os.,
kuten os.isfile, os.isdirectory, os.makefile, nämä ovat ystäviäsi.
Jos haluat vuorovaikutuksessa tietyn tiedostotyypin,
JSON, suolakurkku, CSV.
Jos haluat vuorovaikutuksessa web sivuja, urllib saada http
sivua. bs4-- BeautifulSoup-- se on ihana jäsennin html.
Voit suorittaa sen html ja sinä saat tämän sisäkkäisiä array esine nyt,
jonka voit kulkea yli lookin, jossa kuten vain etsivät
jos on, vuonna, joka on fantastinen.
>> On joukko paketit running--
tekemiseen erityisesti Mathy asioita.
Joten jos haluat kertoa, kääntää, muunnosmatriisien,
numpy käyttävät ihmiset kaikki ympäri maailmaa, jotka.
scipy on vielä enemmän hyötyä työkalut tähän suuntaan.
sklearn-- koneoppiminen, luonnollisen kielen käsittely,
super hyödyllinen kamaa, saa toteutetaan Python koko ajan.
>> Ja vielä, kestää hieman kauemmin write-- anteeksi,
kestää hieman kauemmin ajaa, mutta siitä syystä, että todellinen insinöörit pyrkivät
käyttö Python on koska sinulla on taipumus olla estetty kirjoitat koodin, melko
kuin tietokoneen käynnissä koodi.
Joten jos aiot kirjoittaa ohjelma, joka paljon muita ihmisiä
aiot käyttää ikuisesti, kuten Linux, sinä
voisi kirjoittaa se C. Jos olit menossa kirjoittaa laskenta moottori,
saatat kirjoittaa Python jos tarvitaan muuttaa sitä joka pari kuukautta.
Jotkut ihmiset kirjoitan sen C koska ne ovat niin.
>> Joten olemme nähneet tuonti sys keinona saada asioita
saada moduuli ohjelmaan.
Voit myös tuoda sitä lempinimi, jos haluat.
Jälleen multiprocessing on tuskaa tyyppi ulos joka kerta, niin tuonti kuin mp
ja sitten milloin käyttää sitä ohjelmaa,
sanot mp.process, tai mitä olet.
Jos haluat tuonti vain yksi asia,
joten urllib on asia sanottu pyynnöstä, joten voit vain tuoda sen.
Myöhemmin, et vedota sitä urllib.request, mutta yhtä pyyntö
itsekseen.
>> Ja voit tuoda kaikki alkaen moduuli, jos haluat.
Tämä on joskus ole hyvä idea-- tämä yleensä ole hyvä idea, todella.
Koska olet very-- koska jos jotain kyseisessä laitteessa on nimi, jota
halusi käyttää muualla oman ohjelman, et voi.
>> Ja se ei ole aina ilmeinen että näin on.
Jotta varmistaa, että mitä teit oli turvallinen,
sinun täytyy avata moduuli ja katso kaikki
nimet, jotka päätyvät there-- kaikki toiminnot,
kaikki muuttujat elävät, että moduuli,
koska olet tuo kaikki ne paikalliseen nimiavaruuteen.
>> Joten ihmiset eivät tätä.
Se on yleensä suositeltavaa että et tee tätä.
Mutta ihmiset tehdä tämän kaiken aikaa, koska he
laiska ja halua kirjoittaa ulos sp.
mitään, koskaan.
>> Kaikki tämä puhe moduulit tuo minulle noin lyhyt puhua
miten voit suunnitella ohjelmia Python.
Ensimmäinen vaihe on tarkistaa, onko joku muu on jo tehnyt asia,
tai tehnyt 90% asia.
Mahdollisuudet ovat ne todennäköisesti, ja sinä pitäisi mennä saada asia ja ajelu että.
Tai kirjoittaa kääre ympärille mukauttaa sitä tarkoitus.
Se on vasta sen jälkeen on epäonnistui että olisit sitten
mennä ja write-- alkaa ajatella miten voit laittaa tämä asia yhdessä.
Siellä on paljon tavaraa siellä, ja se on
yksi käyttökelpoinen asioita Python.
Kuten kieli on tyylikäs, kieli
on helppokäyttöinen, mutta myös siksi, se on niin tyylikäs ja helppokäyttöinen,
ihmiset ovat käyttäneet sitä pitkään ja siellä on paljon tavaraa
siellä, että voit valjastaa omaan käyttöön.
>> Niin viime sääntö Python on, joku muu on jo luultavasti kirjoittanut
moduuli, että joku muu on jo
luultavasti kirjoitettu kirjaston siitä.
Ennen kuin yrität tehdä mitään, katso onko se pantu täytäntöön.
Se ei ole niin kova.
Kaikki moduulit, jotka laitoin ylös ennen, ehkä yhtä poikkeusta lukuun ottamatta
esiasennetut jokaisessa standardi Python asennus.
Ja siten myös puhelun tuoda mitä tahansa, voit
on kaikki tämä toiminnallisuus käden ulottuvilla.
>> Alkaa kääriä tämä puhua, on olemassa muutamia asioita
että olen jättänyt kuin mustat laatikot ja tavallaan tasapaksuja,
ja siellä on muutama valkoinen piilee että olen kertoi että vuoksi rehellisyys,
I will vähintään pisteeseen täällä, vaikka minä en
mennä Super syvälle ne kaikki ja niiden teknisiä selityksiä.
>> Paljon asioita että Minä olen kutsunut taikaa
on mitä muut ihmiset kutsuisivat olio-ohjelmoinnin.
Joten siellä on paljon things-- joten muuttujat ovat hyvin usein ole
yksinkertainen tavua istuu, muisti, mutta ovat erittäin monimutkaisia
esineet, jotka ovat sisäinen valtion noin toiminnot ja paljon
piilotettu muuttujia, paljon piilotettu toiminnallisuus, joka
avulla voit muuttaa ne jouset, jonka avulla voit kerrata niiden yli.
Ja jos olet writing-- ja siitä syystä, että ne
kaiken tämän rikas toiminnallisuus on koska people--
arkkitehdit language-- ovat menneet
kautta ja jokaista vakio esine, laittaa toiminnallisuus
sanoa tämä on, miten tämä on miten tämä tulee toimimaan
jos joku haluaa iteroida sen yli.
>> Joten kaikki, että joku pitää mahdollisesti haluavat kerrata yli,
on logiikka kirjoitettu manuaalisesti miten olet
pitäisi kerrata yli että esine.
Kaikki, mitä mahdollisesti haluta kaadetaan merkkijono on logiikka kirjoitettu.
Tämä on toiminto, että soitat jos haluat upottaa tämän ulos merkkijono.
Siksi voit soita len asioita, tämä
Siksi voit soittaa varten, tämä on miksi voit soittaa jos kaikesta
että et haluaisi, koska ne kaikki kantavat mukanaan,
tekninen osaaminen tehdä.
>> Tämä on jotain, että olen Super aio mennä.
Mutta asia lista on hienovaraisesti eroaa C tyyli silmukoita,
ja voit lukea kaiken että Internetissä, jos olet kiinnostunut.
On pimeä puoli kaikille Tämän, että mainitsin,
joten siellä on kaksi asiaa.
Ensimmäinen on se, että tämä olio ohjelmointi lisää paljon yläpuolella
satunnaisia ​​asioita, niin lopetat up käyttää paljon enemmän muistia;
päädyt käyttää hieman enemmän aika kuin sinulla olisi muuten.
Other-- mutta enemmän salakavala pimeä puoli tässä
on, jos asiat vain toimivat kuten haluat niiden
ettei sinun tarvitse ajatella superkovia onko tämä olisi int
vai olisiko kellua, se voisi olla, että täällä
tuotat int mutta täällä sinua ajattelevat mutta he always-- pahoillani,
se voi olla, että tässä tuotat kellua,
mutta kun saat toinen osa oman ohjelman, olet ajatellut,
No, mutta he will aina ohitseni int.
Ja jos he eivät, se on mahdollista että te kiilata jonnekin,
jos yrität käyttää sitä indeksoida array, tai mitä olet.
>> Joten yksi todellinen hyödyllisiä asioita C on
se pakottaa ajattelemaan todella kovaa ennen kuin teet any--
Ennen kuin tuo mitään muuttuja olemassaoloon, kuten mitä
on tyyppi tämän muuttujan.
Ja se tulee olla että tyyppi kaikille aikaa.
>> Tämä ei ole totta Python, ja itse asiassa, te
can-- jos olet vain tavallaan menossa korvakuulolta,
ja teet joitakin päätöksiä yksi tapa yhdessä paikassa,
ja joitakin päätöksiä yksi miten ennen muita
asettamatta tarpeeksi tavaraa takana kohtauksia ennen muita
kiinni asioita kunnolla, saada joitakin hyvin outoa virheitä.
Ja ohjelma voi pitää käynnissä hyvin pitkän aikaa, koska se on
tekee paljon työtä sanoa, hyvin tämä asia voisi toimia tällä tavalla,
joten aion ajaa niin.
>> Ja itse asiassa se, että se työntää välittämään läpi paljon pieniä virheitä
tarkoittaa sitä, että usein kun virhe on todella huono
ja et todella haluavat korjata sen, se päätyy mailia away-- ohjelma
päätyy pysähtymättä mailin päässä siitä, kun sinulla oli virhe.
Ja niin yksi asia, että me haluaisimme ohjelmia tehdä, sometimes-- yksi asia
että haluaisimme ohjelmia tehdä, kun olemme virheenkorjaus
on hylätty äänekkäästi ja epäonnistua hyvin nopeasti, kun jotain menee pieleen.
>> Python on erittäin huono, että.
Python on erittäin hyvä ei ei ole ja liikkuvan eteenpäin
kautta odottamattomia asioita.
Joten tämä on hyödyllinen, kun kirjoitat pieniä ohjelmia.
Kun mutkistuvat Bugs joskus
kestää kauan kiusata heitä ulos.
>> Joten siellä on pimeä puoli kaikille Tämän, kuten se vain toimii.
Se toimii kuten haluat odottaa sen.
Paitsi jos se ei, lopetat vuonna aivan muualla
ja yrittää selvittää missä se oli, että meni pieleen.
>> Roskien keräys is-- niin yksi asia, että huomaat
on, että mitään näistä asioista, jotka Olen tuotu existence--
nämä ryhmät, nämä sanakirjat, nämä esineet, nämä files-- koskaan saada vapautti.
Ei ollut kutsu vapaa missään tämän puheen.
Ja joka oli C-puolella, koska emme koskaan päässyt niitä asioita.
>> Mutta Python-puolella, ei ole ilmainen.
Asiat automaattisesti vapautettiin kun Python
luulee et katsot niitä.
Se on todella hyvä ei vapauttaa asioita, saatat silti mahdollisesti katsomalla,
mutta tämä tarkoittaa, että jos olit aikoo jakaa tämä iso juttu,
ja olet kuin, oh Olen tehnyt sen kanssa nyt,
on vaikea sanoa Python että olet tehnyt sen kanssa nyt.
>> Voit joskus asettaa että muuttuja ei ole kukaan,
ja sitten toivoa, että lopulta roskienkerääjä
tulee läpi ja puhdistaa sen.
Mutta jälleen kerran, et valvoa, että.
Ja yksi syy siihen, että ihmiset käyttävät C sillä todella performance kriittisiä asioita,
on tämä kyky todella tietää, milloin muistista on
ja kun se on vapautettu, ja on paljon valvoa sanoen,
Käytän enempää muistia kuin tarvitsen.
Joka on jotain, Python ei ole kovin suuri klo.
Yleisö: Voinko kysyä jotain?
Mitä tarkoitat epäonnistua äänekkäästi?
>> ROSS RHEINGANS-YOO: Joten jos jotain on vialla
ja olet virheenkorjaus tilassa, olisit hyvin usein
haluat ohjelma kertoa teille missä tarkalleen se on mennyt pieleen,
eikä vain hiljaa lakkaa toimimasta.
Mutta haluat oikeastaan ​​se tulostaa pois kaikenlaisia ​​tietoja
kuten, täällä oli tämä.
Tämä asia tapahtui Jos tulostat wen-- jos käytät web server--
>> Yleisö: [äänetön]
>> ROSS RHEINGANS-YOO: Joo, jos käytät web-palvelin,
se on joskus huono, jos olet aina poisheittäminen virheitä,
ja sanot, hyvin, että ei toimi.
Aion lopettaa.
Olen juuri menossa sivuuttaa se ja pitää käynnissä.
Koska silloin voit saada satoja näistä virheistä ja näe niitä.
>> Olisi varmasti hyödyllistä virheenjäljitykseen tarkoituksiin
jos joka kerta web-palvelimen tehty virhe, sinulla oli kestävä kirjaa että.
Ehkä edes halua ohjelman pysäyttää, jotta nämä tiedot
Älä päästä haudattu asioita.
Mutta jälleen kerran, se debugging-tilassa.
>> Usein tuotannon tilassa, maailma on hieman erilainen.
Ja pieni skriptejä, jotka olen käynnissä, jos asia, että sanoin tehdä
saattaa olla vain vähän pois mitä haluan sen tehdä,
sitten tavallaan läpiviemisessä virheet on jotain sinun kannattaa.
Ja niissä tapauksissa, varmasti Python todella ansaitsee sen alkaa.
>> Viimeinen asia, että en puhu vuonna this-- että en puhu
mutta voi olla todella raivostuttavaa ensimmäinen kun on yksi näistä virheistä,
ja toinen ja kolmas ja neljäs kertaa sinulla on yksi näistä virheistä.
Python, mainitsin että se käyttää valkoinen tila
kertoa teille, mitä tasoa sisennys ja mitä toiminnallinen lohko olet,
se kohtelee välilehdet ja tilat eri tavalla.
Joten jos välilehden yli neljä, ja sitten seuraava rivi on neljä aluetta,
vaikka ne näkyvät saman verran editori,
Python ei kohtele heitä sama.
>> Itse asiassa, Python kohtelee välilehdet ja tilat, kuten öljy ja vesi.
Ne ovat vain eri asioita.
Ei ole mitään erityistä pituus että välilehti on,
joten se ei ole kuin välilehti vastaa 8 tilat, ja niin saisit sen ympärille
siten.
Kuten, kun se sanoo, mitä taso valkoinen tila Olen at,
se on todella etsivät kuvio tilat ja välilehdet.
Ja niin, paras tapa käsitellä tätä on aina käyttää tilojen koko ajan.
>> Ja itse asiassa Cloud9 IDE ja CS50 IDE,
sinun sarkainnäppäintä insertit neljä tilat sijasta
of välilehden, joka on erittäin hyödyllinen.
Vaikka uudelleen, jos kirjoitit Python ohjelman välilehdet se olisi hienoa,
se on vain, jos joku meni ja yrittänyt lisätä
yhden rivin ohjelma, oli neljä tilat jokaisen välilehden,
se rikkoisi.
Ja se rikkoisi tavalla joka todella ei ole näkyvissä.
Vaikka todellinen virhe viestin, että se heittää
on tehdä uusia sisentää ei odoteta täällä,
or-- jos se puhuu luetelmakohta ja se näyttää se väärin,
se johtuu luultavasti siitä siellä on välilehti-space ongelma.
He edelleen raivostuttavaa debug.
Suurin kokonaisuudessaan tämä puhe, jota en
saada koska se on todella monimutkainen, hienovarainen aihe,
ja ei tarvitse tehdä mitään asioita olemme tehneet tähän mennessä,
ovat käsite nimeltä tuplat.
Ne ovat siellä paljon kuin taulukot, että et voi muokata.
Ne tottuvat koko paikka, koska ne ovat hyödyllisiä paljon asioita
että taulukot eivät ole hyödyllisiä.
>> Mutta jos haluat tehdä array, ja sitten luvata tulkki, että olet
eivät koskaan halua muuttaa, että thing-- itse asiassa, jos haluat muokata,
voit tehdä uuden uuden arvot it-- ne ovat tuplat.
Pikemminkin kuin tuottavat ne hakasuluilla,
tuotat ne pyöreä suluissa.
Miksi sinun pitäisi käyttää näitä asioita, on hieman kysymyksen. .
Ainoa asia, että olen will sanoa, että on sinulle
voi käyttää tuplat kuin indeksit sanakirjoja.
Et voi käyttää joukoissa, kuten indeksit sanakirjoja.
Ja miksi, jälleen, tekninen ja En aio juosta siihen.
>> PSET että en ole koskettanut päälle tämä puhe on pset6.
Joten tässä miten olisit toteuttaa a-- tässä
miten voit toteuttaa pset6 Python.
Pitäen mielessä Python suunnittelun aikana, ensimmäinen asia
että teet, kun olet kirjoitusohjelmia on tarkistaa
onko joku on tehnyt sen jo.
>> Itse asiassa, jos haluat että serve-- Apache 50
tekee noin tämä, paitsi se ei tule
standardi asennettu Linux koneissa.
Python tekee, ja Python yksinkertainen http-palvelin tekee samoin.
Jos olet koskaan Linuxin, tai Cloud9 IDE ulkopuolella CS50
ja haluat palvella tämä nykyinen hakemisto tiettyyn satamaan,
python-m SimpleHTTPServer Satama palvelee että.
Voit myös tuoda yksinkertainen http-palvelin
ja se sai paljon toimintoja, jos haluat muokata sitä, tai muuttaa sitä,
tai ajetaan it-- hyödyntää sitä suorittaa oman palvelimen palvelut.
>> Niin, että Python pähkinänkuoressa.
Ja tämä on ollut CS50.
Kiitos.