ROSS RHEINGANS-YOO: Sveiki, es esmu Ross.
Un tas ir CS50 seminārs.
Tā aizvedīs jūs no programmēšanas C līdz plānošanas Python.
>> Python ir skriptu valoda.
Tas ir lielā mērā, piemēram, C sintakse, lai gan daži
no tehniskās detaļas cik tas sintakse izpaužas izpildīts
nedaudz atšķiras.
Tas ir mazāk spēcīgs par C dažos veidos.
Tas ir mazāk izteiksmīga par kur tieši savā datorā
atmiņa izpaužas izklāstīts, kā tas izpaužas izklāstīts,
kad tā kļūst brīvību, un šie veidu lietas.
>> Tas ir vairāk noderīgs, nekā C dažos veidos, jo tā ir vieglāk programmēt in.
Valoda ir, daži cilvēki, vairāk intuitīvi.
Un tiešām, mērķis ir tas ir ātrāk, lai programma
un potenciāli lēnāk izpildīt.
>> Tagad, ja jūs domājat par laika daudzums
jūs pavada uz jūsu pēdējā Problēma noteikti rakstīšana
jūsu kods pret daudz laika pavadi
Jūsu pēdējā problēmu noteikt izpildes savu kodu,
jūs gribētu iedomāties, ka valodas kas bija divreiz tik strauji, lai rakstītu,
un divreiz lēni izpildīt, varētu būt uzlabojums, salīdzinot C dažos veidos.
Protams, ja jūs mēģināt rakstīt mazas programmas darīt sīkumiem,
Python ir noderīgs valoda izvēles.
>> Un beigās, šī seminārs, es ceru, ka jūs
varēs veikt izvēle nākotnes projektiem
par to, kura valoda ir pareizi lietot, nevis ideja
ka viena valoda ir vairāk labot visu laiku.
Dažas lietas, par ko ir seminārs.
Seminārs nav paredzēts Iemācīt jums Python no nulles.
Python ir ļoti līdzīgs C, un es esmu pieņemot
ka tu esi CS50 students, vai kāds ar līdzīgu zināšanas ar C.
>> Ja tu esi students CS50 ap problēma noteikti 6,
Tātad jūs esat redzēt daudz lietas C, es došu jums
galvenās atšķirības, un dažas no lietām
kas padara Python atšķirīgs un īpašs un noderīgs,
bet es neesmu gatavojas iet kāda programmēšanas valoda ir
un kā rakstīt programmas.
Tomēr šis seminārs būs iemācīt jūs rakstīt Python programmas
Ja jūs esat viens no tiem nedaudzajiem grupām.
Atkal mēs apskatīsim, kā jūs varētu īstenot psets--
kas būtu 1-6 Python-- un sniedz norādes
oficiālajā dokumentācijā turpmākai izmantošanai.
Otra lieta, kas ir svarīgi par to, kā šī diskusija tiek piešķirts,
Šis video būs online, pieklājīgi no CS50,
tāpēc jums nevajadzētu justies kā Jums ir nepieciešams veikt piezīmes.
Jūs vienmēr varat doties atpakaļ un meklēt pie tā vēlāk kā atsauce.
Papildus slaidi ir pieejami tieši tagad
šajā vietā, kas būtu ņemt jūs Google doc.
Tas ir nedaudz saīsināts variants no tā, ko es esmu parāda uz ekrāna.
>> Viens uzmanīgiem brīdinājumu pirms mēs ielēkt, Python 3
ir citu valodu Python 2.
Tie izskatās daudz pats; tur ir ļoti nelielas tehniskas atšķirības
kas radīs programmas uzrakstīts Python 2
nav, lai varētu tikt izpildīts ar Python 3 vidi.
>> CS50 ierīce nāk ar Python, pēc noklusējuma tā izmanto Python 2.
Jūs varat pārbaudīt šo ierakstot savu komandrindas
python --version, kas būtu izeja 2.7.6 par pašreizējo ierīces.
Izmēģiniet Python 3, kas nav strādāt ierīces,
ja Python noklusējuma 2.X.Y vai nu pēc ierīce vai uz savu mašīnu.
Jums vajadzētu nomainīt Python 3 jebkurā laikā Šajā runāt, ka es rakstīt Python.
Ja jūsu mašīna ir darbojas 2 Pēc noklusējuma tips
Python 3, lai spētu reāli sekot līdzi un izpildīt šīs lietas.
>> Bez tam, es ņemšu punkts esat oficiālās resursiem tagad.
docs.python.org/3--~~V uzmanīgs ka tas ir 3., nevis 2--
ir noderīgas atsauces.
Apmācība, jūs caur daudz no tās pašas lietas
ka es esmu dara tagad, izņemot teksta formā.
Atsauce ir noderīgs kā Lūgums valodā,
un Standard bibliotēka sniedz Jūs daži paplašinājumi
ar papildu funkcionalitāti.
>> Tik ļoti pirmais Python programma.
Kreisajā pusē mums ir standarta C, pa labi, mums ir Python.
Jūs, iespējams, ir atzinuši šī problēma, tā ir
viens no pirmās problēmas kopas CS50, un tie
atrisināt to, izmantojot to pašu risinājumu.
Tagad, iemesls, ka mēs esam Aplūkojot šīs blakus
ir tik mēs varam apskatīt sintaktiskie atšķirības.
Viens no ziloņiem telpā kas jums varētu būt pamanījuši tiesības
pie nūja, ir tas, ka Python neietekmē galvenā funkcija ietīšana ap kodu.
Tātad C, rakstīt ķekars failus, jūs saistīt tos kopā,
un programma sākas izpildes Šī lieta sauc int galvenais.
>> Python, jūs rakstīt failu, kuru, izpildīt failu,
Programma sākas izpildes augšpusē failu.
Tātad, tas notiek, lai sāktu augšpusē faila
iet uz leju, līdz tas atrast kaut ko citu.
Ja tas atrod funkciju definīcija, tas nav reāli izpildīt šo kodu,
tas vienkārši definēt funkciju.
Bet šeit, kad pirmais Programma ir n ir vienāds ar 10,
Pirmā lieta, ka šī programma būs jādara, ir izmantot šo vērtību 10
un noteikt to par mainīgo sauc n.
>> Runājot par šīs līnijas, vienu no cits things-- sorry-- šis
nozīmē, ka C programmu, jūs rakstīt tos,
jūs padarīt tos, kas atsaukties dažas šķindēt komandas,
un tad jūs varēsiet palaist rezultātā izpildāmā.
Python programmu, palaižot Teksta file-- šo mario.py varētu
būt šo failu, ka es tikko parādīja you-- jūs darbināt šo failu
un jūs izpildīt, un saturs tajā
tos izpildīs Python tulks.
To var izdarīt jūsu IDE.
>> Tātad, ja man ir Sveiki failu, kas vienkārši ir šo saturu.
Tas ir tiešām Python 2, ne Python 3, tāpēc nav
jāuztraucas par sintaksi tagad.
Bet es palaist Python, uz hello.py, un tas darbojas.
>> Vēl viens veids, ka es varu izmantot Python ka Es ne galā ar tik daudz šajā runāt,
ir, ja es vienkārši ierakstiet Python, tas pilieni mani tādā vidē, kur
Es varu barības to Python pozīcijai.
Tātad šeit, ja es tipa print telpa "sveiki, pasaule".
Ierakstiet ienākt.
Tas būs iespļaut mani, ka atpakaļ rezultātus ka indivīds line nekavējoties.
>> Tas varētu būt noderīgi.
Šajā runāt es darīšu lietas par slaidiem.
Un tā jūs varēsiet sekot kopā vai nu šeit, vai rakstot
faktiskie failus un tad izpildot tos.
>> Bet, atgriežoties pie šī kods, cita lieta
ka Jums varētu būt noticed-- labi, tur ir
divas lietas, kas jums varētu paziņojums par šiem blokiem.
Pirmais, drīzāk ikdienišķa, ir tas, ka Python nav trailing semikolu.
>> Semikoliem ir obligāta visur un nekaitīgs visur.
Jūs varat pievienot tos.
Tas var padarīt cilvēkus, kas raksta Python par dzīvojamo ķiķināšana pie jums
aiz muguras, jo viņi nav nepieciešams.
Viņi bieži vien liecina par to pārcēla no C. valodas dizaineri
liekas, ka tas ir vairāk skaidrs, šādā veidā un ka tas nav nepieciešams deklarēt
Katru reizi, kad jūs galu līniju.
>> Vēl viena dīvaina lieta par šo n tas nav veids pievienots.
Viens no burvju gabalu Python-- un es esmu gatavojas to nosaukt maģija,
bet ir ļoti tehniski iemesli, kāpēc tā
works-- vienu no burvju gabali Python
ir tā, ka mainīgie var paplašināt vai sarauties jāsatur neatkarīgi dati
veidu jūs to vēlaties.
>> Tāpēc tas ir 10.
Ja vēlāk uz leju es piešķirts šis n 0.5, tas būtu nepieciešams, ka 0,5.
Nav svarīgi, ka tas ir int šeit un peldēt tur, kaut ko, kas izmanto šo n
būs, vairāk vai mazāk, varēs elst kopā, ja tā izpaužas vai nu no tiem.
Ja vien tur ir dažas ļoti reāls Iemesls, kāpēc tā nevar izmantot datus
tips, kas n pašlaik ir, kurā brīdī tas saņemsiet
iesprūstot un mest kļūdu, un šīs lietas veida.
>> Bet šeit, Python nav īsti aprūpi, ko
tas ir, ka es esmu gatavojas stick šajā teikums, piemēram, jūs vēlaties šo lietu?
Šī lieta, kas?
Jā, tas ir sava veida lieta.
Es stick to beigās.
Tas būs problēma vēlāk, ja kāds, kurš vēlas izmantot šo beigas
nevar rīkoties ar to.
Tas ir viens no galvenajiem atšķirības starp Python un C
kas padara to viegli uzrakstīt ļoti lielu C programmas
un padara to vieglāk rakstīt ļoti mazs Python programma.
>> Par sintakse nav ļoti atšķirīgi, ko tā dara.
Tas ir nedaudz atšķirīgs jo, kā tas ir izteikts.
Tātad tas ir ļoti, ko sauc Pythonic, veids, rakstot to.
par rindas diapazonā (n), tas ir diapazons no skaitļiem no 0 līdz n,
ietverošs uz grunts un ekskluzīva uz augšu.
Tāpēc tas ir no 0 līdz n-1, kas ir tieši to, ko C kods dara,
izņemot tas ir daudz vieglāk apskatīt iespējams.
>> Attiecīgais bloks ir ne ieskaitīt ar lencēm,
nevis tas, kas pie Šajā iespiedumiem.
Tātad visas šīs līnijas ir četras telpas virs pa labi,
vai, piemēram, par ziloņu platumu.
Un tie ir tie, kas ir tiks izpildīts šis.
Ja es izjaukt iegriezums par šo un I
virzīt šo drukāt atpakaļ oriģināls atkāpes,
ka print atstās uz cilpas.
Atšķirībā no C, kur šeit es tiešām nepieciešams pārvietot, ka slēgto lencēm apkārt.
>> Tas nozīmē, ka jūs nesaņemat kļūdas ka izlēkt pie jums, jo jums
likts lencēm nepareizā vietā.
Tas nozīmē, ka jūs saņemsiet kļūdas ka izlēkt pie jums, jo jums
atkāpi līniju nepareizi.
Tātad tas padara padziļinājumi super uzmanīgiem.
Cerams, ka jums tika super uzmanīgiem ar savu iedobi anyway,
un tā tas nav, ka daudz vairāk par slogu.
>> Bet pamatnoteikums Python, un mums būs pāris no šiem
ka mēs iet cauri cauri kurss runāt,
ir mēģināt dabas sintakse Pirms meklē kaut ko uz augšu.
Tātad šī sintakse, lai šis skaitlis diapazonā,
ir ļoti atšķirīga ziņā stilā.
Daudz lietas Python mēs redzēsim lietojat šo formu.
>> Un tā, ja jūs nākt klajā ar jaunu objektu, kas jums
domāju, ka jums vajadzētu būt iespējai atkārtot nekā tas, šajā formātā,
Izrādās, tas, iespējams, atbalsta šo formātu.
Mēs nebrauksim, lai iet super dziļi tehniskie iemesli, kāpēc tas ir taisnība.
>> Bet tas ir noderīgi, intuīcija, lai būtu kad jūs tuvojas Python programmas,
ka šī lieta ir tikai dodas uz darbu.
Pamēģini.
Boot up Command Line Tulks, redzēt, ja tā darbojas,
pāriet ar lietām, pirms jums pat nepieciešams atvērt Google un teikt,
Kāda ir sintakse Tas īpaši lieta?
Daudz Python jūs varētu atklāt tikai mēģinot.
>> Tas, ja ir vēl vairāk līdzinās uz C tad fors ir.
Ņemiet vērā, ka tur nav iekavas.
Iekavās ir, atkal, nekaitīgs bet nevajadzīgs.
Ir resnās zarnas beigās tāpat kā uz cilpas,
un atkal, relatīvais bloki ir atkāpi nevis ieskaitīt ar lencēm.
Tas vēl ir sākotnējā līmenis iespiedumiem,
un tā attiecīgā bloka atkāpi no jauna.
Tie darbs tieši tā, kā viņi dara C.
>> Tas ir tiešām ļoti daudz to pašu.
Atkal, drukāt zaudē vienu rakstzīmi off printf Jums iet dažas stīgas.
Izrādās, stīgas var vai nu jāmarķē off
ar vienu pēdiņām vai pēdiņās.
Nav atšķirības, izņemot to, ka iekšpusē
par vienu pēdiņām jūs varat izmantot pēdiņas ar pamest,
nevis ņemot aizbēgt viņiem visiem.
Un iekšpusē dubultās pēdiņas, jūs var izmantot vienu pēdiņām ar pamest
bez aizbēgt viņiem.
Ja jūs vēlētos, lai sajauktu tiem, jūs varat noteikti
meklēt internetā, kā to izdarīt.
>> Jūs pamanīsiet, ka vairāk nekā šeit, Es esmu pieņemts beigās = šī lieta.
Tas ir piemērs izvēles arguments, kas ir viena no tām lietām
ka Python atbalsta to, ka padara to diezgan noderīgi.
Tātad print patiesībā ir daudz argumentus, kas parasti
iestatīts uz to noklusējuma vērtība, bet šeit es esmu
nolēma ignorēt vienu sauc beigas.
Iemesls, ka man ir ignorēt to ar tukšu virkni
ir tas, ka drukas Python, ar noklusējuma, izdrukā jaunu līniju
pēc tam tas, kas jums teicis to too.
>> Tātad šis hash ir faktiski gatavojas izdrukāt hash jaunā rindā.
Un, ja es nevēlos hash izdrukāt jauna līnija pēc tam, tad man jāsaka
nedrukāt vienu.
Bet, tomēr tā, tad viena pēdējā lieta, kas Šī programma ir pazudis, ka viens ir ir
iekļāvuma augšpusē.
Print cep uz Python tā būtībā ka tur nav galveni vai moduli
kas jums ir nepieciešams, lai ietver, lai gan, ja gribēja
iekļaut citas lietas ar Python skriptu,
Es varētu darīt to ļoti līdzīgā format-- vārdi ir tikai nedaudz atšķiras.
>> Es teicu, ka mēs nevajag galvenais šeit,
jo Python sākas izpildes augšpusē.
Ja es gribēju, lai wrap šo funkciju, es
darītu to kā this-- I teiktu def funkcijas nosaukumu,
argumenti varētu iet šeit un mēs redzēt dažus no tiem vēlāk, resnās zarnas,
un tad atkal, tas Visa ieskaitīt bloks
ir tas, kas ir operatīvais bloķēt šai funkcijai.
Tātad šis ir definīcija no funkciju.
Un tur ir deklarācija, tad uz leju šeit, es varu tikai aicināt funkciju.
Un atkal, programma tulks, sākot no augšas,
redzēs tas ir definīcija.
Tas nebūs izpildīt šo darbību, līdz tā dabūt šeit, un tad tas ir, piemēram, oh
Tagad jūs esat to sauca, es domāju, man vajadzētu izpildīt to.
>> Lieta, kas ir ļoti bieži redzēt Python failus,
īpaši Python failus, kas tiek izlaists sabiedrībai
un attīstīta pēc-- un attīstīta un uzturēta, ir kaut kas no šīs veidlapas.
Tas ir basically-- tāpēc Python, sākat augšpusē
un tad jums izpildīt leju, lai apakšā, Es, ja man tikko bija Mario sauc šeit,
tad kāda laika es iekļauts šo failu cita lieta, jo es gribēju, lai izmantotu
ir Mario funkcija, ka citu failu būtu arī šo aicinājumu uz Mario tajā.
Un, kad es skrēja šo failu, tas varētu likt Mario.
>> Tātad, tas ir iespējams, ka es tikai vēlas, lai palaistu šo, ja es esmu patiešām
izpildīt šo konkrēto failu.
Un tā es varētu wrap šo izturēties idioma kā šis, kad es saku,
ja sauc šo izpildes vide ir galvenais,
tad es gribu to daru.
Citādi kāds cits nevar use-- ietver manu function--
mans failu, un tikai, lai iegūtu piekļuve šīm funkcijām
bez palaist lietas ka es gribu izpildīt šajā failā.
Tas ir, atkal, pēc izvēles bet ļoti bieži.
>> Šīs lietas ir entirely-- ir tieši tas pats starp C un Python,
noteikti 3.
Es domāju, ka 2., sadalīšanu operatora dažreiz dod jums atpakaļ pludiņiem, kad
Jūs darbojās ints, un nu jūs vēlētos, ka vai jums nav.
Bet plus, mīnus, un laiki strādā tieši tāpat kā jūs gaidījāt,
atskaitāmās pāri nedaudz vairāk veidus.
Tātad jūs varat reizināt ar pludiņiem Ints, un tie veidu lietas.
>> kopa darbojas tieši tāds pats.
Jūs varat izmantot divas vienādas zīmes.
inequals-- lielāks, mazāks nekā, šo veidu things--
ir nozīmes, kas Jūs esat iepazinušies ar tiem.
>> Ja C izmanto šos operatorus, Python izmanto nedaudz vairāk angliski
lasāma ones.
Tā vietā, divi, ampersands, jūs burtiski ierakstiet vārdu "un", "vai,"
vai nē."
Tāpat savā if-- savā nosacītie apzīmējumi,
mēs redzējām agrāk, ka šis sintakse C atbilst šo sintaksi Python.
Un tur nav daudz atšķiras tur, izņemot mazliet
no pieturzīmēm ap malām.
Atkal, kur C būtu cits ja, Python izmanto Elif,
bet tie ir pārsvarā virsmas līmeņa izmaiņas.
>> Atkārtojums, piemēram, tas bieži vien ir rakstīts šajā idioma Python.
Jūs varat ražot šāda veida lieta ar kamēr cilpa no ārpuses
ja jūs vēlaties, bet jūs protams, nav.
Un atkal, ja jūs vēlējās izdrukāt elementi no masīva
jūs varētu darīt to šādā veidā.
Viens no fun lietas par Python, lai gan,
ir tas, ka jums nav nepieciešams izmantot šo paradigmu,
un jūs varat izmantot nedaudz vairāk elegants viens.
Jūs sakāt par A nas.
>> Tātad, nevis iet šeit un darbojas vairāk nekā indeksiem,
un tad izvelkot individuālie elementi,
Jums pateikt par to faktiski tikai sabraukt pašiem elementiem.
Un tad ko jūs darāt iekšā var darboties tieši
par elementiem, kas ir diezgan jautri.
Un mēs see-- mēs izmantosim ka idioma atkal un atkal
kā mēs staigāt pa kodu.
>> Tas ir, atkal, piemērs par kaut ko, ko es ņemšu
zvaniet Python maģija, lai gan ir ļoti tehniski iemesli, kāpēc tā darbojas.
Un tur ir tehniskas lietas, kas nepieciešams, lai būtu patiesība par masīvu, lai
lai tas darbotos aiz ainas.
Šī lieta ir, ka lielākā daļa veidi ko jūs gaidījāt šo darbu
ir bijusi šī īstenoti jums iebūvēto valodā.
>> Vēl viena lieta, ka tas būtu jauki ja tas strādāja katrā valodā,
bet ir daži iemesli, kāpēc tā nevar, drukāt šī virkne reizes šis numurs.
Izrādās Python, tas dara tieši Ko jūs vēlaties, kas ir tikai jautri,
un nozīmē, ka mēs varam faktiski samazināt šo programmu, vēlreiz mario.c.
Nevis atkārtojot daudz, mēs varam tikai teikt, es gribu kaut kādu telpu skaitu,
Es gribu skaitu hashes, un daži hashes beigās.
Un atkal, mēs izmantojam šo formātu.
>> Lūk, mēs esam kas iet mainīgs šādā veidā.
Atkal, mums nevajag teikt kāda veida mainīgo tas ir,
un vienīgā reize, kad mēs saņemt kļūdas ir pie palaist laikā.
Kad kāds mēģina nodot kaut ko,
tas būs stājies funkciju tikai naudas sodu.
Ja mēs ķīļiem šeit, jo tas nav lieta, ka jūs varat izveidot diapazonus vairāk,
Es nopirkšu izpildlaika kļūda tur, un es ņemšu atkļūdot to, ka veidā.
Bet pa to laiku, man nav jābūt ļoti uzmanīgiem par to, ko
izpaužas pieņemts, tik ilgi kā faktiskajā izpilde tas viss darbojas ļoti tīri.
>> Es pat varētu darīt šo mazliet tīrāku
izmantojot noteiktu iebūvēto funkciju uz stīgām, kas ir piemērots tieši Justify.
Tas ir tikai noderīga funkcija atrodas ap bibliotēkā.
Tas ir dokumentācijā ja jums iet un meklēt to.
Un es saku, labi es esmu nāksies šī virkne, daži no hashes skaits,
un es gribētu, lai pamatotu tiesības it-- spilventiņu tā veic ar telpām, lai būtu šis garums.
>> Atkal, tas tiek sniegta dokumentācija, kas nes us--
Es tiešām klikšķu these-- kas dod mums mūsu otrā noteikuma
par Python-- standarta bibliotēka funkcija metodes ir jūsu draugi.
Un tas bieži vien ir vērts savu laiku lai iet meklē Nez
ja tur ir lieta, ka tikai tas.
Tur droši vien ir.
Ja jūs vēlaties, lai pad out virknes, ja jūs vēlaties
gribētu ņemt atpakaļ puse no virknes, ja jūs vēlaties
patīk meklēt, izmantojot virkni, ja jūs vēlaties, lai sagraut pāris lietas
kopā ar auklu ar komatiem starp tām,
Ir standarta bibliotēka funkcijas darot.
>> Un tas padara jūsu dzīvi vieglāk, ja jūs izmantojat tos
nevis izplatot viss par savu
piecās koda rindiņas šeit, piecas rindiņas kodu šeit.
Tas patiešām sākas pievienot līdz pat reālajā laikā.
>> Viens no interesantas lietas par to, kā tas izpaužas sauc.
Jūs pamanīsiet, ka tur ir dot lieta.
Man ir daži objektu pa kreisi, un tad es sauc dot funkcija.
Tas ir viens no paradigmām kas Pitons izmanto piestiprināšanai metodes objektiem.
Mēs runājam par to, ko šis ir ļoti īsi beigās,
bet zinu, ka mēs varam gan darboties lietas, ko pieņemtu šo lieta sakot dot
neatkarīgi, vai zvanot funkcija, kas notiek
ka objekts un daži citi argumenti.
>> Tātad šie ir abi veidi, lietas paveikt Python.
Un, vai konkrētais funkcionalitāte tiek ieviesta
šajā stilā, vai šis stils ir kaut kas jums
jāizskatās līdz jūs saņemsiet pakārt par kuriem viens tas ir iespējams nonākt.
Tur ir vairāk vai mazāk vienotāka filozofija aiz Python
ka jūs absorbēt galvenokārt rakstot daudz tajā.
Kādā brīdī, kad viena no šīm kaut kas tiks īstenota kā
kļūst dabas.
Tagad, tas ir tikai kaut kas Jūs uzzināsiet, kā jūs izrēķināt
katrs indivīds lieta.
>> Tātad standarta bibliotēka funkcijas ir jūsu draugi,
un tie ļauj jums rakstīt lietas, kas aizņem tik daudz vietas, tiešām drīz,
tiešām eleganti.
Un tas ir reāli iespējams, vairāk salasāms, es teiktu, nekā C programmas
tur.
Nemaz nerunājot par to, kas ir tik Īsumā jūs varat fit veselu ziloni
kosmosā, ka mēs esam glābti.
>> Vēl viena lieta, tas ir īstenot Mario tas ir dot C, kas, manuprāt
ir īsākais jūs varat saņemt to.
Tas nav get int, bet grūti kodi vērtība 10
tāpat, ka šis viens dara.
Izrādās, ka šis viens pulksteņi at 84 rakstzīmes, bet Python ir 64.
Un tas ir bezgalīgi daudz lasāms par šo atkritumu šeit.
Tātad Python ir efektīvāka kosmosā.
Tas ir nedaudz mazāk efektīva laikā, bet ne daudz.
>> Saraksti ir svarīga lieta Python.
Mēs neesam redzējuši viņus, bet viņi darbojas līdzīgi bloki darīt C.
Tātad šeit, jūs varat deklarēt tos, Jūs varat nodot tos lieta.
Tagad kvadrātu tur masīvs no šīm lietām.
Atgādināsim, ka mēs esam nav deklarēta kā veids, bet, ja mēs kādreiz mēģināt to izmantot,
kaut kas jūs gaidījāt, lai strādāt masīvu integers
gatavojas strādāt masīvs integers.
>> Šī ir lieta, kas jūs absolūti nevar
do C, jo atmiņa tas ir tik hands tālāk,
bet ir ļoti viegli darīt Python.
Ja es vēlos, lai mana masīvs būt lielāks, es varu pievienot elementu, lai to un tas ir labi.
>> Kas notiek aiz kulisēm?
Tulks dosies ārā un saņemt dažas atmiņas,
un varbūt tas saņemsiet mazliet papildus atmiņu,
tāpēc man nav tik man nav lai realloc katru reizi.
Bet cik daudz vairāk atmiņu tas ir nepieciešams?
Tas nav lēmumi kas jums ir, lai,
tie ir lēmumi, ka tulks gatavojas darīt.
>> Šeit mēs redzam diapazons var ņemt divus argumentus,
bet tas joprojām būs iekļaujoša no augšas, lai mēs pievienot 1 tur.
Tas ir idioma, kas ir vēl vairāk gudrs veids, kā rakstīt lietas, kā šis.
To sauc saraksts izpratne, un šeit ko mēs esam sakot
ir es gribētu likt i brusas par katru I vērtība šajā diapazonā.
Šī lieta labajā pusē varētu būt vēl viens masīvs, un šī lieta pa kreisi
būt kādu konkrētu funkciju kas varētu uzņemt i kā mainīgo
un dod man dažus rezultātu.
>> Ko es esmu gatavojas darīt, ir, Es esmu gatavojas būvēt
masīvs, kas ir visas šīs lietas katrai vērtībai šajā diapazonā.
Un tas ir super elegants, super īss, un tas ir ļoti skaidrs, ko tas nozīmē.
Tas ir viens no things-- tas ir atkal,
viens of-- ļoti simboliski no iemesli, ka cilvēki, piemēram, Python.
Ja jums patīk programmēšana kā šis, tad Python
ir valoda jūs vēlētos mācīties.
>> Un atkal, tur ir tehniski Iemesli, kāpēc tas darbojas.
Bet cik mēs esam bažas, mēs vairāk vai mazāk vienalga.
>> Tātad, ja jūs vēlaties, lai izdrukāt sarakstus, daži no tiem pašiem idiomas ir noderīgi.
Jo es šajā diapazonā, mēs varētu indekss cauri visām lietām
un pēc tam izdrukāt tos visus out.
Un jūs redzēsiet šeit len.
Ja esat kādreiz gribēja garums masīva, kas ir
ļoti viegli Python, tas ir ļoti grūti, jo C.
Tas izdrukāt tieši ko jūs gaidījāt to.
Mēs arī varētu, jo mēs esam redzējuši iepriekš, atkārtot pār elementiem masīvs
tieši, un tad tikai runāt par viņiem, nevis indeksu
atpakaļ masīva katru reizi.
>> Un tas ir lieta, ka jūs varat darīt.
Tātad C, ja jūs lūgt kaut ko piemēram, tas, drukāt teiktu,
tas ir masīvs integers.
Tas noteikti nav string, es nevaru to izdrukāt.
Python vairāk vai mazāk ir vienalga.
Tas ir tāpat, vai ir tā, ka es varētu vērsties tas ir string?
Jā, es darīšu to.
Un tāpēc es ņemšu tikai izdrukāt ka out.
Tas nozīmē, ka jūs varat darīt lietas like-- šiem
ir lielākā daļa no cietām daļām spēle piecpadsmit, rakstisks
ļoti īsi Python.
>> Jūs redzēsiet, ka tur ir mazliet of-- šeit
Esmu cast veselam skaitlim uz virkni, un man ir jādara manuāli.
Un es esmu gatavojas pievienot tas citam virkni,
vai citādi Python izpaužas sajaukt.
Bet vai tad, kad jūs esat pievienojot virkni līdz veselam skaitlim,
man domāt, lai iegūtu skaitlim atpakaļ vai virkne atpakaļ?
Bet atkal, ja jūs vienkārši aicināt str par lietu,
un tas varētu jebkurā iespējams pasaules tiek pārveidota par virkni,
tas, iespējams, būs pārveidota par virkni.
>> Lūk, mēs redzam izmantošanu ligzdotu saraksts izpratne
pa kreisi, kādu indeksācija, kas ir tieši tā, kā jūs vēlaties izmantot to,
un daži izdrukāšana no lietām.
Atgādināsim, ka mēs esam definēti daži funkcijas un mēs saucam tos
galvenais, kad mēs faktiski saņemt failu.
atgriešanās darbojas tieši tāpat kā jūs vēlaties sagaidīt no darba ar C. Atrast,
mēs varam izveidot lietas, piemēram, this-- šeit ir saraksts izpratne
tur ir uzdevums uz mainīgo, un mēs faktiski var darīt to pat vieglāk.
Mums nav nepieciešams rakstīt meklēšanu, jo iebūvēts valodai
ir, ja šī lieta ir šajā masīvā.
Atgriešanās taisnība, citādi atgriezties viltus.
Tātad tas ir kopums atrast.
>> Visus ar veida ietver zvana veida,
kas is-- ir implementāciju Tas iebūvēts noteiktām C bibliotēkās.
Ja vēlaties šo kārtot atpakaļ, jūs
var ignorēt šo izvēles arguments atpakaļgaitā ar patiess.
Un, ja jūs vēlaties, lai sakārtotu vairāk virknes, kas ir iebūvēts arī.
>> Tātad tas nav teikt, tie ir lietas, kas jums jādara katru dienu,
bet ideja ir tāda, ka šis ir filozofija Python,
ka visas šīs lietas, ko jūs vēlaties kārtot vēlas darīt, ir iebūvēts.
Un lielākā daļa standarta funkcijas, tā kārtot, garums, kāds,
atbalstīt visvairāk loģiski saprātīgu ieguldījumu.
Jūs saucat len ​​par masīvu tas pats kā jūs saucat len ​​uz virkni.
Jūs multiply-- jums atrisināt stīgas tāpat jūs sakārtot bloki.
>> Lielākā daļa standarta funkcijas ka cilvēki būvēt,
un lielākā daļa trešo personu bibliotēkas, kuras cilvēki
veidot, jo viņi atdarinot dizains standarta bibliotēkas,
var saukt par visu, kas jūs esat piemēram, kāpēc nav tas tikai strādāt,
C. Vairāk vai mazāk, tas darbosies Python
jo cilvēki strādā aiz skaitļa , kāda lieta ir, un pēc tam strādāt
attiecīgi par to.
Tātad vēlreiz, tehnisko izglītību, bet to padara mūsu dzīvi vieglāku, kā programmētāji.
>> Tātad, šeit ir failu I / O. failu I / O ir daudz maz lietas, kas padara to sarežģīti,
un tāpēc ir resursi online, bet īsumā,
jūs aicinu atvērt uz failu nosaukt ar konkrēta veida.
Tātad, kas ir lasīt, lasīt un rakstīt, rakstīt vai pievienot.
Jums izlasīt noteiktu skaitu rakstzīmes, un jūs drukāt tos,
jūs saņemsiet Sveiki!
Es domāju, kā šis fails bija Sveiki!
Tajā, zvaniet lasīt, un tas, ko jūs saņemsiet atpakaļ
ir virkne, kas ir visas no pārējo masīva,
vai visu pārējo failu.
Ja jums zvana lasīt vēlreiz, tu esi beigās failu,
un tāpēc jums nav get kaut kas un lai jūs aizvērt.
Atkal, tas ir .close nevis aizvērt failu, jo tas būtu C.
Tas ir vairāk vai mazāk tādēļ, f ir lieta, un jūs vēlaties, lai f slēgt.
Bet pamata fails I / O ir ne īpaši sarežģīti.
Atkal, ja jūs vēlaties, lai atvērtu failu, ja jūs gribētu lasīt kādu konkrētu līniju,
jūs varat izkļūt no īpaši line-- tur iebūves par to.
Ja jūs vēlaties rakstīt lieta, jūs varat rakstīt šo.
Ja jūs vēlaties rakstīt indivīdu kodumi, jūs varat rakstīt tos.
Un, ja jūs vēlaties, lai atkārtot pa līnijām datni
individuāli, kā mēs to darījām ar kādu no pirms pāris nedēļām, jūs varat darīt, ka, lai.
Atkal, lielākā daļa objektu, ka jūs vēlētos, lai varētu atkārtot vairāk
atbalsts atkārtojot pār tiem.
In Pythons, fails ir varbūt lieta, ka Es gribētu atkārtot pa pozīcijai.
Ja tas bija vārdnīca Vārdu un es biju
cenšoties iegūt šo individuālo vārdi ārā, tad, šajā cilpas,
line tas būs katrs vārds, savukārt, un tas
tiks izpildīts par katru līniju failā līdz beigās failu.
Un atkal, ja es izdrukā katru line, līnijas nāk ar jaunām līnijām,
tāpēc es esmu nosakot beigas atpakaļ uz lietu, kā šis.
Tad es gribētu saņemt saturu manu failu.
>> Otra lieta, kas darbojas daži veidi, piemēram, sarakstos, un dažos veidos
kā kaut ko būtiski jaudīgākas,
ir vārdnīcas, kas ir patiešām forši lietot, bet būtībā hash
tabulas noslēpt.
Jūs to izveidot, izmantojot tieši divas zīmes, kas ir awesome
ja esat mēģinājuši īstenot hash tabulu par jūsu problēmu kopumu,
jūs zināt daudz sāpes, kas var būt.
Bet cilvēki ir darījuši tas, un darīt to tik labi,
ka jums nav jāuztraucas par to vairs.
>> Tad jūs varat ievietot atsevišķus lietas.
Hash tables-- vai vārdnīcas nav īpaši
vienalga, ko jūs uzglabāt tiem.
Tātad, ja daži ieraksti ir skaitļi, un daži ieraksti ir saraksti,
ja daži ieraksti ir citas vārdnīcas, un daži ieraksti ir stīgas,
Python nav daudz aprūpi.
>> Atkal, ja jūs iet uz to gaidījis virkne un to, ko jūs saņemsiet atpakaļ
ir masīvs, tas ir jūsu problēma.
Un varbūt tas ir vaina kādam citam domāju, ka tas bija liekot lietām
vārdnīcā, varbūt tas bija jums.
Ja tas bija kāds cits, cerams, tie bija
labi izturējās par ko gatavojas vārdnīcā
un neierakstīja nevienu kļūdām lai jūs varētu nonākt.
>> Bet standarta funkcijas jums atpakaļ labi uzvedies lietas.
Tāpēc viņi saka, tas atgriežas atpakaļ vārdnīcu no virknes,
tad viss jūs dodas izkļūt ir virkne.
Ja jūs kādu no šo un tas ceļojumus jūs up, labi, kas varētu būt par jums.
Python, protams, dod jums pietiekami virve pakārt sevi, ja vēlaties.
Tagad mēs varam izdrukāt indivīdu Šā elementi un tas atgriežas
tieši to, ko jūs gaidījāt.
Tieši tas, ko jūs gaidījāt, es domāju, ir frāze, ka es esmu, izmantojot daudz,
bet tas ir vairāk vai mazāk kā Python darbi.
Ja jūs lūgt lieta, kas nav tas, Python būs mest ārā kļūdu
un tas būs atmest jums no neatkarīgi programma jums bija.
Tas būs tiešām izdrukāt vairāk informācijas nekā,
tas būs punkts you-- tas būs pievienot līniju, un tā.
>> Un atkal, varbūt mēs gribam atkārtot pār vārdnīcas
un atrast visas lietas tajā.
Šeit mēs atkārtojot vairāk divas lietas vienlaicīgi.
Un tā mēs darīsim to ar atslēgu, vērtību, bet pēc tam izdrukāt visi no tiem.
>> Un, ja mēs vēlējāmies cast-- ja mēs faktiski bija tas,
mēs varētu būt dažas problēmas, jo on-- kad mēs devāmies ar Dāvidu
tā nevarēja add-- ja mēs neesam mest virkni pirmkārt,
mēs nevarētu piebilst, ka masīvs Stīgu neproporcionāli virknes.
Bet, ja mēs nodot to uz string, mēs kaut ko
piemēram, tas, kas ir varbūt ko mēs gribētu lasīt.
>> Un tas ir Pareizrakstības.
Mēs vienkārši lasīt lietām.
Tātad, mēs varam lasot individuālie vārdi, līnijām.
Mēs karbonāde off pēdējais lieta, tāpēc resnās mīnus 1
chomps off pēdējā lieta, ka we-- pēdējais raksturs virknes.
Mēs sakām.
OK, katrs no tiem saņem ievietota šajā vārdnīcā,
kartēšanas uz vērtību 1.
Mums nav īpaši rūp šo vienu,
bet tas ir tikai tur teikt, oh labi, Tas, ko es nolikšu vārdnīcā.
Jo vēlāk to, ko mēs esam gatavojas darīt, ir, mēs esam
teiksiet, labi, ja tas ir vārdnīcā vispār.
>> Arī šī pārbaude dalība ir izveidota darba
izmantojot pavisam cita algoritms, nekā tas būs sarakstā,
bet mēs to saucam tāpat, kas ir daži, ka Python cukura pārklājumu
lietas, lai viņi vieglāk izmantot.
Un atkal, mēs esam redzējuši lietas, piemēram, pirms tam.
Tas ir pamatā atrast, vai tas ir tieši tas pats sintakse
kā atrast, bet darbojas vairāk nekā pilnīgi atšķirīga struktūra.
Un mums nav īpaši aprūpi.
Tātad tās ir lietas, kas jums uzdeva īstenot par Speller.
Šādā ātrumā, mēs ejam, lai saņemtu vairāk vai mazāk visi no psets darīts.
>> Mērķauditorija: Tāpēc, ka būtībā tikai nāk atpakaļ
kā nepareizi uzrakstīti, ja tā nav atbilst kaut vārdnīcā?
ROSS RHEINGANS-YOO: Jā, jā.
Un tā, tas ir noteikt pielāgošanās problēmu
kas lūdz jums darīt tieši to.
>> Mērķauditorija: Kāpēc ir līnija mīnus 1 tur?
ROSS RHEINGANS-YOO: So kad jūs atkārtojot
vairāk fails lūdzot ar līnijām, līnijas
nāk ar jaunu līniju raksturs beigās it-- mīnus 1
ir tikai iepirkties tos off.
Un tas ir sevišķi elastīga veids indeksēšanas uz lietām.
Tātad, ja jums ir virkne, un jūs vēlaties, arī es esmu
gatavojas sākt raksturs trīs un es esmu gatavojas iet uz beigām.
3 resnās būs darīt jums.
Ja jūs, piemēram, es gribu sākt pie sākumā un iet uz pēdējo mīnus 1
raksturs, resnās mīnus 1.
Un, ja jūs vēlaties, lai iet no trešais ar mīnus pirmkārt,
tad jūs teiktu 3 mīnus 1.
>> Turklāt, ja jūs vēlaties, lai indekss par lietām, skaitot no aizmugures,
jūs vienkārši indekss ar mīnus numuriem.
Un, jo kur C varētu eksplodēt vai varbūt
barību, jūs Citas atmiņas jums nebija piekļuve, dzirdēt jūs varat teikt mīnus 1
ir pēdējais, bet 1 rakstura virkni.
>> Moduļi ir version-- ir analogs uz bibliotēkām C
un ir noderīgi daudz lietas.
Daudzas lietas jūs patīk darīt Python,
turklāt vienkāršs manipulācijas ar mainīgajiem,
Jūs vēlaties, lai āķis vērā Lielāki bibliotēkas ar lielāku
saskarnes un vairāk spējas sadarboties
ar citām pasaules daļām.
sis ir viens no tiem, ar ķekars rīkiem
kas ir noderīgi, lai saskarsme ar pašu sistēmu
un importēt to kā importa sis.
>> Tur ir vairāk dokumentācija no ka, ko jūs varētu iet šeit,
vai jūs varētu atrast Google googling Python sis.
Rakstot ievadīt.
Pirmais posms būs dokumentācija Python 2,
otrais posms gatavojas būt dokumentācija Python 3.
>> Un, ja mēs izrakstīja failu, kas izskatījās tāpat this-- ja īpaši, mēs esam
meklē darbojas komandrindas argumentus,
tāpat mēs iemācījušies darīt ļoti agri šajā klasē.
Tas nav grūti. Jūs varat izkļūt argv,
kas ir viena no tām lietām kas tiek īstenota ar sis.
Tas nav iebūvēts uz bāzes paketi, bet atkal, jūs
var pagarināt to, importējot ka funkcionalitāte no sis.
Jūs to sauc SYS.
neatkarīgi.
Lūk tur ir argv.
Tur tiešām nav argc jo sis, jo jums
var iegūt tik viegli, zvanot len.
Mēs tad drukāts, ka ārā, tad mēs skrēja uz mūsu termināla echo-args.py.
Mēs saņemt atpakaļ masīvs, kas tas ir pirmais arguments.
Atkal, tas ir argv 0, kas ir Nosaukums lieta, ka got sauc.
Ja mēs to sauca ar papildu argumenti, mēs gribētu saņemt tos atpakaļ.
Tas ir viens veids, kā iegūt komandrindas argumentus.
Ja vēlaties karogiem kur ieslēdzot konkrētas lietas, par vai ignorēt
īpaši noklusējuma, argparse ir jūsu draugs.
Un atkal jūs atradīsiet, ka tiešsaistē pie Python argparse Google.
>> Ir pāris lietderība moduļi, kas jums atrast sev izmantojot
un atkal, ja jūs pavadīt jebkurā laikā Tas valoda importēt jsons
lasīšanai un no JSON failus, nav tik sarežģīta.
Jūs atvērt failu, jūs sauc json.load par šo failu, un jūs saņemsiet atpakaļ lieta.
Kas ir tas, ka lieta?
Tas ir JSON objekts.
Ja šī JSON ir masīvs, Python ir masīvi.
Kur tas ir JSON asociatīvas bloki, Python s
vārdnīcas, stīgas, un numuri, un tā tālāk.
Jūs vēlaties, lai dump kas, jūs atvērt jaunu failu, jums zvana izgāztuves,
un slodzes un izgāztuves, lai iet iekšā un ārā no virknes.
>> Tāpat kodne izpaužas sauc jo būtībā tas pats interfeisu.
Tas ir nedaudz vairāk noderīgi, ja jūs dempingu Python objektus.
Tātad, ja jūs esat kādreiz gribēja, lai saglabātu versija pašreizējo statusu
ir mainīgs par nākotni palaist savu programmu,
kodne ir Python s bibliotēku darām.
>> Ja Jums ir jebkāda veida mainīgais, kas var rakstīt out
jo, piemēram, vārdiem un burtiem un bytes-- patīk šī vārdnīcu,
mēs varētu pierakstīt, mēs varētu uzrakstīt to uz leju, kā
kā json objektu, kas bija burtiski šīs zīmes.
Un tad tas būtu ļoti viegli cilvēka atvērt tā up-- atvērt
un izlasīt.
Ja mēs neesam īpaši rūp cilvēkiem lasīt,
mēs varētu pakete vēl efektīvāk formās, kas vēlāk varētu izsaiņot
vai kas varētu vēlāk tikt piepūsts.
Un tas ietaupa 80% no telpa, ka jūsu objekti varētu
veikt, ja jūs rakstījāt tos parastais raksts.
>> Jūs zvanīt sālījumi ļoti daudz pats way-- izgāztuve, slodze,
un tad jūs saņemsiet lietas atpakaļ.
Tātad, ja jūs rakstāt ļoti īsās Python programmas, kas
vēlaties saglabāt stāvokli, un pēc tam lasīt atpakaļ vēlāk, lietas, piemēram, tas
ir jūsu draugi.
Ka jūs varētu ļoti viegli dump tos kā JSON.
Vairums Python objekti var dump out JSON
ja tur ir kāds cerību, ka strukturāli viņi varētu pārstāvēt, ka veidā.
>> Šie ir tikai tip no aisbergs uz moduļiem, kas ir noderīgi.
Tātad sys, os, multiprocessing, ir kārtot pamata workhorses par lietām
mums ir nepieciešams sadarboties ar failu sistēma os.,
tāpat os.isfile, os.isdirectory, os.makefile, tie ir jūsu draugi.
Ja jūs vēlaties, lai mijiedarbotos ar konkrētu faila tipu,
JSON, sālījumi, csv.
Ja vēlaties sazināties ar web lapas, tad urllib lai iegūtu http
lapas. bs4-- BeautifulSoup-- tas ir brīnišķīgi parsētājs HTML.
Palaižot to uz HTML un jums saņemt šo ligzdotu masīva objektu tagad,
ko jūs varat traversa vairāk lookin, ar, piemēram, tikai meklē
ja ir, jo, kas ir fantastisks.
>> Tur ir ķekars paketes running--
lai dara īpaši MATHY lietas.
Tātad, ja jūs vēlaties, lai reizināt, apgāzt, pārveidot matricas,
numpy izmanto cilvēki visu visā pasaulē par to.
scipy ir vēl noderīgs instrumenti šajā virzienā.
sklearn-- mašīna mācīšanās, dabiskās valodas apstrāde,
super noderīgi sīkumi, izpaužas īstenoti Python visu laiku.
>> Un atkal, aizņem nedaudz ilgāks laiks, lai write-- sorry,
aizņem nedaudz vairāk laika, lai palaistu, bet tāpēc, ka reālā inženieri mēdz
izmantošana Python ir tāpēc, ka tu mēdz būt bloķēta jums rakstot kodu, nevis
nekā datorā darbojas kodu.
Tātad, ja jūs gatavojas rakstīt Programma, kas daudz citu cilvēku
gatavojas izmantot uz visiem laikiem, piemēram, Linux, jūs
varētu rakstīt to C. Ja tu būtu gatavojas rakstīt skaitļošanas dzinējs,
jūs varētu rakstīt Python, ja jums nepieciešams to mainīt ik pēc pāris mēnešiem.
Daži cilvēki varētu rakstīt to C, jo viņi tāpat.
>> Tāpēc mēs esam redzējuši importa sis kā veids, kā iegūt lietas
iegūt modulis savā programmā.
Jūs varat arī importēt to kā segvārdu, ja vēlaties.
Atkal multiprocessing ir sāpes veids, kas katru reizi, lai importētu kā mp
un pēc tam jebkurā laikā jūs izmantot to programmas,
jums teikt mp.process, vai ko jūs esat.
Ja vēlaties importēt tikai viena lieta,
tāpēc urllib ir lieta, ko sauc lūgums, lai jūs varat vienkārši importēt to.
Vēlāk, jums nebūs izmantot to kā urllib.request, bet tikpat pieprasījuma
viens pats.
>> Un jūs varat importēt visu no moduļa, ja vēlaties.
Tas reizēm nav labs idea-- Tas parasti nav laba ideja, faktiski.
Tāpēc, ka jūs very-- jo, ja kaut kas šajā modulī ir nosaukums, kas jums
vēlējās izmantot citur savā programmā, jūs nevarat.
>> Un tas ne vienmēr ir acīmredzama ka tas ir gadījumā.
Lai pārliecinātos, ka ko jūs darījāt bija droša,
Jums ir nepieciešams, lai atvērtu modulis un redzēt visas
no nosaukumiem, kas nonāk there-- visas funkcijas,
visiem mainīgajiem lielumiem kas dzīvo šajā modulī,
jo jūs esat lietas visiem tos uz savu vietējo namespace.
>> Tātad cilvēki to izdarītu.
To parasti iesaka ka jums nav darīt.
Bet cilvēki darīt visu laiku, jo viņi
slinks un negribu rakstīt out MP.
kaut kas, kādreiz.
>> Visas šīs runas par moduļi atnesiet man apkārt uz īsu sarunu
par to, kā jūs dizains programmas Python.
Pirmais solis ir pārbaudīt, lai redzētu, vai kāds cits jau ir darīts lieta,
vai izdarīts 90% no lieta.
Iespējams, tie, iespējams, ir, un jūs vajadzētu iet saņemt viņu lieta, un palaist to.
Vai rakstīt aptinums ap to pielāgot to savam mērķim.
Tas ir tikai pēc tam, kad tas ir neizdevās, ka jūs pēc tam
doties un write-- sākt domāt par kā jūs nodot šo lietu kopā.
Tur ir daudz sīkumi kas pastāv, un tas ir
viens no visvairāk noderīga lietas par Python.
Tāpat kā valoda ir elegants, valoda
ir viegli izmantot, bet arī tāpēc, ka tas ir tik elegants un viegli izmantot,
cilvēki ir, izmantojot to ilgu laiku, un tur ir daudz sīkumi
kas tur, ka jūs varat izmantotu jūsu pašu lietošanai.
>> Tāpēc pagājušajā noteikums Python ir, kāds cits jau droši vien rakstīts
modulis, kas, kāds cits jau
droši vien rakstīts bibliotēka par to.
Pirms jūs mēģināt to darīt lieta, meklēt lai redzētu, vai tas ir īstenots.
Tas nav tik grūti.
Visi no moduļiem, kas es safasēti pirms, varbūt ar vienu izņēmumu,
nāk iepriekš instalēta katrā standarts Python uzstādīšana.
Un tā ar aicinājumu importēt kāds, jums
ir visas šīs funkcijas pa rokai.
>> Sāk satīt šo runāt, ir dažas lietas,
ka es esmu pa kreisi, kā melnās kastes un veida noklusēti,
un tur ir maz, White Lies, ka es esmu pastāstīja, ka labad godīgums,
Es ņemšu vismaz brīdī pie šeit, pat ja es ne
iet super dziļi tos visus un to tehniskie skaidrojumi.
>> Vairāki Daudz ka es esmu sauc maģija
ir tas, ko citi cilvēki varētu zvanīt objektorientētā programmēšana.
Tātad ir daudz things-- tāpēc mainīgie ir ļoti bieži nav
vienkāršas baiti sēdēja, atmiņa, bet ir ļoti sarežģīti
objekti, kas ir iekšējais Valsts par funkcijām un daudz
no slēptās mainīgie, daudz slēptās funkcionalitāti, kas
ļauj jums pārvērst tos stīgām, kas ļauj jums atkārtot pār tiem.
Un, ja jūs writing-- un tāpēc, ka viņi
ir visas šīs bagātīgu funkcionalitāti ir tāpēc, ka people--
arhitekti language-- devušies
cauri un katram standartam objekts, ielieciet funkcionalitāti
pateikt, tas ir, kā tas ir kā tas notiek, lai darbotos
ja kāds vēlas atkārtot pār to.
>> Tātad viss, kas kāds varētu iespējams, vēlas atkārtot vairāk,
ir loģika rakstīts manuāli, kā jūs esat
vajadzēja atkārtot uz šo priekšmetu.
Viss, kas jums, iespējams vēlēties aprakta string ir loģika rakstīts.
Šī ir funkcija, kas jums zvanīt, ja Jūs vēlaties, lai dump šo out uz virkni.
Tas ir iemesls, kāpēc jūs varat zvaniet len ​​uz lietām, tas
Tāpēc jūs varat zvanīt uz in, tas ir kāpēc jūs varat zvanīt, ja par visu
ka jūs vēlaties, jo tie visi ir veikt ar tām,
tehniskais know-how, lai to izdarītu.
>> Tas ir kaut kas es esmu super netaisos iedziļināties.
Bet lieta sarakstā ir smalki atšķiras no C stilu cilpas,
un jūs varat izlasīt visu par to, ka uz internets, ja jūs interesē.
Ir tumšā puse visiem Tas, ka es teicu,
tāpēc tur ir divas lietas.
Pirmais ir tas, ka šo objektu orientētas programmēšana piebilst daudz gaisvadu
izlases lietām, lai jūs galu up, izmantojot daudz vairāk atmiņas;
jūs galu galā, izmantojot nedaudz vairāk laika, nekā jūs būtu citādi.
Other-- bet vairāk mānīgs tumšā puse uz šo
ir, ja lietas vienkārši rīkoties kā jūs vēlaties, lai
bez jums, kam jādomā super grūti par to, vai tas būtu int
vai arī ir jābūt peldēt, tas varētu būt, ka vairāk nekā šeit
jūs ražot int bet nekā šeit jūs domā, bet tie būs always-- sorry,
tas varētu būt, ka šeit jūs ražot peldēt,
bet, kad jūs nokļūt uz otro daļu par savu programmu, jūs domājat,
oh labi, bet tie būs vienmēr iet man int.
Un, ja tā nav, tas ir iespējams ka tu iesprūstot kaut kur,
ja jūs mēģināt izmantot šo indeksēt masīvā, vai ko jūs esat.
>> Tātad viens no reālā noderīgas lietas par C ir
tas liek jums domāt patiešām grūti, pirms veicat any--
Pirms jūs celt jebkuru mainīgo spēkā esamību, piemēram, tas, ko
ir šī mainīgā tips.
Un tas notiek, lai būtu ka tipa uz visiem laikiem.
>> Tas nav taisnība Python, un patiesībā, jūs
can-- ja jūs vienkārši kārtot dodas ar auss,
un jūs veikt dažus lēmumus viens no veidiem, vienā vietā,
un daži lēmumi viens veids, otrā vietā
nepakļaujot pietiekami daudz sīkumi aiz ainas, kas citā vietā
noķert lietas pareizi, tu var dabūt ļoti dīvainas kļūdas.
Un programma var skriet uz ļoti ilgu laiku, jo tas ir
dara daudz darba, lai teikt, labi šī lieta varētu darboties šādā veidā,
tāpēc es esmu gatavojas palaist, ka veidā.
>> Un patiesībā, tas, ka tas liek nosūtīt cauri daudz mazu kļūdu
, nozīmē, ka bieži, kad kļūda ir faktiski slikti
un jūs tiešām vēlaties, lai to salabotu, tas beidzas līdz jūdzes away-- programmas
nonāks apstāšanās jūdžu attālumā no brīža, kad jums bija jūsu kļūda.
Un tā viena lieta, ka mēs gribētu programmas, kas darīt, sometimes-- viena lieta
ka mēs gribētu programmas ko darīt, ja mēs esam atkļūdošana
ir neizdoties skaļi un neizdoties ļoti ātri, ja kaut kas noiet greizi.
>> Python ir ļoti slikti, ka.
Python ir ļoti labi nav nedarot un ritošā priekšu
caur negaidītām lietām.
Tātad tas ir lietderīgi, ja jūs esat rakstiski mazas programmas.
Kad jūs saņemsiet sarežģīti bugs dažreiz
nepieciešams ilgs laiks, lai diedelēt tos ārā.
>> Tātad tur ir tumšā puse visiem Tas, kā tas vienkārši darbojas.
Tas vienkārši strādā kā jūs gaidījāt, ka tā.
Izņemot to, ka tad, kad tā nav, jūs galu up pilnīgi citā vietā
un mēģina izdomāt, kur tas bija, ka jums gāja greizi.
>> Atkritumu savākšana is-- tik viena lieta, ka jūs ievērosiet
ir tas, ka kāda no šīm lietām, kas Esmu ievestas existence--
šie bloki, šīs vārdnīcas, šie objekti, tie files-- nekad get atbrīvoti.
Nebija aicinājums bez maksas jebkurā no šo runāt.
Un kas bija par C-pusē, jo mēs nekad nonāktu šīm lietām.
>> Bet Python-pusē, tur nav bezmaksas.
Things get automātiski atbrīvots kad Python
domā, jūs ne skatoties uz viņiem.
Tas ir patiešām labs ne atbrīvojot lietas, jūs varētu vēl iespējams apskatot,
bet tas nozīmē, ka, ja tu būtu gatavojas piešķirt šo lielo lietu,
un jūs, piemēram, oh Es esmu darīts ar to tagad,
tas ir grūti pateikt Python ka esat pabeidzis ar to tagad.
>> Jūs dažkārt var iestatīt ka mainīgais būt neviens,
un tad ceru, ka beidzot atkritumu savācējs
nāk caur un attīra to ārā.
Bet atkal, jums nav ir kontrole pār to.
Un viens no iemesliem, ka cilvēki izmanto C patiešām Performance kritiskas lietas,
tas ir spēja patiešām zināt, kad atmiņa ir piešķirti
un tad, kad tas ir atbrīvots, un ir daudz kontroli pār sakot,
Es esmu, izmantojot ne vairāk atmiņas, nekā man vajag.
Kas ir kaut kas Python nav tik lieliski.
Mērķauditorija: Vai es varu uzdot jums jautājumu?
Ko jūs saprotat ar neizdodas skaļi?
>> ROSS RHEINGANS-YOO: Tātad, ja kaut kas notiek nepareizi
un tu esi atkļūdošana režīmā, jūs ļoti bieži
vēlaties, lai jūsu programma jums pastāstīt kur tieši tas ir nogājis greizi,
un ne tikai klusi pārtraukt darboties.
Bet jūs faktiski to izdrukāt ārā visu veidu informāciju par
piemēram, šeit bija šī.
Tas pats notika Ja jūs drukājat wen-- ja jūs izmantojat tīmekļa server--
>> Mērķauditorija: [dzirdams]
>> ROSS RHEINGANS-YOO: Jā, ja jūs darbojas interneta serveri,
tas ir dažreiz slikti, ja esat vienmēr izmetot kļūdas,
un tu saki, labi, ka nestrādāja.
Es esmu gatavojas pārtraukt.
Es esmu tikai gatavojas ignorēt tas un tur notiek tālāk.
Jo tad jūs varat saņemt simtiem no šīm kļūdām, un neredzu viņus.
>> Tas noteikti būtu noderīga atkļūdošanas vajadzībām
ja katru reizi, kad jūsu tīmekļa servera devuši kļūda, jums bija izturīgas ierakstus par to.
Varbūt jūs pat vēlaties programma apstāties, lai šie ieraksti
do not get aprakti zem lietām.
Bet atkal, tas ir atkļūdošanas režīmā.
>> Bieži ražošanas režīmā, pasaule ir nedaudz atšķirīgs.
Un tiny skriptus, ka es skrienu, ja lieta, kas man teica darīt
varētu būt tikai mazliet off no tā, ko es gribētu to darīt,
tad veida isks kļūdas ir kaut kas jūs varētu vēlēties.
Un šajos gadījumos noteikti Python tiešām nopelna savus sākas.
>> Pēdējā lieta, ka man nav runāt in this-- ka man nav runāt par
bet var būt patiešām nepatīkami pirmais Šoreiz jums ir viens no šīm kļūdām,
un otrais un trešais un ceturtais Šoreiz jums ir viens šīs kļūdas.
Python, es teicu ka tā izmanto atstarpēm
pateikt kāda līmeņa iespiedumiem un ko funkcionālu bloku tu esi,
tā izturas cilnes un atstarpes atšķirīgi.
Tātad, ja jūs tab pa četri, un pēc tam nākamais rindā ir četras telpas,
pat tad, ja tie parādās kā pašu summu jūsu redaktors,
Python neuzskata tos pats.
>> Patiesībā, Python izturas cilnes un telpas, piemēram, eļļas un ūdens.
Tie ir tikai dažādas lietas.
Nav īpaši garums ka tab ir,
tāpēc tas nav tāpat tab vienāds 8 telpas, un lai jūs varētu saņemt ap to
tādā veidā.
Tāpat kā, ja tā saka, ko līmenis atstarpēm es esmu pie,
tas ir faktiski meklējat modelis telpas un cilnēm.
Un tā, labākais veids, kā risināt šo ir vienmēr izmantot telpām visu laiku.
>> Un patiesībā, jo Cloud9 IDE un CS50 IDE,
Jūsu Tab atslēgu ieliktņi četras telpas, nevis
of a tab, kas ir super noderīga.
Lai gan atkal, ja jūs rakstīja Python programma ar cilnēm, ka būtu labi,
tas ir tikai tad, ja kāds gāja un mēģināja pievienot
viena rinda ar savu programmu, kas bija četras telpas katram tab,
tas saplīst.
Un tā būtu break tādā veidā tas tiešām nav redzams.
Lai gan faktiskā kļūda ziņa, ka tas met
ir saistīts ar jaunu atkāpi nav gaidāms šeit,
or-- ja tā runā par ievilkumos un izskatās, ka tas ir nepareizi,
tas ir iespējams, jo tur ir tab-telpu problēma.
Viņi joprojām nepatīkami atkļūdošanas.
Lielākais Visa in šī diskusija, kas man nav
nokļūt, jo tas ir patiešām sarežģīts, smalks temats,
un nebija nepieciešams veikt kādu no lietām, ko mēs esam darījuši līdz šim,
ir jēdziens, ko sauc tuples.
Viņi ir tur daudz, tāpat kā masīvi, ka jūs nevarat mainīt.
Viņi pierast visā vietā, jo tie ir noderīgi daudzām lietām
ka masīvi nav noderīga.
>> Bet, ja jūs vēlaties veikt masīvu, un tad sola tulks, kas jums
nekad gatavojas vēlaties mainīt ka thing-- patiesībā, ja jūs vēlaties mainīt,
jūs veicat jaunu ar jauno vērtības it-- tie ir tuples.
Nevis ražo viņiem ar kvadrātiekavās,
jūs ražot tos ar apaļiem iekavās.
Kāpēc jūs varētu izmantot šīs lietas, ir mazliet jautājumu. .
Vienīgais, ko es ņemšu saka par to, ka ir jums
var izmantot kā tuples indeksi vārdnīcām.
Jūs nevarat izmantot masīvus kā indeksi vārdnīcām.
Un kāpēc ir, atkal, tehnisko un Es neesmu gatavojas palaist to.
>> PSET, ka es neesmu pieskāries par šo sarunu ir pset6.
Tātad, šeit ir, kā jūs d īstenot a-- šeit
kā jūs varētu īstenot pset6 Python.
Paturot prātā Python dizains ciklu, pirmā lieta
ka jūs darīt, ja jūs esat rakstiski programmām ir pārbaude
lai redzētu, vai kāds ir darījuši jau.
>> Patiesībā, ja jūs vēlaties lai serve-- Apache 50
tas apmēram tas, izņemot tā nenāk
standarts instalēta Linux mašīnām.
Python dara, un Python vienkāršs HTTP serveris dara, kā arī.
Ja jūs esat kādreiz uz Linux mašīna, vai Cloud9 IDE ārpus CS50
un jūs vēlaties, lai kalpotu šo strāvu direktoriju, lai konkrētā ostā,
python-m SimpleHTTPServer osta apkalpo to.
Jūs varat arī importēt vienkāršu HTTP serveris
un tas ir ieguvuši daudz funkcionalitāti, ja jūs vēlaties, lai pielāgotu to, vai mainīt to,
vai palaist it-- izmantotu to palaist savu serveri pakalpojumus.
>> Tātad tas ir Python īsumā.
Un tas ir CS50.
Paldies.