Ĉapitro 0 - Enkonduko
"Vi ĵus faris en du horoj, kion ĝi prenas la tri el ni du tagojn por
fari."Mia kolegio kvara laboris ĉe podetala elektroniko tendencas en la
fruaj jaroj de 2000. Foje, la vendejo ricevus kalkultabelon da produktaj prezoj de lia competidor. Teamo de tri dungitoj devus presi la kalkultabelon sur dika stako de papero kaj fendis gxin inter si. Por ĉiu produkta prezo, ili aspektus siajn vendejajn prezojn kaj notis ĉiujn produktojn kiuj ilia competidores vendis por malpli. Ĝi kutime prenis kelkajn tagojn.
"Vi scias, mi povus skribi programon por fari tion, se vi havas la
originalan arkivon por la printaĵoj kun testoj," mia samĉambranino
informis ilin, kiam li ekvidis ilin sidante sur la planko kun paperoj
disĵetitaj kaj stakigis ĉirkaŭ ili.
Post kelkaj horoj, li havis mallongan programon kiu legas la
prezo de dosiero (de competidor), trovis la produkto en la vendejo datumbazo, kaj notis
ĉu la konkursanto estis malmultekosta. Li estis ankoraŭ nova al programado kaj li pasigis la plejparton de sia tempo suprenrigardinte dokumentado en programado libro. La fakta programo bezonis nur kelkajn sekundojn por kuri. Mia samĉambranino kaj liaj kunlaborantoj faris kroman-longa tagmanĝo en tiu tago.
Tio estas la potenco de komputila programado. Komputilo estas kiel svisa poŝtranĉilo kiu vi povas agordi sennombrajn taskojn.
Multaj homoj elspezas horojn klakante kaj tajpante elfari taskojn
repetitajn, nekonscie ke la maŝino povus fari ilian
laborpostenon sekunde se ili donus la rajtajn instrukciojn.
Al kiuj estas tiom libro?
Programaro estas ĉe la kerno de tiom multaj iloj ke ni uzas hodiaŭe:
Preskaŭ ĉiuj uzas sociajn retojn por komuniki, multaj personoj havas
Interreto-koneksaj komputiloj en liaj telefonoj, kaj plej oficejaj
laborpostenoj implikas interagi kun komputilo por plenumi laboron. Kiel rezulto, la postulo por homoj kiuj povas kodo pafis.
Sennombraj libroj, interagaj retejaj lerniloj kaj ellaboranto boot
tendaroj promesas turni ambiciajn komencantojn en programaraj inĝenieroj kun
ses-ciferaj salajroj.
Tiu libro ne estas por tiuj personoj. Ĝi estas por ĉiuj aliaj.
Sur ĝia propra, tiu libro ne turnas vin kiel profesia programisto plu ol kelkaj gitaraj lecionoj igos vin kiel rokstelulo.
Sed, se vi estas oficisto, administranto, akademiisto, aŭ iu ajn alia kiu
uzas komputilon por laboro aŭ amuzo, vi lernos la
programadajn fundamentojn por ke vi povas aŭtomatigi simplajn taskojn kiel ekzemple la
jenajn:
- Movi kaj renomi miloj da dosieroj kaj ordigi ilin en dosierujoj
- Plenigi rete formojn, neniu tajpado postulata
- Elŝuti dosierojn aŭ kopii tekston el retejo ie ĝi estas ĝisdatigita
- Cxirkauxzonigi komputila teksto kun kutimaj sciigoj
- Ĝisdatigi aŭ formatigi Excel Spreadsheets
Tiuj taskoj estas simpla sed, temporaba por homoj, kaj ili estas ofte
tiom bagatela aŭ specifa ke tie estas neniu preta softvaro elfari ilin. Armitaj per iom da programada scio, vi povas havi vian komputilon fari tiujn taskojn por vi.
Konvencioj
Tiu libro ne estas desegnita kiel referenca manlibro; gxi estas gvidata por komencantoj.
La kodiga stilo foje kontraŭas bonajn praktikojn (ekzemple, iuj programoj
uzas mallokajn variablojn), sed tio estas komerco-ekstere por fari la
kodon pli simpla lerni. Tiu libro estas farita por homoj skribi iu kodo. Do, vi ne havas multa da tempo pasigante sur stilo kaj eleganteco. Kompleksaj programadaj konceptoj kiel similaj objektemaj programadoj, listo de comprehensions, kaj generatoroj ne estas kovrita pro la komplekseco ke oni aldonas.
Veteranaj geprogramistoj povas atentigi manierojn la kodon en tiu libro
povus esti ŝanĝita por plibonigi efikecon, sed tiu libro estas plejparte
koncernita kun akiranta programojn por labori kun la malplej kvanto de
peno.
Kio Estas Programado?
Televidspektakloj kaj filmoj ofte montras programistoj furioze tajpanta
kamufla riveretojn de 1s kaj _0s_ sur ardantaj ekranoj, sed moderna
programado ne estas tiel mistera. Programado estas simple la ago de eniri instrukcioj por la komputilo por plenumi.
Tiuj instrukcioj povus kunpremus iuj nombroj, modifi tekston, serĉi
informon en dosieroj, aŭ komuniki kun aliaj komputiloj super la
Interreto.
Ĉiuj programoj uzi bazajn instrukciojn kiel konstruelementoj. Jen kelkaj el la plej komunaj, en la angla:
- "Ĉu ĉi; tiam faru tion. "
- "Se ĉi tiu kondiĉo estas vera, plenumi tiun agon; alie, fari tiun agon. "
- "Ĉu ĉi tiu ago ke plurfoje."
- "Teni faranta ke ĝis tiu kondiĉo estas vera."
Vi povas kombini tiujn konstruelementoj implementar pli komplikaj decidoj, ankaŭ. Ekzemple, tie estas la programado instrukcioj, nomita la fontkodon, por simpla programo skribita en la lingvo de programado Python. Komencante ĉe la supro, la Python programaro kuras ĉiu linio de kodo (iuj linioj kuras nur se certa kondiĉo estas vera aŭ alia Python kuras iu alia linio) ĝis ĝi atingas la fundon.
❶ passwordFile = malfermita ( 'SecretPasswordFile.txt') ❷ secretPassword = passwordFile.read () ❸ print ( 'Entajpu vian pasvorton.') typedPassword = input () ❹ se typedPassword == secretPassword: ❺ print ( 'Aliro permesite') ❻ se typedPassword == '12345': ❼ print ( "Tio pasvorto estas kiu idioto metas sur siajn pakaĵojn.) alie: ❽ print ( 'Aliro neita')
Vi eble ne scias ion ajn pri programado, sed vi verŝajne povus fari racian divenon ĉe kio la antaŭa kodo faras nur legi ĝin. Unue, la dosiero SecretPasswordFile.txt malfermigxas ❶ kaj la sekreta pasvorto legas ❷. Tiam, la uzanto estas instigita enigi pasvorton (de la klavaro) ❸. Tiuj du pasvortoj estas komparitaj ❹, kaj se ili estas la sama, la programo presaĵoj Aliro permesite la ekrano ❺. Tuj poste, la programo kontrolas vidi ĉu la pasvorto estas 12345 ❻ kaj sugestas ke tiu elekto ne povus esti la plej bona por pasvorto ❼. Se la pasvortoj ne estas samaj, la programo presaĵoj Aliro malpermesita por la ekrano ❽.
Kio Estas Python?
Python
rilatas al la Python programlingvo (kun sintakso regulojn por skribi
kio estas konsiderita valida Python kodo) kaj la Python interpretisto
programaron kiu legas fontkodo (skribita en la python lingvo) kaj
elfaras liajn instrukciojn. La Python interpretisto estas libera por elŝuti de http://python.org/ , kaj ekzistas versioj por Linukso, OS X, kaj Vindozo.
La nomo Python devenas la superreala brita komedio grupo Monty Python, ne de la serpento.
Python programistoj ame nomis Pythonistas kaj ambaŭ Monty Python kaj
serpenta referencoj kutime pipro python lernilojn kaj dokumentaron.
Programistoj Ne Need to Know Multe Math
La plej komuna angoro mi aŭdas pri lernanta programo estas ke homoj pensas postulas multajn matematiko. Fakte, plej programado ne postulas matematiko preter baza aritmetiko. Fakte, estante bona programado ne estas tiel malsama de estanta bona ĉe solvi Sudoku enigmojn.
Solvi Sudoku enigmo, la nombroj 1 ĝis 9 devas esti plenigita en ĉiu
vico, ĉiu kolono, kaj ĉiu 3 × 3 interno kvadrato de la plena 9 × 9
tabulo. Vi trovos solvon aplikante depreno kaj logiko de la startanta nombroj. Ekzemple, ekde 5 aperas en la supra maldekstra de la Sudoku enigmo montrita en Figuro 1 , ĝi ne aperas aliloke en la supera vico, en la plej maldekstra kolumno, aŭ en la supre-maldekstra 3 × 3 kvadrataj. Solvanta unu vico, kolumno, aŭ kvadrata samtempe provizos pli nombro indicojn por la resto de la puzlo.
Figuro 1. Nova Sudoku enigmo (maldekstre) kaj lia solvo (dekstra). Malgraŭ uzante nombrojn, Sudoku ne implikas multe math. (Bildoj © Vikipedio)
Nur ĉar Sudoku implikas nombroj ne signifas vin devi esti bona ĉe matematiko eltrovi la solvon. La sama estas vera de programado. Kiel solvi Sudoku enigmo, skribante programoj implikas detruado problemo en individuo, detala paŝoj. Simile, kiam elpurigi programoj (kiu, trovinte kaj fiksinte eraroj), vi pacience observi kion la programo faras kaj trovi la kaŭzo de la insektetoj. Kaj kiel ĉiuj kapabloj, des pli vi planas, des pli bone vi fariĝis.
Programado Estas Krea Aktiveco
Programado estas krea tasko, iom kiel konstrui kastelon el LEGO brikoj. Vi komencas kun baza ideo de kio vi deziras vian kastelon simili kaj inventaro vian havebla blokoj. Tiam vi komencos konstrui. Kiam vi finis konstruante via programo, vi povas sufiĉe vian kodon ĝuste kiel vi farus vian kastelon.
La diferenco inter programado kaj aliaj krea agadoj estas ke kiam
programado, vi havas ĉiujn krudmaterialojn vi bezonas en via komputilo; vi ne bezonas aĉeti ajnan aldonan kanvaso, pentri, filmo, teksaĵo, LEGO brikoj, aŭ elektronikaj komponantoj. Kiam via programo estas skribita, ĝi povas facile esti dividita rete kun la tuta mondo. Kaj tamen vi faras erarojn kiam programado, la aktiveco estas ankoraŭ multe da amuzo.
Pri tiu libro
La unua parto de tiu libro kovras bazajn Python programado konceptoj,
kaj la dua parto kovras diversajn taskojn vi povas havi vian komputilon
aŭtomatigi. Ĉiu ĉapitro de la dua parto havas projekton programojn por vi studi. Jen mallonga resumo de kion vi trovos en ĉiu ĉapitro:
- Ĉapitro 1 . Covers esprimoj, la plej baza tipo de Python instruon kaj kiel uzi la Python interaga ŝelon programaro eksperimenti kun kodo.
- Ĉapitro 2 . Klarigas kiel fari programojn decidi kion instrukcioj ekzekuti tiel via kodo povas inteligente respondi al malsamaj kondiĉoj.
- Ĉapitro 3 . Instrukcias vin sur kiel difini vian propran funkcioj por ke vi povas organizi vian kodon en pli regebla pecoj.
- Ĉapitro 4 . Enkondukas la listo datumtipo kaj klarigas kiel organizi datumojn.
- Ĉapitro 5 . Enkondukas la vortaro datumtipo kaj montras pli potencaj manieroj organizi datumojn.
- Ĉapitro 6 . Portitaj laboras kun teksto datumoj (nomita kordoj en Python).
- Ĉapitro 7 . Covers kiel Python povas manipuli ĉenojn kaj serĉi tekston ŝablonoj kun regulaj esprimoj.
- Ĉapitro 8 . Klarigas kiel viaj programoj povas legi la enhavon de teksto dosierojn kaj savi informon al dosieroj sur via malfacila stirado.
- Ĉapitro 9 . Montras kiel Python povas kopii, movi, renomi, kaj forviŝi nombregojn de dosieroj multe pli rapide ol homo uzanto povas. Ĝi ankaŭ klarigas kunpremante kaj descomprimir dosierojn.
- Ĉapitro 10 . Montras kiel uzi Python diversaj cimoj-trovo kaj cimo-riparanta iloj.
- Ĉapitro 11 . Montras kiel skribi programojn kiuj povas aŭtomate elŝuti retpaĝojn kaj analizi ilin por informoj. Tio nomiĝas retejo skrapanta.
- Ĉapitro 12 . Covers programmatically manipulanta Excel Spreadsheets por ke vi ne devas legi ilin. Tio estas utila kiam la nombro de dokumentoj vi devas analizi estas en la centoj aŭ miloj.
- Ĉapitro 13 . Covers programmatically legaĵo Vorto kaj PDF dokumentojn.
- Ĉapitro 14 . Daŭrigas klarigi kiel programmatically manipuli dokumentojn kun CSV kaj JSON dosierojn.
- Ĉapitro 15 . Klarigas kiel tempo kaj datoj estas manipulitaj de Python programoj kaj kiel enhorarigi vian komputilon por plenumi taskojn je certaj tempoj. Tiu ĉapitro montras ankaŭ kiel via Python programoj povas ĵeti ne-Python programoj.
- Ĉapitro 16 . Klarigas kiel skribi programojn kiuj povas sendi retpoŝtojn kaj teksto mesaĝojn pro vi.
- Ĉapitro 17 . Klarigas kiel programmatically manipuli bildoj kiel JPEG aŭ PNG dosieroj.
- Ĉapitro 18 . Klarigas kiel programmatically kontroli la muso kaj klavaro por aŭtomatigi klakoj kaj klavpremojName.
Elŝuti kaj Instalado Pitono
Vi povas elŝuti Python por Vindozo, OS X, kaj Ubuntu senpage de http://python.org/downloads/ . Se vi elŝutu la lastan version de la retejo la elŝuta paĝo, ĉiu el la programoj en tiu libro devus labori.
Averto
Nepre elŝuti version de Pitono 3 (kiel 3.4.0). La programoj en tiu libro estas skribita por funkcii en Python 3 kaj povas kuri ĝuste, se entute, sur Python 2.
Vi trovos Python instaladores por 64-bita kaj 32-bita komputiloj por
ĉiu mastruma sistemo sur la elŝuta paĝo, do unua cifero ekstere kiu
instalilo vi bezonos. Se vi aĉetis vian komputilon en 2007 aŭ poste, tio estos plej verŝajne 64-bita sistemo. Alie, vi havas 32-bitan version, sed jen kiel trovi ekstere por certa:
- En Windows, elektu Komenci ▸ Kontrolo Panelo ▸ Sistemo kaj kontrolu ĉu Sistemo Tipo diras 64 bitoj aŭ 32 bitoj.
- Sur OS X, iru la Apple menuo, elektu Pri Ĉi Mac ▸ Pli Info ▸ Sistemo Raporti ▸ Aparataro kaj tiam rigardi la Procesoro Nomo kampo. Se ĝi diras Intel Core Sola aŭ Intel Core Duo, vi havas 32 bitoj maŝino. Se ĝi diras ion ajn (inkluzive de Intel Core 2 Duo), vi havas 64 bitoj maŝino.
- Sur Ubuntu Linukso, malfermi Terminalo kaj rulu la komandon
uname -m
. Respondo dei686
signifas 32 bitoj, kajx86_64
signifas 64 bitoj.
En Vindozo, elŝutu la Python instalilo (la dosiernomo finos kun .msi) kaj duoble alklaku ĝin. Sekvi la instrukciojn de la instalilo ekranoj sur la ekrano instali Python, kiel listigitaj ĉi tie:
- Elektu Instali por Ĉiuj uzantoj kaj tiam klako Poste.
- Instali al la C: \ Python34 dosierujo klakante Sekva.
- Klaku Sekva denove salti la Agordu Python sekcio.
En Mac OS X, elŝutu la .dmg dosieron kiu pravas por via versio de OS X kaj duoble alklaku ĝin. Sekvi la instrukciojn de la instalilo ekranoj sur la ekrano instali Python, kiel listigitaj ĉi tie:
- Kiam la DMG pako malfermiĝas en nova fenestro, duoble alklaku la Python.mpkg dosiero. Eblas eniri la administranton pasvorton.
- Klaki Daŭrigu tra Bonvenon sekcio kaj klako Agree akcepti la permesilon.
- Elektu HD Macintosh (aŭ kiel ajn via malmola disko havas) kaj klaku Instali.
Se vi uzas Ubuntu, vi povas instali Python de la Fina stacio de sekvanta ĉi tiujn paŝojn:
- Malfermi la Fina stacio fenestro.
- Entajpu
sudo apt-get install python3
. - Entajpu
sudo apt-get install idle3
. - Entajpu
sudo apt-get install python3-pip
.
komencante sencela
Dum la Python interpretisto estas la programaro kiu kuras via Python programoj, la interaga disvolviĝo medio (sencela) programaro estas kie vi eniras vian programoj, multe kiel vorto procesoro. Komencu sencela nun.
- En Windows 7 aŭ pli nova, klaku Start ikono en la malsupra-maldekstra angulo de via ekrano, tajpu
IDLE
en la serĉo skatolo kaj elektu sencela (Python GUI). - En Windows XP, klaku Start butonon kaj elektu Programoj ▸ Python 3.4 ▸ sencela (Python GUI).
- En Mac OS X, malfermi la Finder fenestro, klaku Aplikoj, klaku Python 3.4, kaj tiam alklaku la sencela ikono.
- En Ubuntu, unuaranga Aplikoj ▸ Akcesoraĵoj ▸ Terminalo kaj tiam eniri
idle3
. (Vi povas ankaŭ povos klaki Aplikoj ĉe la supro de la ekrano, elektu Programado kaj tiam alklaku sencela 3.)
La Interaktiva Konko
Negrave kion la mastruma sistemo vi uzas, la sencela fenestro kiu unue
aperas devus esti plejparte malplenaj krom tekston kiu aspektas io
tiamaniere:
Python 3.4.0 (v3.4.0: 04f714765c13, Mar 16 2014, 19:25:23) [MSC v.1600 64 bito (AMD64)] sur win32Type "kopirajto", "kreditoj" aŭ "permesilo ()" por pli informo. >>>
Tiu fenestro nomiĝas interaga ŝelo.
A ŝelo estas programo kiu permesas tajpi instrukciojn en la komputilo,
multe kiel la Terminalo aŭ Command Prompt sur OS X kaj Windows,
respektive. Python interaga ŝelo permesas eniri instrukcioj por la python interpretisto programaro kuri. La komputilo legas la instrukciojn vi eniri kaj kuras ilin tuj.
Ekzemple, tajpu la sekvajn en la interaga ŝelo apud la
>>>
prompto: >>> Print ( 'Saluton mondo!')
Post vi tajpas tiun linion kaj premu ENTER, la interaga ŝelo devus montri tion en respondo:
>>> Print ( 'Saluton mondo!') Saluton mondo!
Kiel Trovi Helpo
Solvanta programado problemoj en via propra estas pli facila ol vi povus pensi. Se vi ne konvinkis, tiam ni kaŭzus eraron intence: Enter
'42' + 3
en la interaga ŝelo. Vi ne bezonas scii kion tiu instrukcio signifas ĝuste nun, sed la rezulto devus aspekti tiel: >>> '42' + 3 ❶ Traceback (plej lasta alvoko lasta): Dosiero "<pyshell # 0>", linio 1, en <modulo> '42' + 3 ❷ TypeError: Ne konverti 'int' celo Str implice >>>
La erarmesaĝo ❷ aperis tie ĉar Pitono ne komprenis vian admonon. La traceback parto ❶ de la erarmesaĝo montras la specifan instrukcion kaj linio numero kiun Python havis problemojn kun. Se vi ne certas kion fari de aparta erarmesaĝo, serĉi enretan por la ĝusta erarmesaĝon. Eniri "TypeError: Ne konverti 'int' celo Str implice"
(inkluzive de la citiloj) en vian plej ŝatatan serĉilon kaj vi devus
vidi tunoj de ligiloj klarigante kio la erarmesaĝo signifas kaj kio
kaŭzas ĝin, kiel montrita en Figuro 2 .
Figuro 2. La Google rezultoj por erarmesagxon povas esti tre helpema.
Vi ofte trovas ke iu alia havis la saman demandon kiel vi kaj ke kelkaj aliaj helpemaj persono jam respondis lin.
Neniu persono povas scii ĉion pri programado, do ĉiutaga parto de ajna
programisto laborposteno estas suprenrigardinte respondojn al teknikaj
demandoj.
Demandante Smart Programado Demandoj
Se vi ne povas trovi la respondon per la serĉo en linio, provu demandi homojn en TTT forumo kiel Parva Overlow ( http://stackoverflow.com/ ) aŭ la "lerni programadon" subreddit ĉe http://reddit.com/r / learnprogramming / . Sed memoru ke estas inteligenta manieroj demandi programado demandoj kiuj helpas aliaj helpos. Nepre legu la Oftaj Demandoj sekcioj tiuj retejoj havas pri la ĝusta maniero sendi demandojn.
Kiam demandanta programado demandojn, memori fari la sekvajn:
- Klarigi kion vi provas fari, ne nur kion vi faris. Tio permesas via helpanto scias se vi estas sur la malĝusta vojo.
- Specifi la punkto je kiu la eraro okazas. Ĉu ĝi okazas en la tre komenco de la programo aŭ nur post vi faras determinitan agon?
- Kopiu kaj algluu la tutan erarmesagxon kaj vian kodon por http://pastebin.com/ aŭ http://gist.github.com/ .Tiuj retejoj faciligi kunhavigi grandajn kvantojn de kodo kun homoj tra la Retejo, sen la risko de perdi ajnan tekston strukturado. Vi povas tiam enigu la adreson de la poŝtis kodon en via retpoŝto aŭ foruma poŝto. Ekzemple, jen kelkaj pecoj de kodo kiun mi afiŝis: http://pastebin.com/SzP2DbFx/ kaj https://gist.github.com/asweigart/6912168/ .
- Klarigi kion vi jam provis fari por solvi vian problemon. Tiu diras homoj vi jam metis en iu laboro diveni tion sur via propra.
- Listigi la versio de Python vi uzas. (Estas iuj ŝlosilaj diferencoj inter versio 2 Python interpretistoj kaj version 3 Python interpretistoj.) Ankaŭ, diru kio mastruma sistemo kaj versio vi uzas.
- Se la eraro eliris post vi faris ŝanĝon al via kodo, klarigi ĝuste kion vi ŝanĝis.
- Diri ĉu vi estas kapablaj de reprodukti la eraron ĉiufoje kiam vi kuros la programo aŭ ĉu okazas nur post vi elfari certajn agojn. Klarigi kion tiuj agoj estas, se tiel.
Ĉiam sekvu bonan enreta etiketo tiel. Ekzemple, ne afiŝi viajn demandojn en ĉiuj kaskedoj aŭ fari senkaŭza postulojn de la popolo provas helpi vin.
resumo
Por la plimulto de homoj, ilia komputilo estas nur aparato anstataŭ ilo. Sed lernante kiel programi, vi akiri aliron al unu el la plej potencaj iloj de la moderna mondo, kaj vi havos amuzon survoje. Programado ne cerbooperacio-tio estas bone por amatoroj eksperimenti kaj fari erarojn.
Mi amas helpi homojn malkovri Python. Mi skribas programado lernilojn sur mia blogo ĉe http://inventwithpython.com/blog/ , kaj vi povas kontakti min per demandoj en al@inventwithpython.com .
Tiu libro komencos vin for de nulo programado scio, sed vi eble havas demandojn preter lia atingo. Memoru ke demandanta efika demandoj kaj scii trovi respondojn estas valorega ilojn sur via programado vojaĝo.
Ni komencu!
Nenhum comentário:
Postar um comentário