|
< Back | Wikipedia | Home | Dark Mode PythonPython Python Extensii fisiere.py, .pyw, .pyc, .pyo, .pyd Paradigma multi-paradigma: object-oriented, imperativa, functionala, procedurala, reflectivaAparut in1991Proiectat de Guido van Rossum Dezvoltator Python Software Foundation[*][[Python Software Foundation (American nonprofit organization)| ]] Guido van Rossum[*] Ultima versiune 3.7.1 / 20 octombrie 2018 (2018-10-20) 2.7.15 / 1 mai 2018 (2018-05-01) Tipare duck typing[*][[duck typing (style of dynamic, structural typing with lazy checking of objects' attributes)| ]] dynamic typing[*][[dynamic typing (type system paradigm in which objects' types are enforced at runtime)| ]] gradual typing[*][[gradual typing (typing system)| ]] Implementari majore CPython, PyPy, IronPython, Jython Dialecte Cython, RPython, Stackless Python Influentat de ABC, ALGOL 68, C, C++, Dylan, Haskell, Icon, Java, Lisp, Modula-3, Perl Influente Boo, Cobra, D, F#, Falcon, Go, Groovy, JavaScript, Ruby Licenta Python Software Foundation License Prezenta online Site web oficial Python Programming la Wikibooks Modifica date / text Python este un limbaj de programare dinamic multi-paradigma, creat in 1989 de programatorul olandez Guido van Rossum. Van Rossum este si in ziua de astazi un lider al comunitatii de dezvoltatori de software care lucreaza la perfectionarea limbajul Python si implementarea de baza a acestuia, CPython, scrisa in C. Python este un limbaj multifunctional folosit de exemplu de catre companii ca Google sau Yahoo! pentru programarea aplicatiilor web, insa exista si o serie de aplicatii stiintifice sau de divertisment programate partial sau in intregime in Python. Popularitatea in crestere, dar si puterea limbajului de programare Python au dus la adoptarea sa ca limbaj principal de dezvoltare de catre programatori specializati si chiar si la predarea limbajului in unele medii universitare. Din aceleasi motive, multe sisteme bazate pe Unix, inclusiv Linux, BSD si Mac OS X includ din start interpretatorul CPython. Python pune accentul pe curatenia si simplitatea codului, iar sintaxa sa le permite dezvoltatorilor sa exprime unele idei programatice intr-o maniera mai clara si mai concisa decat in alte limbaje de programare ca C. In ceea ce priveste paradigma de programare, Python poate servi ca limbaj pentru software de tipul object-oriented, dar permite si programarea imperativa, functionala sau procedurala. Sistemul de tipizare este dinamic iar administrarea memoriei decurge automat prin intermediul unui serviciu ,,gunoier" (garbage collector). Alt avantaj al limbajului este existenta unei ample biblioteci standard de metode. Implementarea de referinta a Python este scrisa in C si poarta deci numele de CPython. Aceasta implementare este software liber si este administrata de fundatia Python Software Foundation. Limbajele dinamice sunt deseori caracterizate prin tipizare dinamica, sunt interpretate, au management de memorie automatizat (garbage collecting) si au un nivel inalt de abstractizare. Tipul variabilelor nu este fixat la momentul declararii acestora (de fapt, declararea variabilelor nu este necesara ca in C), ci este determinat de interpretator dupa continutul lor sau dupa operatiile efectuate. Intr-un asemenea caz se vorbeste de tipizare dinamica. Avantajul acestei metode de a lucra cu tipuri este ca codul produs este mai clar si mai intuitiv. De exemplu: a = 10 # a va fi considerat un numar intreg (integer) b = 11.5 # b va fi considerat un numar rational (double sau float) c = "un rand de text" # c va fi considerat un sir (string)In ciuda tipizarii dinamice, Python este puternic tipizat, adica interpretatorul nu permite operatii cu obiecte de tip diferit daca acestea nu sunt bine definite, cum ar fi operatiile de tip cast in C. Exista totusi unele exceptii logice, cum ar fi in cazul numerelor intregi si celor rationale (float), intre care sunt permise operatii ca adunarea sau impartirea, tipul rezultatului tinand cont de natura operatiei, cum se poate vedea mai jos: d = 10 + 11.5 # rezultatul va fi un numar rational, 21.5 e = "o briosa" + 4 # aceasta comanda va genera o eroare.Alt concept important in Python este cel al tipurilor mutabile si nemutabile. Asa cum implica numele, datele cu un tip mutabil pot fi alterate dupa initializare, in vreme ce la date nemutabile lucrul acesta este imposibil. Luand ca exemplu o lista (mutabila), constatam ca putem adauga elemente la lista sau le putem modifica fara probleme. In cazul unui sir de caractere (nemutabil), acest lucru nu este permis: lista_mea = ["mar", "para"] lista_mea.append("strugure") # adauga la lista print lista_mea[2] # afisaza: strugure sirul_meu = "varza" sirul_meu[0] = "b" # schimba cuvantul in "barza" -> EroarePython ofera tipuri traditionale de date, cum ar fi numarul intreg (integer, int) sau cel rational (float), dar introduce totodata si concepte noi. De exemplu, un grad mare de flexibilitate il ofera listele (tablourile) in Python. Acestea nu sunt statice, ci pot contine orice tipuri de date (in cadrul aceleiasi liste) si pot fi modificate pe loc adaugand si eliminand elemente fara a declara sau utiliza functii de manipulare a memoriei. lista_mea = [10, "sir de caractere", variabila, ["alta", "lista"], chiar_si_o_functie]Alte structuri de date sunt tuplurile/perechile (tuples) si dictionarele (dictionaries, mappings). Tuplurile sunt liste care au un numar prestabilit de elemente, si nu pot fi modificate partial. Tuplurile pot fi utilizate in cazuri in care este nevoie de o anumita structura de date specializata, de exemplu coordonate in spatiul cartezian. Dictionarele sunt liste neordonate in care fiecare element are asociat o cheie, care poate fi numar sau sir de caractere. Dictionarele au foarte multe aplicatii, inclusiv crearea structurilor de tip hash-tables. Python este un limbaj multi-paradigma, concentrandu-se asupra programarii imperative, orientate pe obiecte si functionale, ceea ce permite o flexibilitate mai mare in scrierea aplicatiilor. Din punctul de vedere al sintaxei, Python are un numar de constructii si cuvinte cheie cunoscute oricarui programator, dar prezinta si un concept unic: nivelul de indentare are semnificatie sintactica. Blocurile de cod sunt delimitate prin simpla indentare. In C un astfel de blocuri sunt deseori desemnate prin acolade, { O impunere similara exista si in limbajul de programare Java, care forteaza programatorii sa delimiteze clasele in fisiere aparte, din motive de organizare si sporire a eficientei de scriere a softului in echipe. Includerea tuturor acestor structuri, precum si a functiilor ce permit manipularea si prelucrarea lor, precum si multe alte biblioteci de functii sunt prezente datorita conceptului "Batteries Included", ce poate fi explicat prin faptul ca Guido van Rossum si comunitatea ce s-a format in jurul limbajului cred ca un limbaj de programare nu prezinta utilitate practica daca nu are un set de biblioteci importante pentru majoritatea dezvoltatorilor. Din acest motiv Python include biblioteci pentru lucrul cu fisiere, arhive, fisiere XML si un set de biblioteci pentru lucrul cu reteaua si principalele protocoale de comunicare pe internet (HTTP, Telnet, FTP). Un numar mare de platforme Web sunt construite cu Python. Abilitatile limbajului ca limbaj pentru programarea CGI sunt in afara oricaror dubii. De exemplu YouTube, unul din site-urile cu cea mai ampla cantitate de trafic din lume, este construit pe baza limbajului Python. Totusi, Python permite extinderea functionalitatii prin pachete aditionale programate de terti care sunt axate pe o anumita functionalitate. De pilda, pachetul wxPython contine metodele si structurile necesare crearii unei interfete grafice. Popularitatea limbajului este in crestere incepand cu anul 2000, datorita faptului ca Python permite crearea mai rapida a aplicatiilor care nu cer viteze inalte de procesare a datelor. De asemenea este util ca limbaj de scriptare, utilizat in cadrul aplicatiilor scrise in alte limbaje. Modulele (bibliotecile) Python pot fi de asemenea scrise in C, compilate si importate in Python pentru a mari viteza de procesare. Un studiu empiric a constatat ca limbajele de scripting, cum ar fi Python, sunt mai productive decat limbajele conventionale, cum ar fi C si Java, pentru probleme de programare care implica manipularea sirurilor de caractere si cautarea intr-un dictionar si a determinat ca consumul de memorie a fost adesea ,,mai bun decat Java si nu. mult mai rau decat C sau C++". Organizatiile mari care folosesc Python includ Wikipedia, Google, Yahoo!, CERN, NASA, Facebook, Amazon, Instagram, Spotify si unele entitati mai mici. precum ILM si ITA. Site-ul de retele de stiri sociale Reddit a fost scris in mare parte in Python.
Source: ro.wikipedia.org |