Facilitatile limbajului Python (3/4)

<< Pagina precedenta

Python suporta (si foloseste extensiv) tratarea exceptiilor ca metode de testare a erorilor si alte evenimente deosebite din program. Este de asemenea posibila captarea unei exceptii generata de eroarea de sintaxa. Stilul limbajului face apel la exceptii ori de cate ori o eroare apare (asa, spre exemplu, in locul testarii existentei unui fisier, Python incearca sa il foloseasca direct, generand o exceptie in cazul unei erori).

Exceptiile pot fi folosite si ca metode generale de transfer non-local sau control, chiar atunci cand problema nu consta intr-o eroare. Spre exemplu, aplicatia GNU Mailman de mailing foloseste exceptii pentru a iesi dintr-o logica complex indentata a tratarii mesajelor atunci cand s-a luat o decizie pentru a ignora un mesaj sau pentru a-l retine in vederea aprobarii de catre moderator. Exceptiile sunt dese si apar mai ales in firele de executie.

Interpretorul standard Python suporta de asemenea un mod interactiv in care se comporta ca un shell: pot fi introduse expresii pe rand, iar rezultatul evaluarii lor este imediat. Este inclus de asemena un framework extensiv pentru testare, ceea ce face limbajul usor de depanat.

Exemplu de aplicatie in Python

In continuare am inclus pentru download o aplicatie realizata de mine in cadrul unui proiect, aplicatie pentru aproximarea functiilor neliniare cu retele neuronale. Aplicatia este realizata folosind Python 2.4.1 cu pachetele wxPython si NumericPy.

Aplicatia este interactiva, cu o interfata ergonomica si permite vizualizarea procesului de antrenare a retelei neuronale, realizand de asemenea un grafic pentru eroarea estimata de catre program.

Exista doua variante ale acestei aplicatii (versiunea 1.3 si versiunea 2.0 sunt ambele disponibile pentru download), cea de a doua foloseste o retea de tip "backpropagation" cu un nivel pentru a incerca sa estimeze o functie de o singura variabila.

In figura din dreapta este prezentata varianta 1.3, cu parametrii complet customizabili si un screenshot preluat in timpul antrenarii retelei neuronale.

Pentru dezvoltare am folosit programarea orientata obiect si facilitatile pe care Python le pune la dispozitia programatorilor in acest sens, precum si doua pachete aditionale pentru realizarea usoara a interfetei grafice, respectiv pentru a efectua anumite calcule de continut.

Programul a fost dezvoltat intamplator cu Python, intr-unul din momentele in care incercam sa realizez un proiect ce implicau retelele neuronale, si aveam nevoie de un mediu vizual, ce permite grafice pentru functii (realizate cat mai usor posibil) si cu o dimensiune a codului cat mai mica. Din dorinta de a incerca un limbaj nou, am inceput dezvoltarea in Python, iar dupa cateva zile de citit documentatie, forum-uri si trial and error, am fost foarte placut surprins de rezultat. In acest mod s-a nascut versiunea 1.0 a programului, versiune care apoi a necesitat cateva imbunatatiri minore de forma, continut si aspect, rezultand in cele din urma in prima varianta de folosire, versiunea 1.3.

Continuare >>

Generalitati despre limbaj si istoricul lui
Facilitatile pe care le ofera limbajul Python
Comparatie intre Python si alte limbaje

Pagina dedicata tehnologiei Python va prezinta modurile de folosinta ale acestui limbaj si incearca sa va introduca pas cu pas in modul de organizare a limbajului, structurile sale de control si cateva trucuri care pot fi folosite pentru dezvoltarea aplicatiilor. Detalii...

Aflati detalii despre istoricul limbajului Python, creatorii lui, versiunile existente in momentul de fata, cat de puternic este si pentru ce anume este recomandat, toate in pagina de continut. Detalii...

Spre final, vom compara tehnologia Python cu alte tehnologii similare, vom incerca sa evidentiem punctele forte si punctele slabe ale acesteia, si vom oferi cateva resurse online pentru cei care doresc sa inceapa sa programeze in Python, sau sa isi imbunatateasca cunostintele in acest domeniu. Detalii...