Ross RHEINGANS-Yoo: Hi, unë jam Ross.
Dhe kjo është një seminar CS50.
Ajo do të marrë ju nga programimi në C për programimin në Python.
>> Python është një gjuhë e shkruar.
Është kryesisht si C në sintaksë, edhe pse disa
nga detajet teknike të si merr ekzekutuar që sintaksë
janë pak të ndryshme.
Kjo është më pak e fuqishme se C në disa mënyra.
Kjo është më pak ekspresive për ku pikërisht në kompjuterin tuaj
kujtim merr hedhur jashtë, sa ajo merr hedhur jashtë,
kur ajo merr lirinë, dhe këto llojet e gjërave.
>> Kjo është më e dobishme se C në disa mënyra, sepse është më e lehtë për të programit në.
Gjuha është, për disa njerëzit, më intuitiv.
Dhe me të vërtetë, qëllimi është për që ajo të jetë më e shpejtë të programit
dhe potencialisht të ngadalshme për të ekzekutuar.
>> Tani në qoftë se ju mendoni rreth sasia e kohës
keni shpenzuar në të fundit tuaj Problemi vendosur shkrim
kodin tuaj kundër sasinë e kohës që ju kaloni
në problemin juaj e fundit vendosur ekzekutimin kodin tuaj,
ju do të imagjinoni se gjuha e cila ishte dy herë më i shpejtë për të shkruar,
dhe dy herë më të ngadalshëm për të ekzekutuar, mund të të jetë një përmirësim në krahasim C në disa mënyra.
Sigurisht kur jeni duke u përpjekur për të shkruar programe të vogla për të bërë gjëra të vogla,
Python është një gjuhë e dobishme e zgjedhjes.
>> Dhe në fund të kësaj seminar, unë shpresoj se ju do të
të jetë në gjendje për të bërë zgjedhje në projektet e ardhshme
për të cilën gjuhë është i saktë për t'u përdorur, nuk është ide
se një gjuhë është më e korrigjuar gjithë kohës.
Një disa gjëra në lidhje me atë seminari është.
Ky seminar nuk ka për qëllim të t'ju mësojë Python nga zeroja.
Python është shumë e ngjashme në C, dhe unë jam duke supozuar
se ju jeni një student CS50, apo dikush me një familjaritet të ngjashme me C.
>> Nëse ju jeni CS50 nxënës rreth problemi vendosur 6,
Pra, ju keni të shihni një shumë gjëra në C, unë do të ju jap
dallimet e mëdha, dhe disa nga gjërat
që e bëjnë Python ndryshme dhe të veçanta dhe të dobishme,
por unë nuk jam duke shkuar për të shkuar për çfarë është një gjuhë programimi është
dhe se si të shkruajnë programe.
Megjithatë, ky seminar do të mësojmë ju për të shkruar një programe Python
në qoftë se ju jeni një nga ata pak grupeve.
Përsëri ne do të shohim se si ju do të zbatojë psets--
që duhet të jetë 1-6 në Python-- dhe të sigurojë pointers
në dokumentacionin zyrtar për referencë në të ardhmen.
Gjë tjetër që është e rëndësishme për mënyrën se si ky diskutim është caktuar,
Kjo video do të jetë internet, mirësjellje e CS50,
kështu që ju nuk duhet të ndjehen si ju keni nevojë për të marrë shënime.
Ju gjithmonë mund të shkoni prapa dhe të shikojmë në atë më vonë si një referencë.
Si shtesë, slides janë në dispozicion tani
në këtë vend, i cili duhet të të marrë ju bëni një doc Google.
Kjo është një version shkurtuar pak e atë që unë jam duke treguar në ekran.
>> Një caveat i kujdesshëm para ne kërcejnë në, Python 3
është një gjuhë e ndryshme nga Python 2.
Ata duken shumë të njëjta; atje jane dallime shumë të vogla teknike
që do të shkaktojë programet shkruar në Python 2
të mos jetë në gjendje për të ekzekutohet në mjedisin e Python 3.
>> Pajisja vjen me CS50 Python, by default ajo përdor Python 2.
Ju mund të kontrolloni këtë duke Typing në linjë tuaj komanduese
--version python, e cila duhet të prodhimit 2.7.6 në pajisje aktuale.
Provoni Python 3, e cila e bën punojnë në aplikim,
nëse defaults Python për 2.X.Y, qoftë në pajisja ose në makinat tuaja.
Ju duhet të zëvendësojë Python 3 në çdo kohë në këtë bisedë që unë shkruaj Python.
Nëse makina e juaj është drejtimin e 2 by default, tip
Python 3 në mënyrë që të jenë në gjendje që në fakt të ndjekin së bashku dhe të ekzekutuar këto gjëra.
>> Përveç kësaj, unë do të ju pikë në burimet zyrtare tani.
docs.python.org/3--~~V kujdesshëm se kjo është një 3 dhe jo një 2--
ka referenca të dobishme.
Tutorial do të ju nëpërmjet shumë të njëjtat gjëra
që unë jam duke bërë tani, përveç në formë teksti.
Referenca është e dobishme si një reference për gjuhën,
dhe Biblioteka Standardi jep ju disa nga zgjerimet
me funksionalitet shtesë.
>> Pra, një program shumë të parë Python.
Në të majtë kemi standarde C, në të djathtë, ne kemi Python.
Ju mund të keni njohur ky problem, është e
një e problemit parë vendos në CS50, dhe këto
zgjidhur atë duke përdorur të njëjtën zgjidhje.
Tani, arsyeja që ne jemi duke kërkuar në këto krah për krah
po kështu që ne mund të shohim në Dallimet sintaksore.
Një nga elefantëve në dhomë që ju mund të keni vënë re drejtë
off bat, është se nuk ka Python mbështjellës kryesor funksion rreth kodit.
Pra në C, ju shkruani një bandë e fotografi, ti lidhin ato së bashku,
dhe programi fillon ekzekutimin në këtë gjë të quajtur int main.
>> Në Python, ju shkruani një paraqesë ju, të ekzekutuar file,
programi fillon ekzekutimin në majë të lëndës.
Kështu ajo do të fillojë në krye të dosjes
shkoni poshtë derisa të gjeni diçka tjetër.
Në qoftë se gjen një përkufizim funksion, kjo nuk do të vërtetë të ekzekutojë atë kod,
ajo thjesht do të përcaktojë funksionin.
Por këtu, kur për herë të parë Programi është n është e barabartë me 10,
gjëja e parë që ky program do të bëni është të marrë këtë vlerë prej 10
dhe e vendosi atë në një ndryshore të quajtur n.
>> Duke folur për këtë linjë, një prej tjetër things-- sorry-- kjo
do të thotë se programet C, ju do të shkruani ato,
ju do të bëni ato, të cilat do të kërkoj disa komanda tingëllimë,
dhe pastaj ju do të drejtuar një duke rezultuar ekzekutues.
Programet Python, ju drejtuar Teksti file-- këtë mario.py fuqi
të jetë këtë fotografi që unë vetëm tregoi ju, duke ju do të kandidojë këtë dosje
dhe ju do të ekzekutojë, dhe përmbajtja e tij
do të ekzekutohet nga përkthyesi Python.
Ju mund ta bëni këtë në IDE tuaj.
>> Pra, nëse unë kam një fotografi Përshëndetje, e cila thjesht ka këtë përmbajtje.
Kjo është në fakt Python 2, nuk Python 3, kështu që nuk
shqetësohen për sintaksë për tani.
Por unë do të kandidojë Python, në hello.py, dhe ajo shkon.
>> Një tjetër mënyrë që unë mund të përdorni Python se Unë nuk do të merret me aq shumë në këtë bisedë,
është në qoftë se unë vetëm lloji Python, ajo bie mua në një mjedis ku
Unë mund të ushqyer atë linjë Python nga linjë.
Kështu që këtu, në qoftë se unë lloji në Hapësira print 'hello, bota'.
Lloji hyjë.
Ajo do të pështyj mua se mbështetur rezultatet se linja individuale menjëherë.
>> Kjo mund të jetë e dobishme.
Në këtë bisedë unë do të bëj gjëra në slides.
Dhe kështu që ju do të jetë në gjendje për të ndjekur së bashku ose në këtu, ose duke shkruar
fotografi aktuale dhe pastaj ekzekutimin e tyre.
>> Por, duke shkuar prapa në këtë Kodi, një tjetër gjë
që ju mund të keni noticed-- mirë, nuk ka
dy gjëra që ju mund të vini re në lidhje me këto blloqe.
E para, në vend më i zakonshëm, është se Python ka pikëpresje zvarritës.
>> Pikpresje janë fakultative kudo dhe të padëmshme kudo.
Ju mund të shtoni ato.
Kjo mund të bëjnë njerëzit që shkruajnë Python për të qeshur e mbytur gjallë në ty
pas shpinës tuaj, sepse ata nuk janë të nevojshme.
Ata janë shpesh një shenjë e duke u mbajtur mbi nga C. Designers e gjuhës
mendojnë se ajo është më e qartë në këtë mënyrë dhe kjo nuk është e nevojshme të deklarojë
çdo herë që të përfundojë një linjë.
>> Një tjetër gjë e çuditshme në lidhje me këtë n është ajo nuk ka një lloj bashkangjitur.
Një nga pjesët magjike e Python-- dhe unë jam duke shkuar për të thirrur atë magji,
por ka shumë arsye teknike pse ajo
works-- një nga copë magjike e Python
është se variabla mund të zgjerohet ose tkurret për të përmbajë të dhëna të çfarëdo
Llojet ju do të doni ta.
>> Pra, kjo është një 10.
Në qoftë se më vonë poshtë kam caktuar në këtë n 0.5, ajo do të marrë atë 0.5.
Pa marrë parasysh se kjo është një int këtu dhe noton atje, çdo gjë që përdor këtë n
do të, pak a shumë, të jetë në gjendje për të gulçitje së bashku në qoftë se ajo merr ose nga ata.
Nëse nuk ka një shumë e vërtetë Arsyeja pse ajo nuk mund të përdorë të dhënat e
shkruani se n aktualisht ka, në të cilën pikë ajo do të merrni
bllokur dhe hedhin një gabim, dhe ato llojet e gjërave.
>> Por këtu, Python me të vërtetë nuk ka kujdes se çfarë
është ajo që unë jam duke shkuar për të rrinë në këtë dënim, si, ju doni këtë gjë?
Kjo gjë në atë?
Po, kjo është lloj i një gjë.
Unë do të rrinë atë në fund.
Ajo do të jetë një problem më vonë, në qoftë se dikush i cili dëshiron të përdorë këtë qëllim
nuk mund të trajtojë atë.
Kjo është një nga më të madh dallimet në mes Python dhe C
që e bën të lehtë për të shkruaj programe shumë të mëdha C
dhe bën më të lehtë për të shkruar program shumë i vogël Python.
>> Për sintaksë nuk është shumë e i ndryshëm në atë që bën.
Është paksa e ndryshme në mënyrën se si është e shprehur.
Pra, kjo është një shumë, atë që quhet Pythonic, mënyra e të shkruarit atë.
për rresht në varg (n), kjo është varg të numrave nga 0 deri n,
përfshirëse në fund dhe ekskluzive mbi krye.
Kështu që është nga 0 deri n-1, i cili është saktësisht se çfarë kodi C është duke bërë,
përveç se është shumë më e lehtë për të parë ndoshta.
>> Blloku përkatës është Nuk u nisën nga formatimin e teksteve,
në vend të kësaj është e vendosur jashtë nga kjo vulë.
Pra, të gjitha këto linja janë katër hapësira mbi të drejtën,
ose si në lidhje me një gjerësi elefant.
Dhe ata janë ato të cilat janë do të ekzekutohet në këtë për.
Nëse unë mess up gjurmë në këtë dhe unë
të shtyjë atë përsëri për të shtypura vulë origjinale,
që të shtypura do të largohet për lak.
Në kontrast me C, ku këtu unë në fakt nevojë për të lëvizur atë mbajtëse të mbyllur rreth.
>> Kjo do të thotë që ju të mos merrni gabime që hidhen jashtë në ju, sepse ju
vënë një mbajtëse në vendin e gabuar.
Kjo do të thotë që ju të merrni gabime që hidhen jashtë në ju, sepse ju
prerë një linjë të gabuar.
Pra, kjo e bën indentations super i kujdesshëm.
Shpresojmë që ju janë duke u super kujdesshëm me vulë tuaj gjithsesi,
dhe kështu që kjo nuk është se më shumë nga një barrë.
>> Por një rregull bazë për Python, dhe ne do të kemi një çift të këtyre
se ne do të shkojnë nëpër nëpër rrjedha e bisedës,
po përpiqet sintaksë natyrore para se të kërkoni ndonjë gjë lart.
Pra, kjo sintaksë, për ky numër në varg,
është shumë i veçantë në drejtim të stilit.
Shumë gjëra në Python ne do të shohim të marrë këtë formë.
>> Dhe kështu që nëse keni dalë me një objekt të ri që ju
mendoj se ju duhet të jetë në gjendje të iterate mbi këtë, në këtë format,
rezulton ajo ndoshta mbështet këtë format.
Ne nuk jemi duke shkuar për të shkuar super të thellë në arsyet teknike pse kjo është e vërtetë.
>> Por kjo është një intuitë dobishme që të ketë kur ju jeni afrohet programe Python,
se kjo gjë është vetëm do të punojë.
Provoje.
Boot up vija e komandës Përkthyes, të shohim nëse ajo punon,
të lëvizë me gjëra, para jush nevojë edhe për të hapur Google dhe thonë:
çfarë është sintaksa për kjo gjë të veçantë?
Shumë Python ju mund të zbuloni vetëm duke u përpjekur.
>> Kjo në qoftë se është edhe më i ngjashëm C atëherë FORS janë.
Vini re se nuk ka kllapa.
Kllapa janë, përsëri, padëmshme, por të panevojshme.
Nuk është një zorrë e trashë në fund ashtu si për sythe,
dhe përsëri, blloqet janë relative prerë sesa nisën nga formatimin e teksteve.
Ky tjetër është në origjinal Niveli i vulë,
dhe bllok saj relevante prerë përsëri.
Ata puna pikërisht si ata e bëjnë në C.
>> Kjo është në fakt shumë e shumë të njëjtën gjë.
Përsëri, të shtypura humbet një karakter off e printf Ju kaloni disa strings.
Ajo rezulton strings ose mund të jetë shënuar off
nga kuotat e vetme ose kuotat e dyfishtë.
Nuk ka asnjë ndryshim, përveç se brenda
i kuotat e vetme që ju mund të përdorni Kuotat e dyfishtë me braktisin,
në vend që të shpëtuar të gjithë ata.
Dhe brenda kuotat e dyfishtë, ju mund të përdorni kuotat e vetme me braktisin
pa pasur nevojë për të shpëtuar ata.
Në qoftë se ju të kërkuar për përzierje ata, ju me siguri mund
kërkoni në internet se si për të bërë këtë.
>> Ju do të vëreni se gjatë këtu, Unë e kam kaluar në fund = këtë gjë.
Ky është një shembull i një opsional argument, i cili është një nga ato gjëra
që Python mbështet se e bën atë mjaft e dobishme.
Pra, të shtypura në fakt ka një shumë të argumentet, të cilat janë zakonisht të
vendosur të parazgjedhur e tyre vlera, por këtu unë kam
vendosur për të shkelur një të quajtur fund.
Arsyeja që unë kam për të refuzo atë me një varg të zbrazët
është se të shtypura në Python, nga parazgjedhur, printon një linjë të re
pasi ajo që ju tha atë shumë.
>> Pra, kjo hash është në të vërtetë do të shtypura nga një hash në një linjë të re.
Dhe në qoftë se unë nuk dua hash të shtypura nga një linjë e re pas saj, atëherë unë duhet të them
mos shtypura një të tillë.
Por, megjithatë kështu, një gjë e fundit që ky program mungon që e ka është
një të përfshijë në krye.
Print është pjekur në Python kështu që në thelb se nuk ka kokë apo moduli
se ju duhet të përfshijnë, por nëse dëshironte
për të përfshirë gjëra të tjera në një script Python,
Unë do të bëjë atë në një format-- shumë të ngjashme fjalët janë vetëm pak më të ndryshme.
>> Kam përmendur se ne nuk kanë nevojë këtu një kryesor,
sepse Python fillon ekzekutimin në krye.
Në qoftë se unë të kërkuar për të përfunduar kjo në një funksion, unë
do ta bëjë atë si this-- unë do të thonë def emrin funksion,
Argumentet mund të shkojnë në këtu dhe ne do të të shihni disa prej atyre të mëvonshme, zorrës së trashë,
dhe pastaj përsëri, kjo gjithë u nisën bllok
është çfarë është operacional bllokuar për atë funksion.
Pra, kjo është përkufizimi e funksionit.
Dhe ka një deklaratë, pastaj poshtë këtu, unë vetëm mund të telefononi funksionin.
Dhe përsëri, programi përkthyes, duke filluar në krye,
do të shohim ky është definicioni.
Kjo nuk do të ekzekutojë këtë deri sa të marrë këtu, dhe atëherë kjo është si, oh
tani ju keni quajti atë, unë guess I duhet të ekzekutuar atë.
>> Një gjë që është shumë e zakonshme për të parë në fotografi Python,
sidomos fotografi Python se janë lëshuar për publikun
dhe zhvilluar by-- dhe zhvilluar dhe ruajtur, është diçka e kësaj forme.
Kjo është kështu për shkak se basically-- Python, ju filloni në krye
dhe pastaj ju ekzekutojë poshtë në fund, Unë në qoftë se unë vetëm e kishte quajtur Mario këtu,
atëherë çdo herë që unë të përfshira në këtë fotografi një tjetër fotografi, sepse kam kërkuar për të përdorur
është funksioni Mario, që dosja tjetër do të gjithashtu kanë këtë thirrje për Mario në të.
Dhe kur unë u zhvillua këtë dosje, kjo do të thërrasë Mario.
>> Pra, është e mundur që unë vetëm doni të drejtuar këtë në qoftë se unë kam në fakt
ekzekutuar këtë fotografi të veçantë.
Dhe kështu që unë mund të përfundojë këtë në një idioma si ky, ku unë them,
nëse emri i këtij ekzekutimit Mjedisi është kryesore,
atëherë unë dua të bëj këto gjëra.
Përndryshe dikush tjetër mund të use-- përfshijnë function-- tim
dosja ime, dhe vetëm për të marrë qasje në këto funksione
pa pasur nevojë për të drejtuar gjërat që unë dua për të ekzekutuar në këtë fotografi.
Kjo është, përsëri, fakultative por shumë e zakonshme.
>> Këto gjëra janë entirely-- janë të njëjtë ndërmjet C dhe Python,
sigurisht në 3.
Unë mendoj se në 2, operatori ndarja Ndonjëherë ju kthen gjithandej kur
ju operuar në ints, dhe as ju kërkuar që ose ju nuk e bëri.
Por plus, minus, dhe herë punojnë pikërisht si ju do të presin,
përveç gjatë pak më shumë lloje.
Kështu që ju mund të shumohen gjithandej nga Ints, dhe ato llojet e gjërave.
>> grup punon saktësisht të njëjtë.
Ju mund të përdorni dy shenja të barabarta.
inequals-- më e madhe se, më pak se, këto llojet e things--
kanë kuptimet që ju jeni të njohur me ta.
>> Ku C përdor këto operatorët, Python përdor pak më shumë anglisht
ato i lexueshëm.
Pra, në vend të dy, ampersands, ju fjalë për fjalë shkruani fjalën "dhe", "ose,"
ose jo."
Ashtu si në if-- tuaj në tuaj Deklaratat e kushtëzuara,
e pamë më herët se kjo sintakse në C korrespondon me këtë sintaksë në Python.
Dhe ka jo shumë të ndryshme atje, me përjashtim të pak
e pikësimit rreth anët.
Përsëri, ku C do tjetër në qoftë se, Python përdor Elif,
por këto janë kryesisht ndryshimet e nivelit të sipërfaqes.
>> Përsëritje si kjo është shpesh shkruar në këtë idiome në Python.
Ju mund të prodhojë këtë lloj të gjë me një lak, ndërsa në pjesën e jashtme
në qoftë se ju të kërkuar, por ju me siguri nuk kanë për të.
Dhe përsëri, në qoftë se ju donte shtypura nga elemente në të një sërë
ju mund të bëni në këtë mënyrë.
Një nga gjërat fun për Python pse,
është se ju nuk keni nevojë për të përdorur këtë paradigmë,
dhe ju mund të përdorni një një pak më elegante.
Ju thoni për një në Ary.
>> Pra, në vend se të shkojnë këtu dhe drejtimin mbi treguesit,
dhe pastaj duke tërhequr jashtë Elementet individuale,
ju tregoni për të vërtetë vetëm drejtuar mbi vetë elementet.
Dhe pastaj çdo gjë që ju jeni duke bërë brenda mund të veprojë drejtpërdrejt
mbi elementet, e cila është shumë e bukur.
Dhe ne do të see-- ne do të përdorim që idioma përsëri dhe përsëri
si ne ecin nëpër kodit.
>> Kjo është, përsëri, një shembull për diçka që unë do të
quajnë Python magji, edhe pse ka arsye shumë teknike pse ajo punon.
Dhe ka gjëra teknike që duhet të jetë e vërtetë në lidhje me rrjet, në mënyrë
për këtë për të punuar prapa skenave.
Gjë është se shumica e llojeve që ju do të presin që kjo të funksionojë
kanë pasur këtë zbatuar për ju në ndërtuar në gjuhë.
>> Një tjetër gjë që do të ishte mirë nëse kjo ka punuar në çdo gjuhë,
por ka disa arsye pse ajo nuk mund, shtypura Ky varg herë këtë numër.
Rezulton se në Python, kjo e bën pikërisht Çfarë ju dëshironi, e cila është vetëm e bukur,
dhe do të thotë që ne mund të vërtetë reduktuar këtë program, përsëri mario.c.
Në vend se iterating shumë, ne mund të them vetëm, unë dua disa numrin e hapësirave,
Unë dua numrin e hashes, dhe disa hashes në fund.
Dhe përsëri, ne e përdorim këtë format.
>> Këtu, ne jemi duke kaluar në një variabël në këtë mënyrë.
Përsëri, ne nuk kemi nevojë për të thënë çfarë lloji i variablit është,
dhe e vetmja kohë që ne do të merrni gabime është në kohë të kandidojë.
Kur dikush përpiqet për të kaluar në diçka,
ajo do të hyjë në funksion vetëm gjobë.
Nëse ne pykë këtu, sepse kjo nuk është gjë që ju mund të krijoni shkon mbi,
Unë do të merrni një gabim Runtime atje, dhe unë do të duhet të korrigjoj atë në këtë mënyrë.
Por, në ndërkohë, unë nuk kam të jenë shumë të kujdesshëm në lidhje me atë
merr kaluar në, për aq kohë sa në aktuale Ekzekutimi i të gjitha punon shumë pastër.
>> Unë mund edhe të bëjë këtë një pastruese pak
duke përdorur një ndërtuar në funksion të veçantë në vargjet, e cila është e drejtë Justify.
Kjo është vetëm një funksion i dobishëm gënjyer rreth bibliotekë.
Është në dokumentacionin në qoftë se ju shkoni dhe të kërkoni për të.
Dhe unë them, edhe unë jam do të ketë ky varg, disa numri i hashes,
dhe unë do të doja për të justifikuar drejtë jastëk it-- ajo me hapësira të jetë në këtë gjatësi.
>> Përsëri, kjo është në dokumentacionin, i cili sjell us--
Unë në fakt do të klikoni me these-- e cila na çon në sundimin tonë të dytë
për bibliotekën standarde Python-- Metodat funksion janë miqtë tuaj.
Dhe kjo është shpesh vlerë ndërsa tuaj për të shkuar në kërkim të Pyes veten
në qoftë se ka një gjë që vetëm e bën këtë.
Ka ndoshta është.
Në qoftë se ju dëshironi të pad nga një varg, në qoftë se ju do të
si për të marrë mbrapa gjysma e një varg, në qoftë se ju do të
si për të kërkuar përmes një varg, në qoftë se ju dëshironi për të goditur disa gjëra
së bashku me një varg me presje mes tyre,
ka bibliotekë standarde Funksionet për të bërë këtë.
>> Dhe kjo e bën jetën tuaj më e lehtë në qoftë se ju përdorni ato
në vend të lëkundet nga çdo gjë në tuaj
në pesë rreshta të kodit këtu, pesë rreshta të kodit këtu.
Që me të vërtetë fillon në shtoni deri në kohë reale.
>> Një nga gjërat interesante për mënyrën se si kjo merr të quajtur.
Ju do të vëreni se ka një gjë dot.
Unë kam disa objekt në të majtë, dhe pastaj unë e quajti një pikë një funksion.
Kjo është një nga paradigmat që Python përdor për bashkëngjitur metoda të objekteve.
Ne do të flasim për atë që kjo është shumë shkurtimisht në fund,
por e di se ne të dy mund të veprojë në gjëra duke marrë këtë gjë, duke thënë dot
çfarëdo, ose duke telefonuar një funksion që merr
se objekti dhe disa argumente të tjera.
>> Pra, këto janë dy mënyrat që gjëra të merrni bërë në Python.
Dhe nëse një të veçantë funksionalitetin është zbatuar
në këtë stil apo kjo Stili është diçka që ju
duhet të shikoni deri sa ju të merrni një ul receptorin e telefonit për të cilat një është e mundshme që të bien në.
Ka një më shumë ose më kohezive Filozofia prapa Python
që ju thithin kryesisht duke shkruar një shumë në të.
Në disa pika, të cilat një nga këto, diçka do të zbatohet si
bëhet e natyrshme.
Tani për tani, kjo është vetëm diçka ju të mësoni si ju kuptoj se
çdo gjë individ.
>> Bibliotekë kështu standarde Funksionet janë miqtë tuaj,
dhe ata le të shkruajnë gjëra që marrë këtë shumë hapësirë ​​të vërtetë së shpejti,
me të vërtetë elegante.
Dhe kjo është në fakt ndoshta më lexueshme, unë do të them, se programi C
atje.
Jo për të përmendur faktin që është aq të shkurtër ju mund të përshtatet një elefant të tërë
në hapësirën që kemi shpëtuar.
>> Një tjetër gjë, kjo është një zbatim e mario kjo është dot C, e cila unë mendoj se
është më e shkurtër që ju mund të merrni atë.
Ajo nuk ka marrë int, por kjo kodet Hard The vlera e 10
në të njëjtën mënyrë që kjo e bën.
Rezulton se kjo orë në në 84 karaktere, ndërsa Python është 64.
Dhe kjo është pafundësisht më lexueshëm se kjo mbeturina këtu.
Pra Python është më efikas në hapësirë.
Kjo është pak më pak efikase në kohë, por jo me shumë.
>> Listat janë një gjë e rëndësishme në Python.
Ne nuk kemi parë ato, por ata të veprojë ashtu si vargjeve bëni në C.
Kështu që këtu, ju mund të deklarojë ato, ju mund të kalojë ato në një gjë.
Tani sheshet mban një grup nga këto gjëra.
Përsëri, ne nuk kemi deklaruar si lloji, por në qoftë se ne ndonjëherë përpiqen të përdorin atë,
çdo gjë që ju do të presin për të punojnë në një rrjet të integers
do të punojë në një grup i integers.
>> Kjo është një gjë që ju absolutisht nuk mund të
bërë në C, sepse kujtim ajo është aq duart në,
por është shumë e lehtë për të bërë në Python.
Nëse unë dua grup im të jetë më e madhe, unë mund të append një element për të dhe kjo është në rregull.
>> Çfarë po ndodh në prapaskenë?
Përkthyesi do të shkojnë jashtë dhe për të marrë disa kujtesës,
dhe ndoshta kjo do të merrni një pak e kujtesës shtesë,
kështu që unë nuk e kështu që unë nuk kam të risigurimi çdo kohë.
Por sa të ketë më shumë kujtesën e bën atë nevojë?
Ky nuk janë vendime që ju duhet të bëni,
këto janë vendime që përkthyes do të bëjë.
>> Këtu ne shohim varg mund merr dy argumente,
por është ende do të jetë përfshirës nga më të lartë në mënyrë që të shtoni 1 atje.
Kjo është një idiomë, e cila është një edhe më mënyrë e zgjuar për të shkruar gjëra të tilla si kjo.
Ajo që quhet lista të kuptuarit, dhe këtu atë që ne jemi duke thënë
po unë do të doja për të vënë në I katror për çdo vlerë e unë në këtë varg.
Kjo gjë në të djathtë mund të jetë një tjetër array, dhe kjo gjë në të majtë
të jetë ndonjë funksion të veçantë që do të marrë në i, si një variabël
dhe më jepni jashtë ndonjë rezultat.
>> Ajo që unë jam duke shkuar për të bërë është, Unë jam duke shkuar për të ndërtuar
një grup që të gjithë këto gjëra për çdo vlerë në këtë varg.
Dhe kjo është super elegante, super të shkurtër, dhe kjo është shumë e qartë çfarë do të thotë.
Kjo është një nga things-- ky është përsëri,
një of-- shumë emblematike e Arsyet që njerëz si Python.
Në qoftë se ju pëlqen programimit si kjo, atëherë Python
është një gjuhë që ju mund të dëshironi të mësoni.
>> Dhe përsëri, ka teknik Arsyet pse kjo funksionon.
Por, aq sa ne jemi të shqetësuar, ne pak a shumë nuk e kujdesit.
>> Pra, nëse ju doni të shtypura jashtë listave, disa njëjta shprehjeve janë të dobishme.
Sepse unë në këtë varg, ne mund të Indeksi nëpër të gjitha gjërat
dhe pastaj të shtypura të gjithë jashtë.
Dhe ju do të shihni len këtu.
Nëse ju keni kërkuar ndonjëherë për të marrë gjatësia e vektorit, kjo është
shumë e lehtë në Python, është shumë e vështirë në C.
Kjo do të shtypura nga saktësisht ajo që ju do të presin që ajo të.
Ne mund gjithashtu, siç e kemi parë më parë, iterate mbi elementeve në rrjet
të drejtpërdrejtë, dhe pastaj vetëm të flasim për ata, në vend që indeksi
përsëri në veshë çdo kohë.
>> Dhe kjo është një gjë që ju mund të bëni.
Pra në C, në qoftë se ju kërkoni për diçka si kjo, të shtypura do të thonë:
kjo është një grup i integers.
Kjo nuk është aspak një string, unë nuk mund të shtypura atë.
Python pak a shumë nuk ka kujdes.
Është si, a ka një mënyrë që unë mund të kthehet kjo në një varg?
Po, unë do të bëj atë.
Dhe kështu që unë do të shtypura vetëm se jashtë.
Kjo do të thotë që ju mund të bëjë gjëra të like-- këto
janë më të pjesëve të forta e lojës së pesëmbëdhjetë, të shkruara
shumë shkurt në Python.
>> Ju do të shihni se ka pak of-- këtu
Unë e kam hedhur një numër të plotë në një varg, dhe unë kam për të bërë këtë me dorë.
Dhe unë jam duke shkuar për të shtuar ajo në një tjetër varg,
ose përndryshe Python merr hutuar.
Por, nëse kur ju jeni duke shtuar një varg për një numër të plotë,
jam mendoj për të marrë një Integer mbrapa ose një varg prapa?
Por, përsëri, në qoftë se ju vetëm thërrasë rr në një gjë,
dhe kjo mund të jetë e mundur në ndonjë Bota do të konvertohet në një varg,
ajo ndoshta do të jetë konvertohet në një varg.
>> Këtu, ne shohim përdorimin e Lista kuptuarit mbivendosur
në të majtë, një indeksim, e cila është pikërisht si ju do të jetë përdorur për të,
dhe disa shtypjen nga gjërat.
Përsëri, ne kemi përcaktuar disa funksionet dhe ne do të thërrasë ato poshtë
në kryesore, kur ne fakt të merrni dosjen.
Kthimi punon tamam si ju do të presin nga puna me C. Gjej,
ne mund të krijuar gjëra të tilla si this-- këtu është lista e të kuptuarit
ka një detyrë për një ndryshore, dhe ne fakt mund të bëjë atë edhe më të lehtë.
Ne nuk kemi nevojë për të shkruar kërkimin, sepse ndërtuar në në gjuhën
është nëse kjo gjë është në këtë grup.
Kthehu vërtetë, tjetër kthimit të rreme.
Pra, kjo është tërësia e gjetjes.
>> Tërësia e llojit përfshin thirrje lloj,
të cilat is-- ka Implementimi e kjo e ndërtuar në bibliotekat e caktuara C.
Në qoftë se ju do të pëlqen kjo lloj prapa, ju
mund të pranoj këtë fakultative Argumenti në të kundërt me një e vërtetë.
Dhe në qoftë se ju dëshironi për të zgjidhur mbi vargjet, që është ndërtuar në si.
>> Pra, kjo nuk është për të thonë se këto janë gjëra që ju duhet të bëni çdo ditë,
por ideja është që ky është filozofia e Python,
se të gjitha këto gjëra që ju do të lloj i duam të bëjmë janë ndërtuar-në.
Dhe shumica e funksioneve standarde, kështu lloj, gjatësia, çfarëdo,
mbështetur input më logjikisht ndjeshme.
Ju telefononi len mbi një grup të njëjtën gjë Mënyrë që ju telefononi len në një varg.
Ju multiply-- ju lloj strings në të njëjtën mënyrë ju lloj vargjeve.
>> Shumica e funksioneve standarde që njerëzit ndërtojnë,
dhe më e palës së tretë bibliotekave që njerëzit
ndërtuar, sepse ata janë imituar dizajni i bibliotekës standarde,
mund të quhet në çdo gjë që ju jeni si, pse jo kjo vetëm punë,
në C. Pak a shumë, ajo do të punojë në Python
sepse njerëzit punojnë prapa në figurë se çfarë një gjë është dhe pastaj të veprojë
në mënyrë të përshtatshme në të.
Pra, përsëri, sfond teknike, por atë e bën jetën tonë më të lehtë si programuesit.
>> Kështu që këtu është skedarit I / O. paraqesë I / O ka shumë të pak gjëra që e bëjnë atë të komplikuar,
dhe kështu ka burime në internet, por me pak fjalë,
ju e quani të hapur në një skedar emri me një lloj të veçantë.
Kështu që është lexuar, lexuar dhe shkruaj, shkruaj ose append.
Ju lexoni një numër të caktuar të karaktere jashtë dhe ti printoni ato,
ju do të merrni Hello!
Unë do të thotë, si kjo skedë kishte Hello!
Në të, thirrje për të lexuar, dhe atë që ju do të merrni mbrapa
është një varg që i ka të gjitha nga mbetja e vektorit,
ose të gjithë pjesën tjetër të dosjes.
Nëse ju telefononi lexoni përsëri, ju jeni në fund të dosjes,
dhe kështu ju nuk e merrni çdo gjë dhe kështu ju do të mbyllet.
Përsëri, kjo është .close sesa skedë të ngushtë, pasi ajo do të jetë në C.
Kjo është më shumë ose më pak për shkak se f është një gjë, dhe ju dëshironi për f për të mbyllur.
Por skedë themelor I / O nuk është veçanërisht e komplikuar.
Përsëri, në qoftë se ju dëshironi të hapur një skedar, nëse ju dëshironi të lexoni një linjë të veçantë,
ju mund të merrni nga të veçantë line-- ka ndërtuar-ins për atë.
Nëse ju dëshironi të shkruani një gjë, ju mund të shkruani këtë.
Nëse ju dëshironi të shkruani nga individ kafshon, ju mund të shkruani ato.
Dhe në qoftë se ju dëshironi të iterate mbi vijat e një fotografi
individualisht, siç bëmë në një pjesë nga disa javë më parë, ju mund të bëni atë për të.
Përsëri, shumica e objektet që ju do të të donte të jetë në gjendje për të iterate mbi
Mbështetja iterating mbi ta.
Në strucë, një skedë është ndoshta një gjë që Do të doja të iterate mbi rresht pas rreshti.
Në qoftë se kjo ishte një fjalor e fjalëve dhe unë kam qenë
duke u përpjekur për të marrë ato individuale fjalë, atëherë, në këtë lak,
Linja ajo do të jetë çdo fjalë nga ana e tij dhe kjo
do të të ekzekutohet për çdo linjë në dosjen e deri në fund të file.
Dhe përsëri, në qoftë se unë të shtypura nga çdo line, linjat vijnë me linja të reja,
kështu që unë jam vendosjen fund mbështetur në një gjë të tillë.
Atëherë unë do të merrni përmbajtjen e dosjes sime.
>> Gjëja e dytë që operon në disa mënyra si listat, dhe në disa mënyra
si diçka thelbësisht më të fuqishme,
janë fjalorë, të cilat janë me të vërtetë ftohtë për t'u përdorur, por janë në thelb të hash
tavolina në maskim.
Ju krijoni një të tillë duke përdorur pikërisht dy karaktere, e cila është i tmerrshëm
në qoftë se ju u përpoq për zbatimin e tabelë hash për të vendosur tuaj e problemeve,
ju e dini shumë dhimbje që mund të jetë.
Por njerëzit kanë bërë ajo, dhe bërë atë aq mirë,
që ju nuk keni për të merak për këtë më.
>> Atëherë ju mund të futni gjëra individuale.
Tables-- Hash ose fjalorë nuk e veçanërisht
kujdes se çfarë ju jeni ruajtjen në to.
Pra, nëse disa të hyra janë numra, dhe disa të hyra janë listat,
nëse disa të hyra janë fjalorë të tjerë, dhe disa të hyra janë vargjet,
Python nuk kujdeset shumë.
>> Përsëri, në qoftë se ju shkoni në të pritur një varg dhe atë që ju merrni mbrapa
është një grup, i cili është problemi juaj.
Dhe ndoshta kjo është faji i kushdo që mendonin se ishte vënë gjërat
në fjalët, ndoshta që të ishte.
Në qoftë se ishte dikush tjetër, shpresojmë se ata ishin
sillen mirë për çfarë ishte duke shkuar në fjalor
dhe nuk ka lënë asnjë grackave për ju që të bien në.
>> Por funksionet standarde do të ju jap përsëri gjëra të sjellshëm.
Pra, ata thonë se kjo e kthimit mbështetur një fjalor të strings,
atëherë çdo gjë që ju jeni duke shkuar për të marrë nga një varg.
Nëse ju bëni disa të këtë dhe kjo udhëtime ti lart, mirë, kjo mund të jetë mbi ju.
Python sigurisht ju jep mjaft litar për të ul receptorin e telefonit veten, në qoftë se ju dëshironi.
Tani ne mund të shtypura nga individ Elementet e kësaj dhe kjo kthimet
pikërisht ajo që ju do të presin.
Pikërisht ajo që ju do të presin, unë mendoj, është një frazë që unë jam duke përdorur një shumë,
por kjo është më shumë ose më pak se si punon Python.
Nëse ju kërkoni për një gjë që nuk është e ajo, Python do të hedhin jashtë një gabim
dhe ai do t'ju lë jashtë çfarëdo programi ju keni qenë në.
Ajo në fakt do të shtypura nga më shumë informacion se kaq,
ajo do të vënë ju, duke filluar ajo do të të shtoni një linjë, dhe kështu.
>> Dhe, përsëri, ndoshta ne duam për të iterate mbi fjalorë
dhe për të gjetur të gjitha gjërat në të.
Këtu ne jemi të iterating mbi dy gjëra në të njëjtën kohë.
Dhe kështu që ne do të bëjmë atë me një kyç, vlerë, por pastaj të shtypura nga të gjitha këto.
>> Dhe në qoftë se ne të kërkuar për cast-- në qoftë se ne fakt u zhvillua këtë,
ne do të kemi disa probleme, sepse on-- kur kemi shkuar në me Davidin,
ajo nuk mund të add-- në qoftë se ne nuk e bëri e hodhi atë në një varg të parë,
ne nuk mund të shtoni këtë koleksion e vargjet mbi një varg.
Por nëse ne hedhësh këlyshëve të një string, ne kemi marrë diçka
si kjo, e cila është ndoshta ajo që ne do të donim për të lexuar.
>> Dhe kjo është Speller.
Ne lexojmë vetëm në gjërat.
Pra, ne mund të lexoni në Fjalët individuale si linja.
Ne pres off e fundit gjë, kështu që i zorrës së trashë minus 1
chomps off gjëja e fundit që we-- karakteri i fundit i një varg.
Ne do të themi.
OK, secili nga ata merr futur në këtë fjalor,
mapping në një vlerë prej 1.
Ne nuk e veçanërisht intereson se një,
por kjo është vetëm atje për të thënë, oh mirë, kjo gjë unë do të vënë në fjalor.
Sepse më vonë ajo që ne jemi do të bëni është që ne jemi
do të thonë, mirë, në qoftë se është në fjalor fare.
>> Përsëri, ky kontroll për Anëtarësimi është deri operativ
duke përdorur një krejtësisht të ndryshme algorithm se ajo do të në një listë,
por ne e quajmë atë në të njëjtën mënyrë, e cila është disa të asaj veshjes sheqerit Python
gjëra në mënyrë që ata janë të lehtë për t'u përdorur.
Dhe përsëri, ne kemi parë gjëra të tilla si kjo para.
Kjo është në thelb të gjetur, ose kjo është pikërisht njëjtë sintaksë
si gjeni, por po vepron mbi një Struktura krejtësisht të ndryshme.
Dhe ne nuk e veçanërisht të kujdesit.
Pra, këto janë gjërat që ju u pyetën për të zbatuar për Speller.
Me këtë ritëm, ne jemi duke shkuar për të marrë ose më pak të gjitha psets kryer.
>> Audienca: Kështu që në thelb vetëm kthehet
si shkruar gabimisht në qoftë se ajo nuk ka përputhen diçka në fjalor?
Ross RHEINGANS-Yoo: Po, po.
Dhe kështu, kjo është një Përshtatja e një problemi të vendosur
i cili ju pyet për të bërë pikërisht atë.
>> Audienca: Pse është vija minus 1 atje?
Ross RHEINGANS-YOO: Pra, kur ju jeni iterating
mbi një skedar kërkuar nga linja, linjat
të vijë me një karakter të ri linjë ne fund te it-- në 1 minus
është vetëm në dyqan ato jashtë.
Dhe kjo është një veçanërisht fleksibël Mënyra e indeksimit në gjëra.
Pra, nëse ju keni një varg, dhe ju dëshironi, edhe unë jam
do të fillojë në karakterin e tre dhe unë jam duke shkuar për të shkuar deri në fund.
3 zorrës së trashë do të bëjë atë për ju.
Nëse ju jeni si unë dua të fillojë në nivel filluar dhe të shkojnë në minus 1 fundit
karakter, zorrës së trashë minus 1.
Dhe në qoftë se ju të kërkuar për të shkuar nga i treti në minus së pari,
atëherë ju do të thonë 3 minus 1.
>> Përveç kësaj, në qoftë se ju doni të indeksit në gjëra llogaritur nga mbrapa,
ju vetëm indeksi në me numra minus.
Dhe për shkak se, ku C do të shpërthejnë apo ndoshta
ju ushqejmë kujtesës tjetër ju nuk keni qasje në, dëgjoni ju mund të them minus 1
do të thotë të fundit, por 1 karakter në një varg.
>> Modulet janë version-- janë analoge për bibliotekat në C
dhe janë të dobishme për shumë gjëra.
Një shumë gjëra që ju do të si për të bërë në Python,
përveç thjeshtë manipulimi i variablave,
ju doni të lidh në të bibliotekat më të mëdha me të mëdha
ndërfaqet dhe më shumë aftësitë për të bashkëveprojmë
me pjesët e tjera të botës.
sys është një nga ato me një bandë e mjeteve
që janë të dobishme për të bashkëveprojmë me vetë sistemit
dhe do të importojë atë si SYS importit.
>> Ka më shumë dokumentacion nga atë, që ju mund të shkoni këtu,
ose ju mund të gjeni në Google duke googling SYS Python.
Ju shkruani në të hyrë.
Hallka e parë do të jetë dokumentacioni në Python 2,
lidhja e dytë do të të jetë dokumentacioni Python 3.
>> Dhe në qoftë se kemi shkruar nga një fotografi që dukej si this-- Nëse në veçanti, ne jemi
duke kërkuar në që veprojnë në argumente command line,
si kemi mësuar të bëjë shumë herët në këtë klasë.
Kjo nuk është e vështirë. Ju mund të merrni jashtë argv,
i cili është një nga ato gjëra i cili zbatohet nga SYS.
Kjo nuk është ndërtuar në të paketë bazë, por përsëri, ju
mund ta zgjasë atë duke importuar se funksionalitetin nga SYS.
Ju do të thërrasë atë SYS.
cfaredo.
Këtu nuk ka argv.
Nuk është në fakt asnjë argc në SYS, sepse ju
mund të merrni atë aq lehtë duke telefonuar len.
Ne pastaj të shtypura që jashtë, atëherë ne u zhvillua në echo-args.py tonë terminal.
Ne kemi marrë përsëri një grup, i cili është ky argument i parë.
Përsëri, kjo është argv 0, që është emrin e sendit që u quajtur.
Nëse ne e quajti atë me shtesë argumente, ne do të merrni ato mbrapa.
Kjo është një mënyrë e gjetjes së argumente command line.
Në qoftë se ju doni flamuj ku ju kthehet gjëra të veçantë në ose refuzo
një default veçantë, argparse është miku juaj.
Dhe përsëri ju të gjeni se në internet në Python argparse në Google.
>> Ka disa shërbimeve modulet që ju të gjeni veten duke përdorur
dhe përsëri, në qoftë se keni shpenzuar çdo kohë e kjo gjuhë importimit jsons
për të lexuar në dhe jashtë JSON fotografi, jo se e komplikuar.
Ju hapur një skedar, ju i quajtur json.load në atë dosje dhe që ju të merrni përsëri një gjë.
Çfarë është kjo gjë?
Është një objekt JSON.
Ku që JSON ka rrjet, Python ka vargjeve.
Ku se ka JSON vargjeve associative, Python-së
fjalorë, vargjet, dhe numrat, dhe kështu me radhë.
Ju dëshironi që të hale atë jashtë, ju të hapur një skedë të re, ju e quani hale,
dhe ngarkesa dhe mërzi për shkoni në dhe jashtë tela.
>> Në mënyrë të ngjashme, turshi merr quajtur në thelb të njëjtën ndërfaqe.
Kjo është pak më e dobishme në qoftë se ju jeni dumping objekte Python.
Pra, nëse ju keni kërkuar ndonjëherë për të shpëtuar një version i gjendjes aktuale
e një variabël për një të ardhme drejtuar të programit tuaj,
turshi është e Python-së bibliotekë për të bërë atë.
>> Nëse keni ndonjë lloj të variabël që mund të jetë i shkruar jashtë
në fjalë të tilla si dhe karaktere dhe bytes-- si ky fjalor,
ne mund të shkruani, ne mund të shkruajnë si
si një objekt JSON, i cili ishte fjalë për fjalë këto karaktere.
Dhe atëherë do të jetë shumë e lehtë për një njeri për të hapur atë up-- hapur
dhe lexoni atë.
Në qoftë se ne nuk e bëri veçanërisht kujdesen për njerëzit e lexuar atë,
ne mund të paketë edhe më efikase në forma që më vonë do të mund të unpacked
apo që më vonë mund të jenë të ekzagjeruara.
Dhe kjo kursen 80% të Hapësira që objektet juaj mund të
të marrë në qoftë se ju ka shkruajtur ato shkrim dore.
>> Ju e quani turshi shumë e njëjta way-- hale, ngarkesës,
dhe pastaj ju merrni gjërat tuaja prapa.
Pra, nëse ju shkruani shumë Programet e shkurtër Python se
duan të kursejnë shtetit, dhe pastaj lexoni ato përsëri më vonë, gjëra të tilla si kjo
janë miqtë tuaj.
Që ju mund shumë lehtë hale ato si JSON.
Shumica e objekteve Python mund të hale jashtë JSON
nëse ka ndonjë shpresë që strukturalisht ata mund të përfaqësohen në këtë mënyrë.
>> Këto janë vetëm maja e ajsberg në modulet që janë të dobishme.
Pra SYS, os, multiprocessing, janë lloj workhorses themelore për gjëra
ne kemi nevojë për të bashkëvepruar me file sistemi os.,
si os.isfile, os.isdirectory, os.makefile, këto janë miqtë tuaj.
Nëse ju doni për të bashkëvepruar me një lloj të veçantë fotografi,
JSON, turshi, CSV.
Nëse ju doni për të bashkëvepruar me web faqe, urllib për marrjen http
faqe. bs4-- BeautifulSoup-- kjo është një parser mrekullueshme për HTML.
Ju drejtuar atë në një HTML dhe ju merrni këtë objekt mbivendosur array tani,
të cilat ju mund të kaloj mbi Lookin, me si vetëm në kërkim të
nëse, është, në të, e cila është e madhe.
>> Ka një bandë e paketa për running--
për të bërë veçanërisht gjëra Mathy.
Pra, nëse ju doni të shumohen, anasjell, transformuar matricat,
numpy është përdorur nga njerëzit të gjithë bota për atë.
scipy është edhe më e dobishme mjetet në këtë drejtim.
mësuarit sklearn-- makine, të përpunimit të gjuhës natyrore,
super sende të dobishme, merr zbatuar në Python gjithë kohës.
>> Dhe përsëri, merr pak më të gjatë për write-- keq,
merr pak më të gjatë për të kandiduar, por arsyeja që inxhinierët e vërtetë tentojnë
Përdorimi Python është për shkak se ju kanë tendencë të jenë të bllokuar nga ju shkruar kodin, në vend
se kompjuterin tuaj running kodin.
Pra, nëse ju jeni duke shkuar për të shkruar një program, i cili shumë njerëz të tjerë
do të përdorin përgjithmonë, si Linux, ju
mund të shkruani atë në C. Nëse keni qenë shkuar për të shkruar një motor llogaritje,
ju mund të shkruani në Python nëse ju nevojitet për të ndryshuar atë çdo dy muaj.
Disa njerëz do të shkruani atë në C për shkak se ata janë të tillë.
>> Pra, ne kemi parë SYS importit si një mënyrë për të getting things
e gjetjes modul në programin tuaj.
Ju gjithashtu mund të importojë atë si një pseudonimi, në qoftë se ju dëshironi.
Përsëri multiprocessing është një dhimbje për lloji jashtë çdo kohë, në mënyrë të importuar si deputet
dhe pastaj çdo kohë që ju e përdorin atë në program,
ju do të thoni mp.process, ose çfarë keni.
Në qoftë se ju dëshironi të importit vetëm një gjë të vetme,
kështu urllib ka një gjë të quajtur kërkesë, kështu që ju vetëm mund të importojë atë.
Më vonë, ju nuk do të kërkoj atë si urllib.request, por ashtu si kërkesë
në vetvete.
>> Dhe ju mund të importojë gjithçka nga një modul në qoftë se ju dëshironi.
Kjo herë pas here nuk është një idea-- mirë kjo zakonisht nuk është një ide e mirë, në të vërtetë.
Sepse ju very-- sepse nëse çdo gjë në këtë modul ka një emër që ju
të kërkuar për të përdorur diku tjetër në programin tuaj, ju nuk mund.
>> Dhe kjo nuk është gjithmonë e qartë se kjo është e rastit.
Në mënyrë që të sigurohemi se atë që po bënin ishte e sigurt,
ju keni nevojë për të hapur moduli dhe të shohin të gjithë
nga emrat që përfundojnë në there-- të gjitha funksionet,
të gjitha variablave që jetojnë në këtë modul,
sepse ju jeni duke sjellë të gjithë ata në hapësirën tuaj lokale.
>> Kështu që njerëzit e bëjnë këtë.
Është e rekomanduar në përgjithësi se ju nuk e bëni këtë.
Por njerëzit e bëjnë këtë të gjithë koha për shkak se ata janë
dembel dhe nuk duan të shkruani jashtë deputet.
asgjë, kurrë.
>> Gjitha këto flasin për modulet sjellë mua rreth në një bisedë të shkurtër
se si ju të hartuar programe në Python.
Hapi i parë është që të kontrolloni për të parë nëse dikush tjetër e ka bërë tashmë atë gjë,
ose bëhet 90% të sendit.
Shanset janë ata ndoshta kanë, dhe ju duhet të shkoni merrni gjë e tyre dhe për të drejtuar atë.
Apo shkruani një këmishë rreth tij për të përshtatur atë në qëllimin tuaj.
Është vetëm pasi që ka dështuar që ju do të atëherë
shkoni në dhe write-- fillosh të mendosh rreth si ju do të vënë këtë gjë së bashku.
Ka shumë gjëra atje, dhe kjo është
një prej më të dobishme gjëra në lidhje Python.
Ashtu si gjuha është elegante, gjuha
është e lehtë për t'u përdorur, por edhe për shkak është aq elegante dhe të lehtë për t'u përdorur,
njerëzit kanë qenë duke e përdorur atë për një kohë të gjatë dhe ka një shumë gjëra
nga atje se ju mund të shfrytëzuar për përdorimin tuaj.
>> Pra, sundimi i fundit i Python është, dikush tjetër tashmë ka shkruar ndoshta
një modul për këtë, dikush tjetër e ka tashmë
ndoshta shkruar një bibliotekë për këtë.
Para se ju të përpiqet të bëjë një gjë, shikoni për të parë nëse ajo është zbatuar.
Kjo nuk është se e vështirë.
Të gjitha modulet që kam vënë para, ndoshta me një përjashtim,
vijnë para-instaluar në çdo instalimi standarde Python.
Dhe kështu me një thirrje për importojë çfarëdo, ju
kanë të gjithë që funksionalitetit në majë të gishtave tuaj.
>> Filluar ta përfundojë këtë flasim, ka disa gjëra
që unë e kam lënë si kuti e zezë dhe lloj i glossed mbi,
dhe ka një të bardhë disa gënjeshtra që unë kam tha se për hir të ndershmërisë,
Unë do të të paktën pika në këtu, edhe në qoftë se unë nuk do të
shkoni super thellë në të gjitha prej tyre dhe shpjegimet e tyre teknike.
>> Një shumë prej gjërave që unë e kam quajtur magji
është ajo që njerëzit e tjerë do të thërrasë kundërshtojnë programimin e orientuar.
Pra, ka shumë things-- kështu që variablat janë shumë shpesh nuk
bytes thjeshtë ulur në, kujtesës, por janë shumë të komplikuara
objekte që kanë të brendshme shtet në lidhje me funksionet dhe shumë
Variablat e fshehura, shumë funksionalitetin e fshehur, e cila
ju lejon të kthejnë ato në vargje, e cila ju lejon të iterate mbi ta.
Dhe nëse ju jeni writing-- dhe arsyeja që ata
kanë të gjithë këtë funksionalitetin e pasur është për shkak të people--
arkitektët e language-- kanë shkuar
përmes dhe për çdo standardi objekt, të vënë në funksionalitetin
të thonë se kjo është se si kjo është e se si kjo do të operojë
në qoftë se dikush dëshiron të iterate mbi të.
>> Pra, çdo gjë që dikush mund të ndoshta duan të iterate mbi,
ka shkruar logjikë në me dorë se si ju jeni
menduar për të iterate mbi atë objekt.
Çdo gjë që ju mund të dëshironi hedhur në një varg ka shkruar logjikë.
Ky është funksioni që ju të telefononi në qoftë se ju doni të hale këtë jashtë në një varg.
Kjo është arsyeja pse ju mund të thërrasë len në gjëra, kjo
është arsyeja pse ju mund të telefononi në, kjo është pse ju mund të telefononi në qoftë se në të çdo gjë
që ju do të duan të, sepse ata të gjithë janë të mbante me ta,
teknike, know-how për të bërë këtë.
>> Kjo është diçka që unë jam super nuk do të shkojë në.
Por për gjë në listë është Subtly ndryshe nga stili C për sythe,
dhe ju mund të lexoni të gjitha në lidhje me atë në në internet në qoftë se ju jeni të interesuar.
Ka një anë të errët për të gjithë për këtë, që unë përmenda,
kështu që nuk ka dy gjëra.
E para është se ky objekt orientuar programimit shton një shumë të lart
për gjëra të rastit, kështu që ju të përfundojë duke përdorur një shumë më shumë memorie;
ju deri në fund duke përdorur një më të vogël herë se ju do të ndryshe.
Other-- por më shumë Ana fshehtë të errët në këtë
është, në qoftë se gjërat vetëm të veprojë si ju doni ta
pa ju pasur nevojë të mendoj super e vështirë nëse kjo duhet të jetë një int
apo nëse duhet të ketë një noton, ajo mund të jetë se këtu
ju të prodhojë një int por mbi këtu ju mendojnë por ata do të always-- keq,
ajo mund të jetë se këtu ju të prodhojë një noton,
por kur ju merrni në pjesën e dytë e programit tuaj, ju jeni duke menduar,
oh mirë, por ata do të gjithmonë të kalojë më një int.
Dhe në qoftë se ata nuk e bëjnë, është e mundur që ju wedged diku,
nëse ju përpiqeni të përdorni atë për të indeksit në një grup, ose çfarë keni.
>> Pra, një nga më të vërtetë gjëra të dobishme në lidhje me C
ajo ju detyron të mendoni me të vërtetë vështirë para se të bëni any--
para se të sjellë ndonjë variabël në ekzistencë, si ajo që
është lloji i kësaj variable.
Dhe ajo do të ketë se lloji për të gjithë kohën.
>> Kjo nuk eshte e vertete Python, dhe në fakt, ju
can-- në qoftë se ju jeni vetëm lloj i shkon me vesh,
dhe ju bëni disa vendime një mënyrë në një vend,
dhe disa vendime të një mënyrë në vend tjetër
pa vënë gjëra mjaft prapa skenat në vend tjetër
për të kapur gjërat siç duhet, ju mund të merrni disa gabime shumë të çuditshme.
Dhe programi mund të mbani drejtimin për një kohë shumë të gjatë, sepse kjo është
duke bërë një punë shumë e për të thënë, mirë kjo gjë mund të veprojë në këtë mënyrë,
kështu që unë jam duke shkuar për të drejtuar në këtë mënyrë.
>> Dhe në fakt, fakti se ajo shtyn përpara përmes një shumë të gabimeve të vogla
do të thotë se, shpesh kur një gabim në fakt është e keqe
dhe ju bëni në të vërtetë doni për të rregulluar atë, ajo përfundon milje away-- programit
përfundon duke ndaluar milje larg prej kur keni pasur gabim tuaj.
Dhe kështu një gjë që ne do të dëshironim programe për të bërë, sometimes-- një gjë
që ne do të dëshironim programe të bëjmë kur ne jemi debugging
është dështojnë me zë të lartë dhe të dështojnë shumë shpejt kur diçka shkon keq.
>> Python është shumë e keqe në këtë.
Python është shumë i mirë në jo dështuar dhe kodrina përpara
përmes gjërave të papritura.
Pra, kjo është e dobishme për të, kur ju jeni me shkrim programe të vogla.
Kur ju merrni e komplikuar mete ndonjëherë
merr një kohë të gjatë të vë në lojë e tyre jashtë.
>> Pra, ka një anë të errët për të gjithë për këtë, si vetëm ajo punon.
Ajo thjesht punon si ju do të presin që ajo të.
Përveç se kur kjo nuk ndodh, ju të përfundojë deri në një vend krejtësisht të ndryshme
dhe duke u përpjekur të kuptoj se ku ajo ishte se ju shkoi keq.
>> Mbledhja e mbeturinave is-- kështu një gjë që ju do të vini re
është se asnjë nga këto gjëra që Unë e kam sjellë në existence--
këto vargjeve, këta fjalorë, këto objekte, këto files-- nuk merrni liruar.
Nuk kishte asnjë thirrje për pa në ndonjë prej kësaj bisede.
Dhe që ndodhet C-krah, sepse ne kurrë nuk e mori në këto gjëra.
>> Por në Python-krah, nuk ka një të lirë.
Gjërat të merrni automatikisht liruar kur Python
mendon se ju nuk jeni në kërkim të tyre.
Kjo nuk është me të vërtetë e mirë liruar gjëra që ju mund ndoshta ende të jetë në kërkim në,
por kjo do të thotë se në qoftë se keni qenë do të ndajë këtë gjë të madhe,
dhe ju jeni si, oh Unë jam bërë me këtë tani,
është e vështirë për të të treguar Python se ju jeni bërë me të tani.
>> Ju mund të vendosni ndonjëherë që ndryshueshme të jetë askush,
dhe pastaj shpresoj se përfundimisht koleksionist plehrave
vjen përmes dhe pastron atë.
Por përsëri, ju nuk e bëni kanë kontroll mbi atë.
Dhe një nga arsyet që njerëzit përdorin C për të vërtetë performancën gjëra kritike,
është kjo aftësi për të vërtetë e di kur e kujtesës është e ndarë
dhe kur është e liruar, dhe kanë një shumë të kontrollit mbi duke thënë:
Unë jam duke përdorur jo më shumë memorie se kam nevojë.
E cila është diçka që Python nuk është se e madhe në.
Audienca: Unë mund të një pyetje të pyesni?
Çfarë keni të thoni me zë të lartë të dështojnë?
>> Ross RHEINGANS-Yoo: Pra, nëse diçka po ndodh gabuar
dhe ju jeni në debugging mode, ju do shumë shpesh
dua programi juaj të ju them ku pikërisht është e shkuar keq,
dhe jo vetëm në heshtje të ndalet running.
Por ju do të në fakt për të shtypur nga të gjitha llojet e informacionit në lidhje me
si, këtu ishte kjo.
Kjo gjë ndodhi Nëse ju jeni shtypjen një wen-- qoftë se ju jeni drejtimin e një web server--
>> Audienca: [padëgjueshme]
>> Ross RHEINGANS-Yoo: Po, në qoftë se ju jeni drejtimin e një web server,
kjo është ndonjëherë keq në qoftë se ju jeni gjithmonë hidhni gabime,
dhe ju jeni duke thënë, mirë që nuk punojnë.
Unë jam duke shkuar për të ndaluar.
Unë jam vetëm duke shkuar për të injorojë ajo dhe për të mbajtur në vazhdim e sipër.
Sepse atëherë ju mund të merrni në qindra nga këto gabime dhe nuk shohin ato.
>> Ajo me siguri do të jetë e dobishme për qëllime debugging
në qoftë se çdo herë web serverin tuaj e bëri një gabim, keni pasur shënime të qëndrueshme të cilat.
Ndoshta ju edhe doni programin për të ndaluar, në mënyrë që këto të dhënat
A nuk merrni varrosur nën gjërave.
Por përsëri, kjo është në mënyrë debugging.
>> Shpesh në mënyrë të prodhimit, Bota është pak më ndryshe.
Dhe në Scripts vogël se unë jam running, ku gjëja që kam thënë për të bërë
mund të jetë vetëm pak jashtë nga ajo që unë do të doja që ajo të bëjë,
pastaj lloj i shtyn përmes Gabimet është diçka që ju mund të dëshironi.
Dhe në këto raste, sigurisht Python vërtetë fiton fillon e saj.
>> Gjëja e fundit që unë nuk të flas në this-- që unë nuk flas për
por mund të jetë me të vërtetë egërsuar i pari herë ju keni një nga këto gabime,
dhe të dytë dhe të tretë dhe të katërt herë ju keni një këto gabime.
Python, e përmenda që përdor hapësirë ​​të bardhë
për të ju tregojnë se çfarë niveli i vulë dhe çfarë bllok funksional ju jeni në,
ajo trajton tabs dhe hapësira të ndryshme.
Pra, nëse ju tab mbi katër, dhe pastaj linjë tjetër ka katër hapësira,
edhe në qoftë se ata shfaqen si njëjtën sasi në editor tuaj,
Python nuk i trajton ata të njëjtën gjë.
>> Në fakt, Python trajton tabs dhe hapësira të tilla si nafta dhe ujë.
Ata janë gjëra vetëm të ndryshme.
Nuk ka asnjë të veçantë gjatësinë që një tab është,
kështu që nuk është si një skedë është e barabartë me 8 hapësira, dhe kështu ju do të merrni rreth tij
ne ate menyre.
Si, kur ai thotë, çfarë Niveli i hapësirë ​​të bardhë unë jam në,
ajo është në të vërtetë duke kërkuar për një model i hapësirave dhe tabs.
Dhe kështu, mënyra më e mirë për t'u marrë me këtë është që të përdorni përherë Spaces gjithë kohës.
>> Dhe në fakt, në Cloud9 IDE dhe CS50 IDE,
tu fut Tab kyçe katër hapësira në vend
e një tab, e cila është e dobishme super.
Edhe pse përsëri, në qoftë se ju ka shkruajtur një Python program me skeda që do të jetë mirë,
kjo është vetëm në qoftë se dikush shkoi dhe u përpoq për të shtuar
një linjë të vetme për programin tuaj që kishte katër hapësira për çdo tab,
ajo do të prishej.
Dhe kjo do të thyejnë në mënyrë të që me të vërtetë nuk është e dukshme.
Edhe pse gabimit aktual Mesazhi që ai hedh
ka të bëjë me të reja indent nuk pritet këtu,
or-- nëse ajo është duke folur rreth pikat dhe kjo duket si ajo është e gabuar,
kjo është ndoshta për shkak ka një problem tab-hapësirë.
Ata janë ende egërsuar të korrigjoj.
Gjithë më i madh në kjo bisedë, të cilën unë nuk e bëri
merrni për të, sepse është e vërtetë një, temë e komplikuar delikate,
dhe nuk ishte e nevojshme për të bërë ndonjë nga gjërat që ne kemi bërë deri më tani,
janë një koncept të quajtur tuples.
Ata janë atje shumë si më vargjeve që ju nuk mund të modifikoni.
Ata të mësohen të gjithë vendin, sepse ato janë të dobishme për shumë gjëra
vargjeve që nuk janë të dobishme për të.
>> Por në qoftë se ju do të donte për të bërë një grup, dhe pastaj premtojnë përkthyes që ju
kurrë nuk do të duan për të ndryshuar atë thing-- në fakt, në qoftë se ju dëshironi të modifikoni,
ju do të bëni një të ri me i ri vlerat në it-- ato janë tuples.
Në vend se duke prodhuar ata me kllapa katrore,
ti prodhojnë ato me kllapa të rrumbullakëta.
Pse ju do të përdorni këto gjëra, është pak e një pyetje. .
E vetmja gjë që unë do thonë në lidhje me atë është që ju
mund të përdorin tuples si Indekset për fjalorë.
Ju nuk mund të përdorni vargjeve si Indekset për fjalorë.
Dhe pse është, përsëri, teknike dhe Unë nuk jam duke shkuar për të kandiduar në të.
>> Pset që unë nuk kam prekur në këtë bisedë është pset6.
Kështu që këtu është se si ju 'd zbatuar a-- këtu është
si ju do të zbatojë pset6 në Python.
Duke mbajtur parasysh Python cikli dizajn, gjëja e parë
që ju të bëni kur ju jeni Programet shkrim është kontroll
për të parë nëse dikush është bërë atë tashmë.
>> Në fakt, në qoftë se ju doni të serve-- Apache 50
e bën përafërsisht këtë, përveç se nuk ka ardhur
standarde i instaluar në makinat Linux.
Python bën, dhe Python Serveri thjeshtë http bën si.
Nëse ju jeni ndonjëherë në një makinë Linux, ose jashtë Cloud9 IDE e CS50
dhe ju do të doja të shërbejë këtë aktuale Lista në një port të veçantë,
python-M SimpleHTTPServer Porti i shërben ajo.
Ju gjithashtu mund të importojë server të thjeshtë http
dhe atë e mori një shumë të funksionalitetit nëse ju doni të rregulloje atë, ose të ndryshojë atë,
ose janë drejtuar it-- shfrytëzojnë atë për të drejtuar shërbimet serverin tuaj.
>> Pra, kjo është Python në një fjalë.
Dhe kjo ka qenë CS50.
Faleminderit.