Python
Python és un llenguatge de programació d'alt nivell i propòsit general molt utilitzat.[1][2][3] Va ser creat per Guido van Rossum l'any 1991. La seva filosofia de disseny busca llegibilitat en el codi i la seva sintaxi permet als programadors expressar conceptes en menys línies de codi del que seria possible en llenguatges com C.[4][5] També proveeix estructures per permetre programes més entenedors tant a petita com a gran escala.[6] Python suporta diversos paradigmes de programació, incloent-hi programació orientada a objectes (POO), imperativa i també funcional o procedimental. Presenta un sistema dinàmic i una gestió de la memòria automàtica i té una gran i exhaustiva biblioteca estàndard.[7] Com altres llenguatges de programació dinàmics, Python és usat sovint com un llenguatge script, però també es fa servir en una àmplia gamma de contextos no-script. Utilitzant eines desenvolupades per tercers com Py2exe, cx Freeze o Pyinstaller,[8] el codi Python pot ser reduït a programes executables independents. Existeixen intèrprets de Python per molts sistemes operatius diferents. CPython, la implementació de referència de Python, és programari lliure i de codi obert i té un model de desenvolupament basat en la comunitat, de la mateixa manera que la major part de les altres implementacions. És controlat per l'organització sense ànim de lucre «Python Software Foundation», creada el 6 març 2001.[9] La missió de la fundació és fomentar el desenvolupament de la comunitat Python.[10] És responsable de diversos processos dins de la comunitat, com el desenvolupament de Python, l'administració dels drets intel·lectuals i d'obtenir fons. Història![]() Python fou creat a finals dels anys 80[11] per Guido van Rossum al Centrum Wiskunde & Informatica (CWI) als Països Baixos, com a successor del llenguatge ABC (que alhora havia estat inspirat en SETL),[12] capaç de gestionar excepcions i interconnectar amb el sistema operatiu Amoeba.[13] La seva implementació va començar el desembre de l'any 1989.[14] Van Rossum va ser el principal responsable del projecte, atès que era el promotor principal en el seu desenvolupament. Aquest llenguatge va ser creat amb la intenció que fos fàcil d'utilitzar i d'aprendre sense comprometre rendiment i velocitat d'execució, però el maquinari disponible a l'època de la seva creació va dificultar el seu ús, i el projecte no va tenir la repercussió inicial que s'esperava. El 1991, Van Rossum va publicar el codi de la versió 0.9.0 a alt.sources. En aquesta etapa del desenvolupament ja estaven presents classes amb herència, control d'excepcions, funcions i els tipus modulars tals com Python va tenir la seva versió 1.0 l'any 1994. Una característica d'aquest llançament van ser les eines de la programació funcional: L'última versió alliberada provinent de CWI va ser Python 1.2. L'any 1995, Van Rossum va continuar el seu treball amb Python en la Corporation for National Research Initiatives (CNRI) a Reston, Virginia, on va llançar diverses versions del software. Durant la seva estada al Corporation for National Research Initiatives (CNRI), Van Rossum va proposar la iniciativa Computer Programming for Everybody (CP4E), amb la finalitat de fer la programació més accessible per a més gent, amb un ‘nivell d'alfabetització’ bàsic en llenguatges de programació, similar a l'alfabetització bàsica en anglès i les habilitats matemàtiques necessàries per a molts treballadors. Python va tenir un paper crucial en aquest procés a causa de la seva orientació cap a una sintaxi neta i les metes de CP4E, que presentaven similituds amb el seu predecessor ABC. El projecte fou patrocinat per DARPA.[16] L'any 2000, l'equip principal de desenvolupadors de Python es va canviar a BeOpen.com per a formar l'equip BeOpen PythonLabs. El CNRI va demanar que la versió 1.6 fos pública, continuant el seu desenvolupament fins que l'equip de desenvolupament va abandonar el CNRI. El seu programa de llançament i el de la seva versió 2.0 tenien una quantitat significativa de codi superposat.[17] Python 2.0 va ser el primer i únic llançament de BeOpen.com. Després que Python 2.0 fos publicat per BeOpen.com, Guido van Rossum i els altres desenvolupadors de PythonLabs es van unir en Digital Creations. Aquesta versió del llenguatge va prendre una característica major del llenguatge de programació funcional de Haskell: list comprehensions. La sintaxi de Python per a aquesta construcció és molt similar a la de Haskell, tret per la preferència dels caràcters de puntuació en Haskell, i la preferència de Python per paraules claus alfabètiques. Python 2.0 va introduir, a més, un sistema de recol·lecció de brossa (garbage collector) capaç de recol·lectar diferències cícliques.[17] Posteriorment a aquest doble llançament, i després que Van Rossum abandonés el CNRI per treballar amb desenvolupadors de programari comercial, va quedar clar que l'opció d'utilitzar Python amb software disponible sota GNU GPL era molt desitjable. La llicència usada fins aquell moment, la Python License, incloïa una clàusula estipulant que la llicència estava governada per l'estat de Virgínia, pel que, sota l'òptica dels advocats de Free Software Foundation (FSF), es feia incompatible amb GPL. CNRI i FSF es van relacionar per canviar la llicència de software lliure de Python per fer-la compatible amb GPL. L'any 2001, Van Rossum fou premiat amb el FSF Award for the Advancement of Free Software. A partir d'aquest any, tot el codi, documentació i especificacions afegides des de la data de llançament de la versió alfa de Python 2.1, és propietat de la Python Software Foundation (PSF), una organització sense ànim de lucre fundada el 2001, prenent com a model l'Apache Software Foundation.[18] Inclòs en aquest llançament va venir una implementació del scoping més semblant a les regles de static scoping (del qual Scheme és l'originador).[19] Una innovació major en Python 2.2 fou la unificació dels tipus de Python (tipus escrits en C), i classes (tipus escrits en Python) dins d'una jerarquia. Aquesta unificació va a conseguir un model d'objectes de Python pur i consistent.[20] També van ser agregats els generadors que van ser inspirats pel llenguatge Icon.[20] Les addicions a la biblioteca estàndard de Python i les decisions sintàctiques van ser influenciades fortament per Java en alguns casos: el package logging,[21] introduït en la versió 2.3, està basat en log4j; el parser SAX, introduït en 2.0; el package threading,[22] on la seva classe Thread exposa un subconjunt de la interfície de la classe homònima a Java. L'any 2007, el projecte CP4E va romandre inactiu, i mentre que Python intenta ser fàcil d'aprendre i no gaire antiquat en la seva sintaxi i semàntica, arribant als no programadors, no va suposar una preocupació activa.[23] Actualment, Van Rossum comparteix la seva directiva sent membre d'un consell directiu de cinc persones.[24][25][26] El gener de 2019 els desenvolupadors actius del nucli de Python van escollir Brett Cannon, Nick Coghlan, Barry Warsaw, Carol Willing i Van Rossum com un “Consell Directiu” de cinc membres per a continuar la direcció del projecte. Van Rossum és, doncs, l'autor principal de Python i avui dia segueix exercint un rol central decidint el rumb del llenguatge.[26] Els intèrprets de Python estan disponibles per a diversos sistemes operatius. CPython és la implementació de referència de Python, és programari lliure i de codi obert[18] i té un model de desenvolupament basat en la comunitat, de la mateixa manera que la major part de les altres implementacions. És controlat per l'organització sense ànim de lucre Python Software Foundation, creada el 6 de març del 2001.[27] La missió de la fundació és fomentar el desenvolupament de la comunitat de Python.[28] Aquest organisme és responsable de diversos processos dins de la comunitat, com el desenvolupament de Python, l'administració dels drets intel·lectuals i l'obtenció de fons. Python compta una llicència de codi obert, denominada Python Software Foundation License,[18] la qual és compatible amb la llicència pública general de GNU a partir de la seva versió 2.1.1, i incompatible amb versions anteriors. Sobre l'origen de Python, el mateix Van Rossum va escriure l'any 1996:[29]
Versions destacables del llenguatge:
Informació sobre versions recents:
La data de final d'ús per a Python 2.7 va ser inicialment establerta al 2015, però va ser posposada a 2020, tot i sabent que una gran part del codi existent en aquesta versió del llenguatge no serà fàcilment portada a Python 3. Actualment, una versió preliminar de Python 4.0 està sent desenvolupada, i Van Rossum adverteix que no serà tan compatible amb Python 3.0 com aquesta versió ho va ser per a 2.0.[39] Característiques i filosofiaDescripció de funcionalitatsPython és un llenguatge de programació multiparadigma. Això significa que, més que no pas forçar als programadors a adoptar un estil particular de programació, aquest llenguatge permet diversos estils: la programació orientada a objectes i la programació estructurada estan completament suportades, i moltes de les seves característiques també suporten la programació funcional i la programació orientada a aspectes (inclòs per metaprogramació[40] i metaobjectes (mètodes màgics)).[41] També són suportats molts altres paradigmes a través d'extensions, incloent disseny per contracte[42][43] i programació lògica.[44] Python utilitza mecanografia dinàmica, una combinació de recompte de referència i un recol·lector de brossa detector de cicles per al tractament de la memòria. També compta amb resolució dinàmica de noms, que lliga els noms del mètode i la variable durant l'execució del programa (també anomenat enllaç dinàmic de mètodes). El disseny de Python ofereix suport per a la Programació funcional en la tradició Lisp. Les funcions ParadigmesPython fou dissenyat per ser altament extensible, més que no pas tenir totes les seves funcionalitats construïdes en el nucli. Aquesta modularitat compacta ha fet que sigui particularment popular com un mitjà d'addició d'interfícies programables a aplicacions existents. Un dels objectius del disseny del llenguatge és la facilitat de l'extensió, de manera que es poden escriure nous mòduls fàcilment en altres llenguatges com ara C o C++. La visió de Van Rossum d'un llenguatge amb petit nucli amb una biblioteca estàndard gran i un intèrpret fàcilment extensible, van mantenir el projecte allunyat d'una de les seves frustracions amb ABC, que se centra precisament en el paradigma oposat.[11] De la mateixa manera, Python aposta per una sintaxi i gramàtica més simples i amb menys dificultats, donant així als desenvolupadors una oportunitat per dur a terme la seva metodologia de programació. A diferència del lema de Perl “hi ha més d'una manera de fer-ho”, Python recolza aquella filosofia de disseny que diu “hi hauria d'haver una manera òbvia —i preferiblement només una— de fer-ho”. Alex Martelli, membre de la Python Software Foundation i autor del llibre Python, escriu que “descriure quelcom com intel·ligent no es considera un compliment en la cultura de Python”.[45] Els desenvolupadors de Python aposten per evitar l'optimització prematura, i rebutgen les modificacions en el llenguatge de parts no crítiques de la implementació de referència CPython, ja que oferirien increments marginals en velocitat amb el cost de la claredat del codi.[46] Quan la velocitat és important, el programador de Python pot moure funcions de temps crític a aquests mencionats mòduls d'extensió escrits en altres llenguatges, o bé utilitzar PyPy, que és un compilador sobre la marxa o just-in-time compiler. Cython també és una opció, atès que tradueix el programa directament de Python a C i fa crides directes a l'API de C al seu intèrpret de Python. Aquesta última opció transforma el codi Python al el llenguatge C, proporcionant no només més velocitat d'execució sinó també la possibilitat d'utilitzar característiques pròpies de C, com ara tipar les variables, usar memoryviews, ús de decoradors etc. Un objectiu important dels desenvolupadors de Python és mantenir el llenguatge viu i en funcionament, a través de fer-lo agradable per als programadors. Queda reflectit al nom del llenguatge —que és un tribut a la comèdia britànica Monty Python—[47] i en enfocaments lúdics de tutorials i materials de referència, com per exemple fa referència a spam and eggs (d'un fragment famós de Monty Python) en comptes dels foo i bar que trobem estàndards en altres llenguatges.[48][49] La filosofia del nucli del llenguatge queda resumida en el document The Zen of Python (PEP 20), on s'inclouen aforismes com els següents:[50]
Un neologisme comú a la comunitat de Python és pythonià o pythonic, que pot tenir una gran varietat de significats relacionats amb l'estil de programació. Diem que el codi és pythonià quan en ell s'utilitzen bé els idiomes de Python, com ara la naturalesa del codi o la mostra de fluïdesa en el llenguatge, que van en concordància amb la filosofia minimalista i l'èmfasi en la llegibilitat de Python. Per altra banda, el codi que és difícil d'entendre o es llegeix com una vaga transcripció d'un altre llenguatge de programació, rep el nom de no pythonià o unpythonic. Seguint aquesta dinàmica, els usuaris i admiradors de Python, especialment aquells que destaquen per tenir coneixements o experiència en el llenguatge, acostumen a ser anomenats pythonistes.[51][52] Sintaxi i semànticaEl Python està dissenyat per ser un llenguatge molt visual, i, com a característica principal i distintiva, utilitza sagnat. Això és poc comú en llenguatges de programació, ja que molts (com el C o Java) utilitzen delimitadors com poden ser SagnatEl sagnat és la característica més visible del Python. Al contrari que en altres llenguatges, és obligatori i s'utilitza per delimitar blocs. Un augment en el sagnat, si va precedit per una declaració correcta, significa l'inici d'un nou bloc; la disminució significa el final del bloc actual.[53] S'inclou una comparació amb el Java per exemplificar-ho.
InstruccionsAlgunes de les instruccions de Python són:
ExpressionsAlgunes de les expressions de Python són similars a altres llenguatges com Java i C, mentre que d'altres no ho són:
MètodesEls mètodes a Python són les funcions que es defineixen com un bloc de codi referenciat per un nom de funció, amb cosa que permetrem trucar a la funció des de fora per a la execució d'un codi intern, cada vegada que la funció sigui trucada s'executarà el codi especificat. Finalment, una vegada executat el codi es fa un return d'un o més valors. Les funcions poden rebre com a paràmetre, és a dir, dintre del parèntesi, les variables que hagin estat declarades prèviament necessàries per executar el codi especificat.[64] L'intèrpret de Python conté una sèrie de funcions que sempre estàn disponibles perquè estàn incloses en el paquet de Python.[65] Aquí tenim un exemple de funció que incrementa el valor de x en una unitat cada vegada que es fa la trucada a la funció. def nom_funcio(x):
x = x + 1
return x
ClassesPython és un llenguatge d'alt nivell que inclou la programació orientada a objectes. Per dur a terme aquesta part de la programació, Python conté un mecanisme de creació de classes amb el qual cada inicialització de la classe crea una instància nova de l'objecte dissenyat. Cada instància pot tenir atributs adjunts per mantenir l'estat de l'objecte. El mètode constructor Amb tot això, la sintaxi per definir una clase és: class nom_classe:
def __init__(self):
#Aqui posem les característiques com per exemple:
self.nom = 'Python'
#Aqui podem definir els mètodes de funcionalitat
EscripturaPython utilitza la duck typing,[68] aplicant aquest concepte a objectes. Les restriccions de tipus no es verifiquen en temps compilació, sino que les operacions en un objecte poden fallar, el que significa que l'objecte donat no es de tipus adequat. Tot i que està escrit dinàmicament, Python està fortament escrit, per això prohibeix les operacions que no estàn ben definides (com per exemple agregar un número a una cadena). Python permet als programadors definir els seus propis tipus utilitzant classes, que s'utilitzen més usualment en la programació orientada a objectes. Abans de la versió 3.0, Python tenia dos tipus de classes: d'estil antic i de nou estil.[69] La sintaxis dels dos estils era la mateixa, la diferència és que la classe
Programes d'exempleAquest programa imprimeix "Hola món" al dispositiu de sortida predeterminat (normalment la consola), print('Hola món')
Programa que ens mostra per pantalla quins són els elements d'una llista amb un bucle iteratiu l = [1, 'Paris', 3, (8, 9), 5]
for i in l:
print(i)
Alternativament: l = [1, 'Paris', 3, (8, 9), 5]
longitud = len(l)
for i in range(0, longitud):
print(l[i])
Programa per calcular el factorial d'un nombre natural: n = int(input('Escriu un nombre natural, llavors el seu factorial serà mostrat per pantalla: ')
if n < 0:
raise ValueError('Cal que sigui un nombre natural (sencer i positiu)')
fact = 1; i = 2
while i <= n:
fact *= i
i += 1
print(fact)
Funció recursiva que calcula la successió de fibonacci utilitzant control d'errors n = int(input('Introdueix un nombre natural: '))
assert type(n) == int and n >= 0, 'Ha de ser un nombre natural'
def fibonacci(n):
if(n == 0):
n = 0
elif(n == 1):
n = 1
else:
n = fibonacci(n - 1) + fibonacci(n - 2)
return(n)
crida_a_funcio = fibonacci(n)
print('El fibonacci del nombre ' + str(n) + ' és: ' + str(crida_a_funcio))
Biblioteqies en PythonBiblioteca estàndardEl Python té una biblioteca estàndard gran, que tot sovint se cita com una de les principals fortaleses del Python.[71] Aporta eines ja programades que poden fer una gran varietat de funcions. S'ha dit que el Python té "piles incloses".[72] Els mòduls de la biblioteca estàndard es poden augmentar amb mòduls propis escrits en C o bé Python. Aquest fet, de poder combinar Python i C o C++, fa que sigui un "llenguatge de cola" molt potent entre eines i llenguatges. La biblioteca estàndard està particularment ben encarada per escriure aplicacions dirigides a Internet, amb una gran quantitat de formats estàndards i protocols (com per exemple MIME i HTTP). També inclou mòduls per crear interfícies gràfiques d'usuari, connectar a bases de dades relacionals o manipular expressions regulars.[73] La biblioteca estàndard, però, no és essencial per utilitzar el Python o incrustar-lo en altres aplicacions. El Blender 2.49, per exemple, n'omet la major part. Gestió de bibliotequesTot i que la biblioteca estàndard de Python és un dels punts forts d'aquest llenguatge de programació, a causa de la quantitat d'eines que proporciona per a realitzar diferents tasques, la gran comunitat de programadors de Python ha creat amb el pas del temps biblioteques per a fer tasques específiques. El repositori oficial de Python és el Python Package Index, abreviat com PyPI. Col·loquialment es coneix com a Cheese Shop, fent referència a un sketch còmic dels Monty Python. Alberga més de 200.000 biblioteques diferents.[74] Degut a la gran varietat de biblioteques disponibles, normalment s'utilitzen gestors (package managers en anglès) per afegir aquestes biblioteques a una instal·lació de Python. pippip és el gestor de facto de Python, la majoria d'instal·lacions utilitzen com a predeterminat aquest gestor. A partir de les distribucions Python 2.7.9 i Python 3.4, pip és inclòs com a gestor per defecte. D'acord amb el seu creador, Ian Bicking, és un acrònim de Pip Installs Packages. Per instal·lar una biblioteca s'haurà d'introduir la següent comanda per terminal (linux): pip install <package>
Una de les característiques principals d'aquest gestor és la possibilitat de crear entorns virtuals amb versions específiques d'algunes biblioteques. Això permet crear còpies idèntiques de grups sencers de paquets en altres ordinadors de manera senzilla i eficient. PyPI instal·la les biblioteques com a fitxers comprimits wheel (.whl); aquests es poden instal·lar directament descomprimint-los a la carpeta site-packages de la instal·lació de Python, tot i que es recomana utilitzar un instal·lador especialitzat. El format del fitxer està establert per la proposta de millora de Python 427 (Python Enhancement Proposals) o PEP 427.[75] condaConda és un gestor de paquets i d'entorns multiplataforma de codi obert per a qualsevol llenguatge de programació. Va ser desenvolupat per resoldre les dificultats que afrontaven els analistes de dades i la comunitat bioinformàtica al moment d'instal·lar biblioteques. Avui dia és utilitzat principalment per gestionar biblioteques de Python i R, i està recolzada per la companyia Anaconda Inc.[76] La gran diferència respecte de pip és la gestió de conflictes entre dependències de diferents biblioteques, ajustant les versions d'aquestes per evitar errors. És el gestor predeterminat de les distribucions d'Anaconda i Miniconda. En referència a la utilització dels paquets, l'enfocament de conda és completament diferent al de pip; a diferència d'aquest, els paquets de conda són binaris, no necessiten un compilador per a instal·lar-los, i tampoc estan limitats a Python únicament, ja que aquest és un gestor multillenguatge que funciona amb una gran varietat de llenguatges de programació. Per instal·lar una biblioteca s'haurà d'introduir la següent comanda per terminal, un cop instal·lat el gestor:[77] conda install <package>
Entorns de desenvolupamentLa gran majoria de les implementacions de Python (incloent CPython) inclouen un bucle llegeix-avalua-mostra (REPL, per les seves sigles en anglès), permetent-los funcionar com un intèrpret de línies de comandes per al qual l'usuari introdueix elements seqüencialment i en rep els resultats de forma immediata. Altres interfícies, incloent IDLE, byPython i iPython, afegeixen habilitats més enllà com ara autocompletat millorat, retenció de l'estat de la sessió acoloriment del codi per tal de facilitar-ne la visualització, comprensió i llegibilitat. A mesura que els escriptoris estàndard integraven entorns de desenvolupament, van anar apareixent IDEs basades en entorns web. Alguns d'ells podrien ser SageMath (pensat per desenvolupar programes de Python relacionats amb la ciència i les matemàtiques); PythonAnywhere, un entorn basat amb IDE basat en navegador; Canopy IDE, un IDE comercial de Python fent èmfasi en les ciències de la computació;[78] Jupyter Notebook, amb una interfície basada en navegador web i un entorn basat en cel·les de codi, semblant a SageMath; Google Collab, amb un entorn semblant a Jupyter Notebook però amb possibilitat d'execució remota en servidors d'aquesta companyia. ImplementacionsCPythonLa implementació principal del Python, coneguda com a CPython, està escrita en C, satisfent l'estàndard C89.[79] El CPython compila els programes Python en un bytecode intermedi,[80] que posteriorment s'executa per la màquina virtual.[81] Es distribueix amb una biblioteca estàndard força gran escrita en una barreja de C i Python. Té versions per moltes plataformes, incloent Microsoft Windows i la major part dels sistemes Unix-like moderns. Des de la seva concepció va ésser dissenyat per ser multiplataforma; el seu ús i desenvolupament en plataformes esotèriques com Aomeba, juntament amb altres més convencionals com Unix i Mac OS, ha ajudat en aquest aspecte.[82] El 2009 Google va començar un projecte anomenat Unladen Swallow amb l'objectiu d'incrementar la velocitat de l'interpretador Python unes cinc vegades.[83] DesenvolupamentEl desenvolupament de Python es desenvolupa en gran manera a través del procés de Proposta de millora de Python (PEP, "Python Enhancement Proposal" en anglés), el mecanisme principal per proposar novetats importants, recopilar aportacions de la comunitat sobre problemes i documentar decisions sobre disseny de Python.[84] L'estil de codificació de Python es troba recollit a PEP 8.[85] Els PEP excepcionals són revisats i comentats per la comunitat Python i el consell directiu.[84] La millora del llenguatge es correspon amb el desenvolupament de la implementació de referència CPython. La llista de correu python-dev és el fòrum principal per al desenvolupament de l'idioma. Els problemes específics es discuteixen al sistema de seguiment d'errors Roundup allotjat a bugs.python.org.[86] El desenvolupament va tenir lloc inicialment en un repositori de codi font que s'allotjava a Mercurial fins que Python es va traslladar a GitHub el gener de 2017.[87] Les versions públiques de CPython es divideixen en tres tipus, que es distingeixen per quina part del número de versió s'incrementa:
Python 3.9 alpha1 es va anunciar al novembre de 2019[38] i amb l'adopció d'una nova cadència de llançament anual,[90][91] el primer llançament de 3.9 està previst per a novembre de 2020.[92] Molts candidats alfa, beta i estables també es publiquen com a previsualitzacions i per provar-los abans dels llançaments finals. Tot i que hi ha un calendari aproximat per a cada llançament, sovint es retarden si el codi no està llest. L'equip de desenvolupament de Python supervisa l'estat del codi executant varies proves unitàries durant el desenvolupament i utilitzant el sistema d'integració contínua BuildBot.[93] La comunitat de desenvolupadors de Python també ha contribuït amb més de 206.000[94] mòduls de programari (a partir del 29 de novembre de 2019) índex de paquets de Python (PyPI), el dipòsit oficial de biblioteques de tercers Python. La conferència acadèmica principal de Python és PyCon. També hi ha programes especials de mentoria Python, com ara Pyladies. NomEl nom de Python deriva del grup de comèdia britànic Monty Python, que el creador de Python, Guido van Rossum, va gaudir mentre desenvolupava el llenguatge. Les referències de Monty Python apareixen sovint en el codi i cultura de Python;[95] per exemple, les variables metàstiques que s'utilitzen sovint en la literatura de Python són "spam" i "eggs" en lloc dels foobar tradicionals.[95][96] La documentació oficial de Python també conté diverses referències a les rutines de Monty Python.[97][98] El prefix Py- s'utilitza per mostrar que alguna cosa està relacionada amb Python. Exemples de l'ús d'aquest prefix en noms d'aplicacions o biblioteques de Python inclouen Pygame, una vinculació de SDL a Python (usada habitualment per crear jocs); PyQt i PyGTK, que uneixen Qt i GTK a Python respectivament; i PyPy, una implementació Python escrita originalment en Python. Generadors de documentació de l'APIEls generadors de documentació de l'API Python inclouen:
UsosDes del 2003, Python s'ha classificat constantment entre els deu primers llenguatges de programació més populars de l'Índex de la comunitat de programació TIOBE on, des del febrer del 2020, és el tercer llenguatge més popular (darrere de Java i C).[99] Va ser seleccionat Llenguatge de programació de l'any el 2007, 2010 i 2018.[100] Un estudi empíric va descobrir que els llenguatges script, com Python, són més productius que els llenguatges convencionals, com C i Java, per problemes de programació que impliquen la manipulació i la cerca de cadenes en un diccionari, i va determinar que el consum de memòria era sovint "millor que Java i no molt pitjor que C o C ++ ".[101] Les grans organitzacions que utilitzen Python inclouen Wikipedia, Google,[102] Yahoo!,[103] CERN,[104] NASA,[105] Facebook,[106] Amazon, Instagram,[107] Spotify[108] i algunes entitats més petites com ILM.[109] El lloc de xarxes socials Reddit està escrit completament a Python.[110] Python pot servir com a llenguatge script per a aplicacions web, per exemple, a través de mod wsgi per al servidor web Apache.[111] Amb la Web Server Gateway Interface, una API estàndard ha evolucionat per facilitar aquestes aplicacions. Els entorns de treball per a aplicacions web com Django, Pylons, Pyramid, TurboGears, web2py, Tornado, Flask, Bottle i Zope donen suport als desenvolupadors en el disseny i manteniment d'aplicacions complexes. Pyjs i IronPython es poden utilitzar per desenvolupar la part del client de les aplicacions basades en Ajax. SQLAlchemy es pot utilitzar com a mapejador de dades a una base de dades relacional. Twisted és un entorn de treball per programar comunicacions entre ordinadors i que és utilitzat (per exemple) per Dropbox. Biblioteques com NumPy, SciPy i Matplotlib permeten l'ús eficaç de Python en computació científica,[112][113] amb biblioteques especialitzades com Biopython i Astropy proporcionant funcionalitat específica del domini. SageMath és un programari matemàtic amb una interfície de quaderns programable a Python: la seva biblioteca cobreix molts aspectes de les matemàtiques, incloent àlgebra, combinatòria, anàlisi numèrica, teoria de nombres i càlcul. Python s'ha incrustat amb èxit en molts productes de programari com a llenguatge script, inclòs en programari d'anàlisi d'elements finits com Abaqus, modelador de CAD 3D com FreeCAD, paquets d'animació 3D com 3ds Max, Blender, Cinema 4D, Lightwave, Houdini, Maya, Modo, MotionBuilder, Softimage, el compositor d'efectes visuals Nuke, programes d'imatge en 2D com GIMP,[114] Inkscape, Scribus i Paint Shop Pro,[115] i programes de notació musical com a editors de partitures i capella. GNU Debugger utilitza Python per mostrar estructures complexes com ara contenidors C ++. Esri promou Python com la millor opció per escriure guions a ArcGIS.[116] També s'ha utilitzat en diversos videojocs,[117][118] i s'ha adoptat com a primer dels tres llenguatges de programació disponibles a Google App Engine, els altres dos són Java i Go.[119] Python s'utilitza habitualment en projectes d'intel·ligència artificial amb l'ajut de biblioteques com TensorFlow, Keras, Pytorch i Scikit-learn.[120][121][122][123] Com a llenguatge script amb programació modular, sintaxi senzilla i eines de processament de text enriquit, Python s'utilitza sovint per al processament de llenguatge natural.[124] Molts sistemes operatius inclouen Python com a component estàndard. S'ofereix amb la majoria de distribucions Linux,[125] AmigaOS 4, FreeBSD (com a paquet), NetBSD, OpenBSD (com a paquet) i macOS i es pot utilitzar des de la línia d'ordres (terminal). Moltes distribucions de Linux utilitzen instal·ladors escrits a Python: Ubuntu utilitza l'instal·lador Ubiquity, mentre que Red Hat Linux i Fedora utilitzen el programari Anaconda. Gentoo Linux utilitza Python en el seu sistema de gestió de paquets, Portage. Python s'utilitza àmpliament en la indústria de la seguretat de la informació, inclòs en el desenvolupament d'exploits.[126][127] La major part del programari Sugar per a Un portàtil per nen/a XO (OLPC), actualment desenvolupat a Sugar Labs, està escrit a Python.[128] El projecte SBC Raspberry Pi ha adoptat Python com a principal llenguatge de programació d'usuaris. A causa del llenguatge i de les convencions fàcils d'entendre de Python, s'utilitza habitualment com a llenguatge d'introducció en ciències de la computació amb els estudiants. Això permet als estudiants aprendre fàcilment teories i conceptes informàtics i després aplicar-los a altres llenguatges de programació. LibreOffice inclou Python i té la intenció de substituir Java per Python. El seu proveïdor de scripts de Python és una característica bàsica[129] des de la versió 4.0 des del 7 de febrer de 2013. Referències
Vegeu tambéBibliografia
Enllaços externs
|
Portal di Ensiklopedia Dunia