Ar trebui să învețe Python?
Mulți programatori cred că au nevoie doar pentru a studia limbile „clasice“ de programare, cum ar fi Java sau C ++, pentru că alte limbi nu ar fi în măsură să ofere aceleași oportunități. Recent, cu toate acestea, a existat o credință că programator este de dorit să știe mai multe limbi, așa cum se extinde orizonturile sale, permițând mai creative pentru rezolvarea problemelor și îmbunătățirea competitivității pe piața muncii.
Învață să perfecțiune cele două limbi, cum ar fi Java și C ++ este destul de dificil și ar lua o lungă perioadă de timp; În plus, multe aspecte ale acestor limbi sunt contradictorii. În același timp, Python este ideal pentru rolul unei a doua limbi, așa cum a asimilat imediat datorită cunoștințelor existente în OEP, și faptul că sale caracteristici nu sunt contradictorii, dar experiența complementară dobândită în timp ce lucra cu alte limbaje de programare.
În cazul în care programator doar incepand drumul lor în domeniul dezvoltării de software, este un Python „introductiv“ limbaj de programare ideală. Din cauza concizie sale, aceasta va permite să stăpânească rapid sintaxa limbii, precum și lipsa de „patrimoniu“, în forma a evoluat de-a lungul anilor, axiomele vor stapani rapid OEP. Datorită acestor factori, Python «curbă de învățare“ este destul de scurt, iar programatorul va fi capabil să se deplaseze de la studii de caz pentru proiecte comerciale.
De aceea, oricine a fost cititorul acestui articol - „da“ un programator cu experiență sau un novice în domeniul dezvoltării de software, răspunsul la întrebarea care este titlul acestei secțiuni ar trebui să fie o convingătoare
Această serie de articole este destinat să contribuie la depășirea cu succes „curba de învățare“, oferind în mod constant de informații, începând cu cele mai elementare principii ale limbajului la capacitățile sale avansate în ceea ce privește integrarea cu alte tehnologii. Primul articol se concentrează pe caracteristicile de bază și sintaxa Python. În viitor, ne vom uita la aspectele mai complexe, de a lucra cu acest limbaj popular, în special programarea orientată pe obiecte în Python.
Python Arhitectura
Orice limbă, nu contează - pentru programare sau comunicare, acesta este format din cel puțin două părți - vocabularul și sintaxa. Limbajul Python este organizat exact la fel, oferind sintaxa pentru formarea expresiilor care alcătuiesc programul executabil, și de vocabular - un set de funcționalități ca biblioteci standard și plug-in-uri.
După cum sa menționat deja, sintaxa Python este destul de concis, mai ales în comparație cu Java sau C ++. Pe de o parte - acest lucru este bun, deoarece sintaxa mai simplă, cu atât mai ușor este de a învăța și mai puțin greșelile pe care le puteți face în cursul utilizării sale. Cu toate acestea, aceste limbi au un dezavantaj - acestea pot fi utilizate pentru a transfera informațiile cele mai simplă și este imposibil să-și exprime structuri complexe.
Pentru Python, acest lucru nu este cazul, deoarece acesta este limbajul simplu, dar simplist. Faptul că Python este limbajul unui nivel mai ridicat de abstractizare de mai sus, de exemplu, decât în Java și C ++, și vă permite să trimiteți aceeași cantitate de informații într-un volum mai mic al codului sursă.
Python este, de asemenea, un limbaj de uz general, astfel încât să poată fi folosit în aproape orice domeniu de dezvoltare software (independent, client-server, Web-aplicație) în orice domeniu. În plus, Python este usor de integrat cu componentele existente, permițându-vă pentru a încorpora Python într-o aplicație de pre-scrise.
O altă componentă a succesului Python - este plug-in-uri, ambele standard si specifice. Module de extensie standard Python - este perfect proiectat și testat în mod repetat funcționalitatea pentru a face față provocărilor care apar în fiecare proiect de dezvoltare, linii de prelucrare și texte, interacțiunea cu sistemul de operare, suport pentru aplicatii bazate pe web. Aceste module sunt, de asemenea, scrise în Python, astfel încât să aibă proprietatea sa cea mai importantă - un cross-platform, permițând transferul rapid și în condiții de siguranță proiecte de la un sistem de operare la altul.
În cazul în care funcționalitatea necesară nu a fost în biblioteca standard Python, puteți crea propriul plug-in pentru utilizare repetată ulterioară. Este demn de remarcat faptul că modulele de extensie pentru Python, puteți crea nu numai Python limba, dar și cu alte limbaje de programare. În acest caz, există o oportunitate pentru punerea în aplicare mai eficientă a sarcinilor mari consumatoare de resurse, cum ar fi calcule științifice complexe, dar a pierdut avantajul de cross-platform, în cazul în care limba modulului de expansiune nu este, în sine, un cross-platform, cum ar fi Python.
Python execuție
După cum știți, toate limbajele de programare cross-platform sunt construite pe același model: este într-adevăr un cod sursă portabilă și mediu de rulare (mediu de rulare), care nu este transferabil și este specific pentru fiecare platformă specifică. În acest mediu de execuție include, de obicei, un interpret care execută codul sursă, precum și o varietate de instrumente necesare pentru a însoți cererea - un debugger, disassembler, etc.
În mediul de execuție Java include un compilator, deoarece codul sursă trebuie să fie compilate în cod octet pentru Java-mașină. Mediul de execuție Python include doar interpretul, care este, de asemenea, compilatorul compilează cu toate acestea Python codul sursă direct în codul mașină al platformei țintă.
În momentul de față, există trei punerea în aplicare bine-cunoscut al mediului de execuție pentru Python: CPython, Jython și Python.NET. După cum s-ar putea ghici din titlu, primul mediu este pus în aplicare în C, al doilea în limbajul Java și ultima - pe platforma .NET.
Miercuri executie Jython - este o implementare Python pentru a lucra cu Java-mașină (JVM). Aceasta susține orice versiune a JVM, deoarece versiunea 1.2.2 (versiunea curentă de Java - 1.6). Pentru a lucra cu Jython trebuie să aibă Java-mașină (Java Runtime) și o anumită cunoaștere a limbajului de programare Java. Să fie capabil să scrie codul sursă în limbajul Java nu este necesar, dar va trebui să se ocupe c JAR-fișiere și Java-applet-uri, precum și documentele în format javadoc.
Ce versiune a mediului de a alege - depinde în întregime de preferințele programatorului, în general, este recomandat să păstrați pe computer și CPython, Jython, și, deoarece acestea nu intră în conflict unele cu altele, dar se completează reciproc. CPython IDE ruleaza mai rapid, deoarece nu există un nivel intermediar al JVM; În plus, versiunea actualizată a Python a fost lansat mai întâi ca un mediu CPython. Cu toate acestea, Jython poate folosi orice clasă Java ca un modul de extensie și rula pe orice platformă pentru care există o implementare JVM.
Ambele runtimes lansat sub o licență compatibilă cu licență GPL cunoscută, astfel încât acestea să poată fi folosite pentru a dezvolta software-ul comercial și liber sau liber. Cele mai multe dintre modulele de expansiune pentru Python, de asemenea, vine sub licența GPL și pot fi utilizate în mod liber în orice proiect, dar există expansiune comerciale sau extindere cu licențele mai stricte. Prin urmare, atunci când se utilizează Python într-un proiect comercial, trebuie să știi ce există restricții în licențele de module de expansiune conectate.
Inițiere în Python
Înainte de a începe să utilizați Python, trebuie să instalați mediul de execuție - în acest articol este CPython și interpretul Python în mod corespunzător. Există diferite metode de instalare: utilizatorii avansați se pot compila Python din codul sursă publică poate fi descărcat de pe site-ul Web-www.python.org fișierele binare pentru sistemul de operare, în cele din urmă, multe distribuții Linux vin cu pre-instalat Python interpret. Acest articol folosește versiunea 2.x Python de Windows, dar exemplele pot fi rulate pe orice versiune de Python.
Odată ce programul de instalare va implementa fișiere executabile Python în directorul specificat, verificați valorile următoarelor variabile de sistem:
- PATH. Această variabilă ar trebui să conțină calea către directorul în care ați instalat Python, care s-ar putea găsi un sistem de operare.
- PYTHONHOME. Această variabilă ar trebui să conțină doar calea către directorul în care ați instalat Python. De asemenea, în acest director ar trebui să conțină un subdirector lib în care doriți să căutați modulele Python standard.
- PYTHONPATH. Variabila cu o listă de directoare care conțin plug-in-uri care se vor conecta la Python (elemente de listă trebuie să fie separate prin sistemul de separare).
- PYTHONSTARTUP. O variabilă opțională care specifică calea către script-ul Python să fie executat de fiecare dată când porniți o sesiune interactivă Python interpret.
Linia de comandă pentru cojile are următoarea structură.
PYTHONHOME \ Python (opțional) [comanda -c | cu un fișier script | -]
Modul interactiv Python
Dacă executați interpretul, fără a specifica o comandă sau cu un fișier script, acesta pornește într-un mod interactiv. În acest mod, se execută un Python Shell special, pe care le puteți introduce comenzi individuale sau expresii, iar valoarea lor va fi calculată imediat. Acest lucru este foarte util atunci când se studiază Python, după cum puteți verifica imediat corectitudinea unui desen sau model.
Valoarea expresiei evaluate este stocată într-o variabilă specială numită „subliniere Single“ (_), astfel încât să poată fi utilizat în expresii ulterioare. Încheiați sesiunea interactivă poate fi o combinație de taste Ctrl-Z pe Windows sau Ctrl-D în sistemul de operare Linux.
Pentru a verifica funcționalitatea de instalare și Python pot executa următoarele comenzi:
c: \> v python-
c: \> Python -c „timp de import; time.asctime de imprimare () "
Opțiunea -v afișează versiunea de implementare Python și completează activitatea, iar a doua comandă tipărește pe ecran valoarea timpului de sistem.
Elementele de bază de sintaxă Python
Ceea ce urmează este un aspect foarte important care poate părea ciudat pentru programatorii care învață Python ca a doua limbă. Faptul că Python nu este un personaj care ar fi responsabil pentru separarea expresiilor unul de altul în codul sursă, cum ar fi un punct și virgulă (;) în C ++ sau Java. Semicoloana vă permite să partajați câteva instrucțiuni dacă acestea sunt pe aceeași linie fizică. De asemenea, există nici o astfel de construcție ca acolade <>, instrucțiuni care permit să se combine într-un singur grup de bloc.
Tipuri de date utilizate în Python
Tipurile de date utilizate în Python, de asemenea, coincid cu alte limbi - număr întreg și tipuri de date reale; suplimentar susținut tip de date complexe - cu o adevărată și o parte imaginară (un exemplu al unui număr - 1.5J sau 2j, unde J este rădăcina pătrată a -1). linie de suport Python, care pot fi închise în ghilimele simple, duble sau triple, cu rânduri ca în Java, sunt invariabile obiecte, adică nu se poate schimba valoarea dupa crearea sa.
Există Python și de tip bool boolean c aceste două versiuni de valori - adevărate și false. Cu toate acestea, versiunile mai vechi ale Python acest tip de date nu a fost, și, în plus, orice tip de date poate fi adus la o valoare logică a Adevărat sau fals. Toate numerele care sunt diferite de zero, șir care nu este gol sau de colectare a datelor tratate ca True, iar valorile martor și nule sunt considerate expresie la False. Această caracteristică este continuată în noile versiuni ale Python, cu toate acestea, pentru a îmbunătăți lizibilitatea recomandată pentru variabile logice de tip bool. În același timp, dacă doriți să mențină compatibilitatea cu implementările mai vechi de Python, atunci cum ar trebui să fie utilizat un variabile logice 1 (Adevărat) sau 0 (false).
Funcționalitate pentru seturi de date
În Python, trei tipuri de colecții sunt definite pentru stocarea seturilor de date:
Un tuplu este o secvență ordonată de date imuabile. Acesta poate conține elemente de diferite tipuri, cum ar fi alte tuple. Un tuplu este definit în paranteze, iar elementele sale sunt separate prin virgule. built-in tuplu speciale () vă permite să creați tuple din secvența de date.
Listă - o secvență de mutabil ordonată de elemente. Elementele din lista sunt, de asemenea, separate prin virgula, dar a stabilit deja între paranteze drepte. Pentru a crea o listă de lista propusă funcția ().
Dicționarul este un tabel hash element de reținere, împreună cu cheia sa identificator. acces ulterior elementelor se realizează prin aceeași cheie, astfel încât unitatea de stocare în dicționar - o pereche de obiect-cheie și valoarea asociată a obiectului. Dicționar - se poate schimba, dar nu a fost comandat de colectare, astfel încât ordinea elementelor în dicționar se poate modifica în timp. Specifică dicționarul în acolade, cheia este separată de valoarea de două puncte, și de a face perechi de chei / valori separate prin virgulă. Pentru crearea funcției de dicționare disponibile dict ().
Listarea 1 prezintă exemple de diverse colecții disponibile în Python.
Listarea 1. Tipuri de colecții disponibile în Python
Definirea funcțiilor în Python
Deși Python suportă OOP, dar multe dintre caracteristicile sale sunt puse în aplicare ca funcții separate; În plus, modulele de expansiune sunt adesea realizate, de asemenea, sub formă de funcții de bibliotecă. Funcțiile sunt, de asemenea, utilizate în clasă, în cazul în care în mod tradițional se numesc metode.
Sintaxa pentru definirea funcțiilor în Python este foarte simplu; luând în considerare cerințele descrise mai sus:
După cum puteți vedea, trebuie să utilizați cuvântul oficial def, de colon și de indentare. Funcția de apel este, de asemenea, foarte simplu:
Parametrii pot fi transmise ca pur și simplu ordinea de transfer și numele, în acest caz, nu este necesar să se specifice atunci când apelați acei parametri care au valori implicite, și să transmită numai necesară sau schimba ordinea parametrilor în apelul funcției:
Dacă funcția este foarte simplă și constă dintr-o singură linie, aceasta poate fi determinată direct la fața locului, în Python o astfel de structură este numită o funcție lambda (lambda). lambda-funcție - este o funcție anonimă (fără nume propriu), organismul care este declarația operatorului return, care returnează o valoare a unei expresii. Această abordare poate fi utilă în anumite situații, dar este de remarcat faptul că reutilizarea acestor funcții nu poate fi ( „în cazul în care el sa născut acolo și la îndemână“).
O alta este de a descrie atitudinea Python față de utilizarea recursivitatii. În mod implicit, adâncimea recursie este limitată la 1000 niveluri, iar atunci când acest nivel este trecut, va exista o excepție, iar programul de lucru va fi oprit. Cu toate acestea, dacă este necesar, această valoare limită poate fi modificată.