# Tutorialul de Python

Python-ul este un limbaj de programare puternic, ușor de învățat. El are structuri de date de nivel înalt eficiente și o abordare simplă dar eficace a programării orientate-obiect. Sintaxa elegantă și tipizarea dinamică ale Python-ului, împreună cu natura sa interpretată, fac din el un limbaj ideal pentru scriptare și dezvoltarea rapidă de aplicații în multe domenii pe majoritatea platformelor de calcul.

Interpretorul de Python și biblioteca standard extinsă sunt disponibile liber în cod-sursă sau în format binar pentru toate platformele importante de calcul pe site-ul web Python, https://www.python.org/, și pot fi distribuite (la) liber. Același site conține și distribuții de și pointeri către multe module Python libere ale altor părți, programe și unelte, precum și documentație adițională.

Interpretorul de Python se extinde ușor cu funcții și tipuri de date noi implementate în C sau în C++ (ori în alte limbaje apelabile din C). Python-ul este potrivit, de asemenea, ca limbaj de extindere pentru aplicații personalizabile.

This tutorial introduces the reader informally to the basic concepts and features of the Python language and system. It helps to have a Python interpreter handy for hands-on experience, but all examples are self-contained, so the tutorial can be read off-line as well.

Pentru o descriere a obiectelor și modulelor standard, vedeți Biblioteca standard a Python-ului. Referința limbajului Python conține o definiție mai formalizată a limbajului. Pentru a scrie extensii în C sau în C++, citiți Extinzând și scufundând interpretorul de Python și Manualul de referință al API-ului C al Python-ului. Există, de asemenea, mai multe cărți care studiază Python-ul în profunzime.

Acest tutorial nu încearcă să fie atotcuprinzător și nici să prezinte fiecare caracteristică, nici măcar fiecare caracteristică de uz frecvent. În schimb, el introduce multe din caracteristicile notabile ale Python-ului și vă veți putea face o părere consistentă despre stilul și specificul limbajului. După citirea lui, veți putea citi și scrie module și programe Python, respectiv veți fi pregătit să învățați mai multe despre diversele module de bibliotecă Python descrise în Biblioteca standard a Python-ului.

Glosarul merită, de asemenea, parcurs.

- 1. Deschizându-vă apetitul
- 2. Utilizarea interpretorului de Python
  - 2.1. Invocarea interpretorului
    - 2.1.1. Transmiterea argumentelor
    - 2.1.2. Modul interactiv
  - 2.2. Interpretorul și mediul său
    - 2.2.1. Codificarea codului-sursă
- 3. O introducere informală în Python
  - 3.1. Folosind Python-ul pe post de calculator
    - 3.1.1. Numere
    - 3.1.2. Strings
    - 3.1.3. Liste
  - 3.2. Primii pași în programare
- 4. Mai multe unelte de control al fluxului
  - 4.1. Instrucțiuni `if`
  - 4.2. Instrucțiuni `for`
  - 4.3. Funcția `range()`
  - 4.4. `break` and `continue` Statements, and `else` Clauses on Loops
  - 4.5. Instrucțiuni `pass`
  - 4.6. Instrucțiuni `match`
  - 4.7. Definirea funcțiilor
  - 4.8. Mai multe despre definirea funcțiilor
    - 4.8.1. Valori implicite pentru argumente
    - 4.8.2. Argumentele cuvânt-cheie
    - 4.8.3. Parametri speciali
      - 4.8.3.1. Argumente pozițional-sau-cuvânt-cheie
      - 4.8.3.2. Parametri numai poziționali
      - 4.8.3.3. Argumente numai cuvinte-cheie
      - 4.8.3.4. Exemple de funcții
      - 4.8.3.5. De reținut
    - 4.8.4. Liste arbitrare de argumente
    - 4.8.5. Despachetarea listelor de argumente
    - 4.8.6. Expresii lambda
    - 4.8.7. Șiruri de documentație
    - 4.8.8. Adnotarea funcțiilor
  - 4.9. Intermezzo: stilul în care scriem cod
- 5. Structuri de date
  - 5.1. Mai multe despre liste
    - 5.1.1. Utilizarea listelor ca stive
    - 5.1.2. Făcând cozi din liste
    - 5.1.3. Comprehensiunea listelor
    - 5.1.4. Comprehensiuni imbricate de liste
  - 5.2. Instrucțiunea `del`
  - 5.3. Tupluri și secvențe
  - 5.4. Seturi
  - 5.5. Dicționare de date
  - 5.6. Tehnici de iterare
  - 5.7. Mai multe despre expresiile de control
  - 5.8. Comparând secvențe și alte tipuri de obiecte
