# Tutorialul de Python

Sfat

Tutorialul de față a fost gândit pentru programatorii nou-veniți în lumea Python-ului, dar nu pentru începătorii nou-veniți în lumea programării.

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.

The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python website, https://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation.

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.

Acest tutorial îl introduce informal pe cititor în conceptele de bază și în caracteristicile limbajului și sistemului Python. Țineți seama de faptul că parcurgerea lui presupune din partea dumneavoastră o înțelegere (cel puțin) elementară a programării, la nivel general. Este util să aveți la îndemână un interpretor de Python pentru experimentări imediate, însă toate exemplele sunt de sine stătătoare, astfel că tutorialul poate fi citit și fără interpretor.

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. Text
    - 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. Instrucțiunile `break` și `continue`
  - 4.5. Clauzele `else` ale ciclurilor
  - 4.6. Instrucțiuni `pass`
  - 4.7. Instrucțiuni `match`
  - 4.8. Definirea funcțiilor
  - 4.9. Mai multe despre definirea funcțiilor
    - 4.9.1. Valori implicite pentru argumente
    - 4.9.2. Argumentele cuvânt-cheie
    - 4.9.3. Parametri speciali
      - 4.9.3.1. Argumente pozițional-sau-cuvânt-cheie
      - 4.9.3.2. Parametri numai poziționali
      - 4.9.3.3. Argumente numai cuvinte-cheie
      - 4.9.3.4. Exemple de funcții
      - 4.9.3.5. De reținut
    - 4.9.4. Liste arbitrare de argumente
    - 4.9.5. Despachetarea listelor de argumente
    - 4.9.6. Expresii lambda
    - 4.9.7. Șiruri de documentație
    - 4.9.8. Adnotarea funcțiilor
  - 4.10. 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.1.5. Unpacking in Lists and List Comprehensions
  - 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
  - 8.9. Ridicarea și tratarea de excepții grupate, fără legătură una cu alta
  - 8.10. Îmbogățind excepțiile cu notițe
- 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. Aritmetică în virgulă mobilă pentru numere zecimale
- 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. Aritmetică în virgulă mobilă: probleme și limitări
  - 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