Python este menit să fie un limbaj ușor de citit. Formatarea sa este vizuală, și folosește adesea cuvinte cheie în limba engleză, unde alte limbi folosesc punctuația. Spre deosebire de multe alte limbi, nu folosește paranteze cretate pentru a delimita blocuri, iar punctele și virgulele după instrucțiuni sunt opționale. Are mai puține excepții sintactice și cazuri speciale decât C sau Pascal.
Indentare
Python folosește indentarea spațiului gol, mai degrabă decât parantezele sau cuvintele cheie, pentru a delimita blocurile. O creștere a indentării vine după anumite afirmații; o scădere a indentării semnifică sfârșitul blocului curent. Astfel, structura vizuală a programului reprezintă cu precizie structura semantică a programului. Această caracteristică este uneori denumită regula off-side, pe care o împărtășesc și alte limbi, dar în majoritatea limbilor indentarea nu are nicio semnificație semantică.
Declarații și flux de control
Declarațiile Python includ (printre altele):
- Declarația de atribuire (simbolul ‘=’, semnul egal).
- Instrucțiunea if, care execută condiționat un bloc de cod, împreună cu else și elif (o contracție a lui else-if).
- Instrucțiunea for, care iterează peste un obiect iterabil, capturând fiecare element la o variabilă locală pentru a fi utilizată de blocul atașat.
- Instrucțiunea while, care execută un bloc de cod, atâta timp cât starea sa este adevărată.
- Instrucțiunea try, care permite ca excepțiile ridicate în blocul său de cod atașat să fie capturate și tratate cu excepția clauzelor; De asemenea, se asigură că codul de curățare într-un bloc finally va fi întotdeauna rulat, indiferent de modul în care iese blocul.
- Instrucțiunea raise, utilizată pentru a ridica o excepție specificată sau pentru a ridica din nou o excepție capturată.
- Instrucțiunea class, care execută un bloc de cod și își atașează spațiul de nume local la o clasă, pentru utilizare în programarea orientată pe obiect.
- Instrucțiunea def, care definește o funcție sau o metodă.
- Declarația with, de la Python 2.5 lansată în septembrie 2006, care cuprinde un bloc de cod într-un manager de context (de exemplu, achiziționarea unui lock înainte ca blocul de cod să fie executat și eliberarea blocării după aceea, sau deschiderea unui fișier și apoi închiderea acestuia) , permițând un comportament asemănător Resource Acquisition Is Initialization (RAII) și înlocuiește un idiom comun try/finally.
- Instrucțiunea break, iese din buclă.
- Declarația continue, omite această iterație și continuă cu articolul următor.
- Instrucțiunea del, elimină o variabilă, ceea ce înseamnă că referința de la nume la valoare este ștearsă și încercarea de a utiliza acea variabilă provoacă o eroare. Variabila ștearsă poate fi realocată mai târziu, în mod normal.
- Declarația pass, care servește ca NOP. Este necesar din punct de vedere sintactic pentru a crea un bloc de cod gol.
- Declarația assert, utilizată în timpul depanării pentru a verifica condițiile care ar trebui să se aplice.
- Declarația yield, care returnează o valoare dintr-o funcție generator. Din Python 2.5, yield este, de asemenea, un operator. Acest formular este utilizat pentru implementarea corutinelor.
- Instrucțiunea return, utilizată pentru a returna o valoare dintr-o funcție.
- Declarația import, care este utilizată pentru a importa module ale căror funcții sau variabile pot fi utilizate în programul curent.
- Instrucțiunea print a fost schimbată în funcția print() din Python 3.
Declarația de atribuire (‘=’) funcționează prin legarea unui nume ca referință la un obiect separat, alocat dinamic. Deoarece locația de stocare a numelui nu conține valoarea indicată, este necorespunzător să o numiți variabilă. Numele pot fi ulterior recuperate în orice moment pentru orice obiect. Deoarece un nume este un deținător de referință generic, nu este rezonabil să asociați un tip de date fix cu acesta. Cu toate acestea, la un moment dat, un nume va fi legat de un anume obiect, care va avea un tip. Această asociere este denumită tastare dinamică.
Python nu acceptă optimizarea apelurilor de coadă sau continuări de primă clasă și, potrivit lui Guido van Rossum, nu o va face niciodată. Cu toate acestea, un suport mai bun pentru funcționalitatea asemănătoare corutinei este oferit în 2.5, prin extinderea generatoarelor Python. Înainte de 2,5, generatoarele erau iteratoare leneșe; informațiile erau transmise unidirecțional din generator. Din Python 2.5, este posibilă trecerea informațiilor înapoi într-o funcție generator, iar din Python 3.3, informațiile pot fi transmise prin mai multe niveluri de stivă.
Lasă un răspuns