# 1. Deschizându-vă apetitul

Dacă lucrați mult pe calculator, atunci ați întâlnit activități pe care v-ar plăcea să le automatizați. De exemplu, poate că doriți să realizați o căutare-cu-înlocuire într-un număr mare de fișiere text, ori să redenumiți și să rearanjați un set de fișiere foto într-un fel sofisticat. Poate că v-ar plăcea să scrieți o mică bază de date personalizată, ori o aplicație GUI specializată, ori un joc simplu.

Dacă sunteți un dezvoltator software profesionist, atunci poate că trebuie să utilizați anumite biblioteci C/C++/Java însă constatați că ciclul tipic scrie/compilează/testează/recompilează durează prea mult. Poate că scrieți o suită de teste pentru o asemenea bibliotecă și constatați că scrierea codului de testare este o sarcină sâcâitoare. Ori poate că ați scris un program căruia i-ar fi de folos un limbaj de extindere dar nu doriți nici să proiectați și nici să implementați un întreg limbaj nou pentru o singură aplicație.

Python-ul este limbajul potrivit pentru dumneavoastră.

Ați putea scrie un script de comenzi Unix ori niște fișiere de comenzi Windows pentru unele din aceste sarcini, doar că scripturile de comenzi se pricep cel mai bine la mutări de fișiere și la modificări de text și nu se prea potrivesc la aplicații GUI și nici la jocuri. Ați putea scrie un program C/C++/Java, numai că până și prima schiță a lui vă va înghiți o mulțime de timp. Python-ul se folosește mai simplu, este disponibil în sistemele de operare Windows, macOS și Unix și vă va ajuta să vă faceți treaba repede.

Python-ul este simplu de folosit, însă este un limbaj de programare adevărat, care oferă mult mai multă structurare și suport pentru programele de dimensiuni mari decât o pot face script-urile de comenzi ori fișierele de comenzi. Pe de altă parte, Python-ul oferă și mult mai multă verificare a erorilor decât C-ul, apoi, fiind un limbaj de nivel foarte înalt, are predefinite tipuri de date de nivel înalt, precum tablourile flexibile și dicționarele. Datorită tipurilor sale de date mai generale, Python-ul este utilizabil într-o problematică mult mai largă decât Awk-ul sau chiar decât Perl-ul, iar multe chestiuni se rezolvă cel puțin la fel de ușor în Python ca în aceste limbaje.

Python-ul vă permite să vă împărțiți programul în module care pot fi reutilizate în alte programe Python. El vine cu o mare colecție de module standard pe care le puteți folosi drept bază a programelor dumneavoastră — sau ca exemple atunci când veți începe să învățați programarea în Python. Unele din aceste module oferă facilități pentru I/E de fișiere, apeluri de sistem, socluri și chiar interfețe cu seturile de unelte dedicate interfeței grafice cu utilizatorul cum ar fi Tk-ul.

Python-ul este un limbaj interpretat, care vă poate economisi timp considerabil pe perioada dezvoltării unui program deoarece nu va fi nevoie nici de compilare și nici de editarea legăturilor. Interpretorul poate fi utilizat în mod interactiv, ceea ce ușurează experimentarea caracteristicilor limbajului, scrierea unor programe de unică folosință, ori testarea de funcții în timpul dezvoltării unui program de-jos-în-sus. În plus, este un calculator de birou la îndemână.

Python-ul permite ca programele să fie scrise compact și lizibil. Programele scrise în Python sunt, de obicei, mult mai scurte decât programele C, C++ sau Java echivalente lor, din mai multe motive:

- tipurile de date de nivel înalt vă permit să exprimați operații complexe într-o singură instrucțiune;

- gruparea instrucțiunilor se face prin indentare în loc de acolade de început și de sfârșit;

- nu sunt necesare declarațiile de variabile ori de argumente.

Python-ul este extensibil: dacă știți să programați în C, va fi ușor să adăugați o nouă funcție predefinită sau un nou modul la interpretor, fie pentru a efectua operații critice la viteză maximă, fie pentru a lega programele Python la biblioteci ce pot fi accesate numai în formă binară (precum o bibliotecă grafică comercială). Iar când vă va prinde microbul Python-ului, îi veți putea lega interpretorul la o aplicație scrisă în C ca să-l folosiți fie pe post de limbaj de extensie fie pe post de limbaj de comenzi pentru respectiva aplicație.

Apropo, limbajul a fost denumit după emisiunea „Circul zburător al lui Monty Python” a canalului BBC și nu are nimic de-a face cu reptilele. Referirile la scenetele din Monty Python în documentație nu numai că sunt permise, ele sunt încurajate!

Acum că sunteți nerăbdător să aflați despre Python, veți dori să-l examinați mai îndeaproape. Și cum cea mai bună metodă de a învăța un limbaj este să-l folosiți, tutorialul de față vă invită să vă jucați cu interpretorul de Python pe parcursul lecturii.

În capitolul următor vă vor fi explicate mecanismele de utilizare a interpretorului. Chiar dacă va părea ceva neimportant, aceste informații vor fi esențiale atunci când veți testa exemplele care vă vor fi prezentate.

Restul tutorialului introduce diverse caracteristici ale limbajului și sistemului Python cu ajutorul exemplelor, începând cu expresii simple, instrucțiuni și tipuri de date, continuând cu funcții și module și, în final, atingând concepte avansate precum excepțiile și clasele definite de către utilizator.