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. 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. "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

  * 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. 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