- 6. Module
  - 6.1. Mai multe despre module
    - 6.1.1. Executând module ca scripturi
    - 6.1.2. Calea de căutare a modulelor
    - 6.1.3. Fișiere Python „compilate”
  - 6.2. Module standard
  - 6.3. Funcția `dir()`
  - 6.4. Pachete
    - 6.4.1. Importând * dintr-un pachet
    - 6.4.2. Referințe intra-pachet
    - 6.4.3. Pachete situate în mai multe directoare
- 7. Intrări și ieșiri
  - 7.1. Formatări elegante ale ieșirii
    - 7.1.1. Șiruri de caractere literale formatate
    - 7.1.2. Metoda format() a tipului șir de caractere
    - 7.1.3. Formatare manuală a șirurilor de caractere
    - 7.1.4. Vechiul stil de formatare al șirurilor de caractere
  - 7.2. Citirea și scrierea fișierelor
    - 7.2.1. Metodele obiectelor fișier
    - 7.2.2. Salvarea structurilor de date cu `json`
- 8. Erori și excepții
  - 8.1. Erori de sintaxă
  - 8.2. Excepții
  - 8.3. Tratarea excepțiilor
  - 8.4. Ridicând excepții
  - 8.5. Înlănțuirea excepțiilor
  - 8.6. Excepții definite de utilizator
  - 8.7. Definirea unor acțiuni de curățare
  - 8.8. Acțiuni de curățare predefinite
- 9. Clase
  - 9.1. O vorbă despre nume și obiecte
  - 9.2. Domenii de valabilitate și spații de nume în Python
    - 9.2.1. Un exemplu cu domenii de valabilitate și spații de nume
  - 9.3. Prima privire aruncată asupra claselor
    - 9.3.1. Sintaxa definiției unei clase
    - 9.3.2. Obiectele clasă
    - 9.3.3. Obiectele instanță
    - 9.3.4. Obiectele metodă
    - 9.3.5. Variabile de clasă și variabile de instanță
  - 9.4. Observații diverse
  - 9.5. Moștenirea
    - 9.5.1. Moștenirea multiplă
  - 9.6. Variabile private
  - 9.7. Șurubărie
  - 9.8. Iteratori
  - 9.9. Generatori
  - 9.10. Expresii generator
- 10. Turul pe scurt al bibliotecii standard
  - 10.1. Interfața cu sistemul de operare
  - 10.2. Caractere de înlocuire pentru fișiere
  - 10.3. Argumente în linia de comandă
  - 10.4. Redirecționarea ieșirii erorilor și încheierea programelor
  - 10.5. Identificarea după tipare a șirurilor de caractere
  - 10.6. Matematică
  - 10.7. Accesul la Internet
  - 10.8. Date calendaristice și momente de timp
  - 10.9. Compresia datelor
  - 10.10. Măsurarea performanțelor
  - 10.11. Controlul calității
  - 10.12. Bateriile sunt incluse
- 11. Turul pe scurt al bibliotecii standard — Partea II
  - 11.1. Formatarea ieșirii
  - 11.2. Folosirea șabloanelor
  - 11.3. Lucrul cu machete ale înregistrărilor de date binare
  - 11.4. Execuții multifilare
  - 11.5. Jurnalizarea
  - 11.6. Referințe slabe
  - 11.7. Unelte pentru lucrul cu liste
  - 11.8. Decimal Floating Point Arithmetic
- 12. Medii virtuale și pachete
  - 12.1. Introducere
  - 12.2. Crearea de medii virtuale
  - 12.3. Administrarea pachetelor cu pip
- 13. Și acum?
- 14. Editarea interactivă a datelor de intrare și substituții în istoric
  - 14.1. Completări din tabulator și editarea istoricului
  - 14.2. Alternative la interpretorul interactiv
- 15. Floating Point Arithmetic: Issues and Limitations
  - 15.1. Erori de reprezentare
- 16. Anexă
  - 16.1. Modul interactiv
    - 16.1.1. Tratarea erorilor
    - 16.1.2. Scripturi Python executabile
    - 16.1.3. Fișierul de pornire pentru sesiunea interactivă
    - 16.1.4. Module de personalizare