Jump to content

User:Anna Daban

From Wikipedia, the free encyclopedia

Python (Llenguatge de programació) De Viquipèdia lliure

Python és una proposta general, un llenguatge de programació d'alt nivell la filosofia del qual dóna molta importància al codi de lectura . La sintaxi de Python permet als programadors expressar conceptes en un menor nombre de línies de codi del que seria possible en llenguatges com C , [11] [12] i el llenguatge proporciona construccions destinades a permetre que els programes clars, tant a petita com a gran escala. [13]

Python suporta múltiples paradigmes de programació , incloent orientat a objectes , imperativa i programació funcional estils. Compta amb un tipus dinàmic i automàtic del sistema de gestió de memòria i té una àmplia i completa biblioteca estàndard. [14]

Igual que altres llenguatges dinàmics , Python s'utilitza sovint com un llenguatge de programació , però també s'utilitza en una àmplia gamma de contextos no script. L'ús d'eines de tercers, el codi Python es pot envasar en programes executables independents. Intèrprets de Python estan disponibles per a molts sistemes operatius.

CPython , la implementació de referència de Python, és lliure i programari de codi obert i té un model de desenvolupament basat en la comunitat, igual que gairebé tots els seus implementacions alternatives. CPython és administrat per l'organització no lucrativa Python Programari Foundation .

Contingut

1 Història
   2 Característiques i filosofia
   3 Sintaxi i semàntica
       3.1 Sangria
       3.2 Declaracions i control de flux
       3.3 Expressions
       3.4 Mètodes
       3.5 Typing
       3.6 Matemàtiques 
   4 Biblioteques
   5 Entorns de desenvolupament
   6 Implementacions
   7 Desenvolupament
   8 Naming
   9 Ús
   10 Impacte
   11 Vegeu també
   12 Referències
   13 Lectura addicional
   14 Enllaços externs 

Història [Icon] Aquesta secció requereix l'expansió (març de 2013). Guido van Rossum , creador de Python Article principal: Història de Python

Python va ser concebut a finals del decenni de 1980 [15] i la seva aplicació es va iniciar al desembre de 1989 [16] per Guido van Rossum al CIT en Holanda com un successor del llenguatge ABC (està inspirat en SETL ) [17] capaç de maneig d'excepcions i la interfície amb el sistema operatiu Amoeba . [1] Van Rossum és el principal autor de Python, i el seu paper central contínua en la decisió de la direcció de Python es reflecteix en el títol que li va donar a la comunitat Python, Dictador Benevolent for Life (BDFL).

Python 2.0 va ser llançat el 16 d'octubre de 2000, amb moltes característiques noves més importants, incloent un complet recol · lector d'escombraries i suport per Unicode . Amb aquest llançament el procés de desenvolupament es va canviar i es va fer més transparent i la comunitat recolzat per Washington. [18]

Python 3.0 (també conegut com Python o py3k 3000), una versió més gran, a l'inrevés-compatible, va ser llançat el 3 desembre 2008 [19] després d'un llarg període de prova. Molts dels seus principals característiques s'han portat a la Python compatible amb versions 2.6 i 2.7. [20]

Característiques i filosofia Python és un llenguatge de programació multi-paradigma : la programació orientada a objectes i la programació estructurada són totalment compatibles, i hi ha una sèrie de característiques del llenguatge que donen suport la programació funcional i programació orientada a aspectes (fins i tot per metaprogramming [21] i per mètodes màgics ). [22] Molts altres paradigmes són compatibles amb extensions, incloent el disseny per contracte [23] [24] i la programació lògica . [25]

Python usa tipus dinàmics i una combinació de recompte de referències i un cicle de detecció de recol · lector d'escombraries per la gestió de memòria . Una característica important de Python és dinàmica de resolució de noms ( l'enllaç ), que s'uneix a noms de mètodes i variables durant l'execució del programa.

El disseny de Python ofereix només un suport limitat a la programació funcional al Lisp tradició. El llenguatge té del mapa (), redueix () i el filtre () funcions, comprensions de llistes, diccionaris i conjunts, així com les expressions del generador. La biblioteca estàndard té dos mòduls (itertools i functools) que implementen eines funcionals presos de Haskell i ML estàndard . [26]

La filosofia de la base de la llengua es resumeix en el document "PEP 20 (El Zen de Python)", que inclou aforismes com ara: [27]

Bell és millor que lleig.
   Explícit és millor que implícit.
   Simple és millor que complex.
   Complex és millor que complicat.
   Conta la llegibilitat. 

En lloc de requerir que tota la funcionalitat desitjada per ser incorporat en el nucli de la llengua, Python va ser dissenyat per ser altament extensible. Python també pot ser embegut en aplicacions existents que necessiten una interfície programable. Aquest disseny d'un petit nucli del llenguatge amb una gran biblioteca estàndard i un intèrpret fàcilment extensible va ser la intenció de Van Rossum des del principi causa de les seves frustracions amb ABC (que abraçat la mentalitat oposada). [15]

A més d'oferir una opció en la codificació de la metodologia, la filosofia de Python rebutja sintaxi exuberant, com en Perl , a favor d'una més escassa, la gramàtica menys desordenada. Com Alex Martelli ho va expressar així: "Per a descriure una cosa tan intel · ligent no es considera un complert en la cultura Python". [28] La filosofia de Python rebutja el Perl " no és més que una manera de fer-ho enfocament "de disseny del llenguatge a favor de" ha d'haver un i preferiblement només una manera òbvia de fer-ho ". [27]

Desenvolupadors de Python s'esforcen per evitar la optimització prematura , i per altra banda, rebutgen pegats a les parts no crítiques CPython que oferirien un augment marginal en la velocitat a costa d'una major claredat. [29] Quan la velocitat és important, els programadors de Python utilitzen PyPy , 1 acabat compilador en temps , o moure funcions crítiques en el temps als mòduls d'extensió escrits en "més a prop dels metalls" llenguatges com C. Cython també està disponible, que es tradueix en un script de Python i C fa que l'API de nivell C directa posa a l'intèrpret de Python.

Una fita important de la Python desenvolupadors s'està burlant Python per utilitzar. Això es reflecteix en l'origen del nom, i en un acostament lúdic a vegades tutorials i materials de referència. [ cita requerida ]

Un comú neologisme a la comunitat Python és pythonic, que pot tenir una àmplia gamma de significats relacionats amb l'estil de programa. Dir que el codi és pythonic és a dir que utilitza expressions Python bo, això és normal o mostra fluïdesa en l'idioma, que s'ajusta a la filosofia minimalista de Python i l'èmfasi en la lectura. Per contra, el codi que és difícil d'entendre o es llegeix com una transcripció aproximada d'un altre llenguatge de programació s'anomena unpythonic.

Els usuaris i admiradors de Python-sobretot els que es consideren coneixedors o experimentats-s'anomenen Pythonists, Pythonistas i Pythoneers freqüència. [30] [31]

Sintaxi i semàntica Article principal: la sintaxi i la semàntica de Python

Python està dissenyat per a ser un llenguatge de fàcil lectura. Està dissenyat per tenir un disseny visual ordenat, sovint amb paraules clau en anglès en altres idiomes utilitzen puntuació. A més Python té un menor nombre d'excepcions sintàctiques i casos especials que C o Pascal . [32]

La simplicitat de Python es demostra per la seva versió del clàssic "Hola Món" :

:print ("Hola món")

Sangria

Python utilitza un espai en blanc sagnia, en lloc de claus o paraules clau, per delimitar els blocs , una característica també s'anomena regla de fora de joc . Un augment de sagnat es produeix després d'algunes declaracions,. Una disminució de la petjada significa el final del bloc actual [33] . Mentre que alguns consideren que això millora considerablement la llegibilitat, altres han criticat [34] Declaracions i control de flux

Declaracions de Python inclouen (entre altres):


  • El if declaració , que executa condicionalment un bloc de codi, juntament amb else i elif (una contracció de més-si).
  • El for declaració , que itera sobre un objecte iterable, la captura de cada element a una variable local per al seu ús pel bloc adjunt.
  • El while comunicat , que executa un bloc de codi, sempre que la seva condició sigui veritable.
  • El try declaració, que permet excepcions plantejades en el seu bloc de codi adjunt a ser capturats i manipulats per except clàusules, sinó que també s'assegura que el codi de neteja en un finally bloc sempre s'executa independentment de com surti del bloc.
  • La class declaració, que executa un bloc de codi i concedeix el seu espai de noms local a una classe , per al seu ús en la programació orientada a objectes .
  • La def declaració, que defineix una funció o mètode .
  • El with declaració (des Python 2.5), que tanca un bloc de codi dins d'un gestor de context (per exemple, l'adquisició d'un bloqueig abans que el bloc de codi s'executa, i l'alliberament del pany després), el que permet raii comportament similar.
  • El pass declaració, que serveix com un NOP . És sintàcticament es necessita per crear un bloc de codi buit.
  • El assert la declaració , que s'utilitza durant la depuració per detectar condicions que haurien d'aplicar.
  • El yield comunicat, que retorna un valor d'un generador de funció. Des Python 2.5, yield és també un operador. Aquesta forma s'utilitza per implementar co-rutines .
  • La import declaració, que s'utilitza per importar mòduls les funcions o variables es poden utilitzar en el programa actual.

Python no admet la optimització de trucada ni continuacions de primera classe , i, segons Guido van Rossum, que mai ho farà. [35] [36] No obstant això, un millor suport per a la col · rutina funcionalitat-com està previst en 2.5, mitjançant l'ampliació de Python generadors . [37] Abans de 2.5, els generadors eren mandrosos iteradors ; informació va ser transmesa unidireccionalment del generador. A partir de Python 2.5, es pot passar la informació de nou en un generador de funcions, ia partir de Python 3.3, la informació pot ser transmesa a través de múltiples nivells de pila. [38]

Expressions

Expressions de Python són similars a idiomes com C i Java :


  • En Python 2, el / operador d'enters fa la divisió entera , sinó que trunca el resultat en un enter. Divisió de punt flotant en nombres enters es pot aconseguir mitjançant la conversió d'un dels nombres enters a un flotador (per exemple float(x) / y ). En Python 3, el resultat de / és sempre un valor de punt flotant. Aquest comportament pot ser habilitat en Python 2.2 + utilitzant from __future__ import division . Tant en Python 2.2 +, Python 3, // es pot utilitzar per fer la divisió entera.
  • En Python, == compara per valor, en contrast amb Java, on es compara per referència. (Comparacions de valor en Java utilitzen el equals() mètode.) Python is operador pot ser utilitzat per comparar la identitat d'objecte (comparació per referència). Les comparacions poden ser encadenades, per exemple, a <= b <= c .
  • Python utilitza les paraules and , or , not pels seus operadors lògics en lloc dels simbòlics && , || , ! s'utilitzen en Java i C.
  • Python té un tipus d'expressió denominat 1 llista per comprensió . Python 2.4 extensa llista per comprensió en una expressió més general anomenen un generador d' expressió. [39]
  • Les funcions anònimes s'implementen utilitzant expressions lambda , però, aquests són limitats perquè el cos només pot ser una sola expressió.
  • Les expressions condicionals en Python s'escriuen com x if c else y [40] (diferent per tal d'operands del ?: operador comú a molts altres idiomes).
  • Python fa una distinció entre les llistes i tuples . Les llistes s'escriuen com [1, 2, 3] , són mutables, i no es poden usar com les tecles de diccionaris (claus de diccionari han de ser immutables en Python). Les tuples s'escriuen com (1, 2, 3) , són immutables i per tant es poden usar com les tecles de diccionaris, proporcionen tots els elements de la tupla són immutables. Els parèntesis al voltant de la tupla són opcionals en alguns contextos. Les tuples poden aparèixer a la banda esquerra d'un signe igual, de manera que una declaració com x, y = y, x pot ser utilitzat per intercanviar dues variables.
  • Python 2 té una "cadena de format" operador % . Anàlegs a Aquesta funció printf cadenes de format en C , per exemple, "foo=%s bar=%d" % ("blah", 2) s'avalua com "foo=blah bar=2" . En Python 3, això es complementa amb el format() mètode de la str classe, per exemple, "foo={0} bar={1}".format("blah", 2) .
* Python té diversos tipus de literals de cadena :
       
  1. Cadenes delimitades per cometes simples o dobles. A diferència de la shell d'Unix , Perl i llenguatges Perl d'influència, cometes simples i cometes dobles funcionar de manera similar. Tots dos tipus de cadena utilitzen la barra inversa ( \ ) com un caràcter d'escapament i no hi ha implícit interpolació de cadenes com ara "$foo" .
  2. Cordes Triple-citats, que comencen i acaben amb una sèrie de tres cometes simples o dobles. Poden abastar diverses línies i funcionen com aquí els documents en els dipòsits, Perl i Rubí .
  3. Cordes primeres varietats, denotats com prefix la cadena literal amb un r . No hi ha seqüències d'escapament s'interpreten, per tant, cordes primeres són útils quan les barres invertides literals són comuns, com les expressions regulars i de Windows camins d'estil. Comparar " @ · licitar "a C # .
  • Python té índex i llesca expressions en les llistes, denotats com a[key] , a[start:stop] o a[start:stop:step] . Els índexs són de base zero , i els índexs negatius respecte a l'extrem. Llesques prenen elements de la índex d'inici fins, però no incloent, l'índex de parada. El tercer paràmetre slice, anomenat pas o gambada, permet que els elements que poden saltar i revertir. Índexs Slice es poden ometre, per exemple a[:] retorna una còpia de la llista completa. Cada element d'un segment és una còpia superficial
. 

En Python, una distinció entre les expressions i declaracions s'imposa rígidament, a diferència de llenguatges com Lisp comú , Esquema o robí . Això condueix a una duplicació de la funcionalitat. Per exemple:

  • Les llistes per comprensió davant for els bucles
  • Condicionals expressions vs if bloqueja
  • La eval() vs exec() funcions integrades (en Python 2, exec una declaració), el primer és per a les expressions, el segon és per als estats.

Les declaracions no poden ser part d'una expressió i el llista i altres comprensions o expressions lambda , tots són expressions, no poden contenir declaracions. Un cas particular d'això és que una instrucció d'assignació com a = 1 no pot formar part de l'expressió condicional d'una declaració condicional. Això té l'avantatge d'evitar un error de C clàssic de confondre un operador d'assignació = per a un operador d'igualtat == en condicions: if (c = 1) { ... } if (c = 1) { ... } és codi C vàlid però if c = 1: ... provoca un error de sintaxi en Python.

Mètodes

Mètodes dels objectes són funcions unides a la classe de l'objecte, la sintaxi instance.method(argument) és, per als mètodes i funcions normals de sucre sintàctica per Class.method(instance, argument) . Mètodes de Python tenen un explícit self paràmetre per accedir a dades de la instància , en contrast amb l'acte implícita en alguns altres llenguatges de programació orientats a objectes (per exemple, Java , C + + o Rubí ). [41]

Typing

Python utilitza escrivint ànec i té objectes amb tipus, però els noms de variables sense tipus. Tipus limitacions no es comproven en temps de compilació , sinó que les operacions en un objecte poden fallar, el que significa que l'objecte donat no és d'un tipus adequat. Tot i estar escrit de forma dinàmica , Python és fortament tipat , les operacions que no estan ben definits (per exemple, l'addició d'un nombre en una cadena) en lloc de silenci, tractant de donar-los sentit prohibir.

Python permet als programadors definir els seus propis tipus que utilitzen les classes , que s'utilitzen amb més freqüència per la programació orientada a objectes . Nous casos de classes es construeixen trucant a la classe (per exemple, SpamClass() o EggsClass() ), i les classes mateixes són instàncies de la metaclase type (en si mateixa una instància de si mateix), el que permet metaprogramación i reflexió .

Abans de la versió 3.0, Python té dos tipus de classes:. "A l'estil antic" i "nou estil" [42] Les classes d'estil antic s'han eliminat en Python 3.0, pel que totes les classes de nou estil. En les versions entre 2.2 i 3.0, es podrien utilitzar els dos tipus de classes. La sintaxi dels dos estils és el mateix, la diferència està en si la classe d' object s'hereta de manera directa o indirecta (totes les classes de nou estil hereten de object i són instàncies de type ). Resum dels tipus incorporats de Python 3 Tipus Descripció Exemple de sintaxi str Una cadena de caràcters : un immutable seqüència de punts de codi Unicode. 'Wikipedia' "Wikipedia" """Spanning multiple lines""" bytearray Una seqüència mutable d' bytes . bytearray(b'Some ASCII') bytearray(b"Some ASCII") bytearray([119, 105, 107, 105]) bytes Una seqüència immutable de bytes. b'Some ASCII' b"Some ASCII" bytes([119, 105, 107, 105]) list Mutable llista , pot contenir tipus mixtos. [4.0, 'string', True] tuple Immutable, pot contenir tipus mixtos. (4.0, 'string', True) set , frozenset Sense ordenar fixat , no conté duplicats. A frozenset és immutable. {4.0, 'string', True} frozenset([4.0, 'string', True]) dict Un mutable array associatiu de parells clau-valor. {'key1': 1.0, 3: False} int Un immutable sencer de magnitud il · limitada. [43] 42 float Un immutable punt flotant nombre (definit pel sistema de precisió). 3.1415927 complex Un immutable de nombres complexos amb parts reals i imaginàries. 3+2.7j bool Un immutable valor de veritat . True False

Matemàtiques

A diferència d'alguns llenguatges de programació, la divisió entera està definida per arrodonir cap a l'infinit negatiu. Per tant 7 // 3 és 2, però (−7) // 3 és -3. Aquesta és uniforme i coherent: per exemple, vol dir que l'equació (a+b) // b == a // b + 1 sempre és cert, mentre que en llenguatges com ara C, (-6+7) / 7 == -6 / 7 . També vol dir que l'equació de b * (a // b) + a % b == a és vàlid tant per als valors positius i negatius de a . No obstant això, el manteniment de la validesa d'aquesta equació significa que, si bé el resultat d' a % b és, com era d'esperar, en el interval semiobert [0, b), on b és un nombre enter positiu, que ha d'estar en l'interval de (b , 0] quan b és negatiu. [44]

Python proporciona una round funció de arrodoniment flota a nombres enters. Versions abans del 3 del seu ús durant tot-fora-de-zero: round(0.5) és 1.0, round(-0.5) és -1,0. [45] Python 3 utilitza ronda a fins i tot : round(1.5) és 2.0, round(2.5) és de 2,0. [46] La Decimal Tipus / classe al mòdul decimal (des de la versió 2.4) proporciona una representació numèrica exacta i diverses maneres d'arrodoniment.

Python permet expressions booleanes amb múltiples relacions d'igualtat d'una manera que sigui consistent amb l'ús general en matemàtiques. Per exemple, l'expressió a < b < c comprova si a és menor que b i b és menor que c . C-deriven idiomes interpreten aquesta expressió diferent: en C, l'expressió seria avaluar primer a < b , el que resulta en 0 o 1, i que el resultat seria llavors ser comparat amb c . [47] [ pàgina necessària ]

Biblioteques

Python té una gran biblioteca estàndard , comunament citat com una de les majors fortaleses de Python, [48] que proporcionen eines adequades per a moltes tasques. Això és deliberat i ha estat descrit com "bateries incloses" [14] Filosofia Python. Per a aplicacions orientats a Internet, un gran nombre de formats i protocols (com l'estàndard MIME i HTTP són compatibles). Mòduls per a la creació d' interfícies gràfiques d'usuari , la connexió a bases de dades relacionals , l'aritmètica amb nombres decimals de precisió arbitrària, [49] la manipulació de expressions regulars , i fer proves unitàries també s'inclouen. Per les proves de programari , la biblioteca estàndard proporciona les unittest i doctest mòduls.

Algunes parts de la biblioteca estàndard estan coberts per les especificacions (per exemple, la WSGI aplicació wsgiref segueix PEP 333 [50] ), però la majoria dels mòduls no són. S'especifiquen pel seu codi, documentació interna, i la successió de proves (si s'inclou). No obstant això, com la major part de la biblioteca estàndard és multi-plataforma de codi Python, només hi ha uns pocs mòduls que han de ser modificades o completament reescrits per implementacions alternatives.

La biblioteca estàndard no és essencial per executar Python o incrustar Python en una aplicació. Blender 2.49, per exemple, omet la major part de la biblioteca estàndard.

El índex de paquets de Python , que és el repositori oficial de programari de tercers per Python, conté més de 25.000 "paquets" que cobreixen una àmplia gamma de funcions, incloent:


  • interfície gràfica d'usuari, framework de desenvolupament web, multimèdia, bases de dades, xarxes i comunicacions
  • marcs de proves, eines de documentació, administració de sistemes
  • computació, processament de textos, tractament d'imatges científiqu

es

Desenvolupament d'entorns

La majoria de les implementacions de Python (incloent CPython) poden funcionar com un intèrpret d'ordres , de manera que l'usuari entra en declaracions seqüencial i rep els resultats immediatament. En els actes curts, Python com una petxina .

Altres dipòsits afegir capacitats més enllà dels de l'intèrpret bàsic, incloent IDLE i IPython . Encara que en general seguint l'estil visual de la terminal de Python, que implementen característiques com auto-realització, la retenció de l'estat de sessió, i el ressaltat de sintaxi.

A més d'escriptori estàndard Python IDE (entorn de desenvolupament integrat), també hi ha navegador IDEs basats, Sage , (per al desenvolupament de programes Python relacionades amb les matemàtiques i la ciència), i un amfitrió IDE, pythonAnywhere .

Implementacions Vegeu també: Llista de programari Python # implementacions de Python

L'aplicació principal de Python, anomenat CPython , està escrit en C que satisfan els C89 estàndard. [51] Compila programes escrits en Python en l'intermediari bytecode , [52] el qual és executat per la màquina virtual. [53] CPython es distribueix amb una gran biblioteca estàndard escrit en una barreja de C i Python. Està disponible en versions per a moltes plataformes, incloent Microsoft Windows més moderns i Unix-com sistemes. CPython va ser pensat gairebé des de la seva concepció per ser multiplataforma. [54]

PyPy és, conforme ràpid [55] intèrpret de Python 2.7. El seu compilador Just-in-time aporta una millora significativa en la velocitat CPython. [56] Una versió aprofitant els processadors multi-nucli amb memòria transaccional de programari està en els treballs. [57]

Sense apilat Python és una forquilla significativa CPython que implementa microfils ; que no utilitza la pica de la memòria C, permetent d'aquesta manera massivament programes concurrents. PyPy també té una versió sense safata. [58]

Altres compiladors Just-in-time s'han desenvolupat en el passat, però ja no són compatibles:


  • Google va començar un projecte anomenat glop descarregat en 2009 amb els objectius d'augmentar la velocitat de la intèrpret de Python en 5 vegades usant la LLVM i millorar la capacitat de multithreading per escalar a milers de nuclis. [59] Més tard, el projecte va perdre el suport de Google i la seva els desenvolupadors principals. L'1 de febrer 2012 , l'intèrpret modificat va ser aproximadament 2 vegades més ràpid que CPython. [ cita requerida ]
  • Psyco és una especialitzada només en el compilador temps que s'integra amb CPython i transforma bytecode a codi de màquina en temps d'execució. El codi generat és especialitzada per a certs tipus de dades i és més ràpid que el codi Python estàndard.

El 2005 Nokia va llançar un intèrpret de Python per a la Sèrie 60 de telèfons mòbils anomenat PyS60 . Inclou molts dels mòduls de les implementacions CPython i alguns mòduls addicionals per a la integració amb el Symbian sistema operatiu. Aquest projecte s'ha mantingut al dia per funcionar en totes les variants de la plataforma S60 i hi ha diversos mòduls de tercers disponibles. El Nokia N900 també és compatible amb Python amb GTK giny de les biblioteques, amb la característica que els programes poden ser alhora escrit i s'executen en el propi dispositiu. [ cita requerida ]

Hi ha diversos compiladors d'alt nivell a llenguatges d'objectes , ja sigui sense restriccions Python, un subconjunt restringit de Python, o un llenguatge similar a Python com a llengua font:


  • Jython compila en codi de bytes de Java, que després pot ser executat per cada màquina virtual de Java aplicació. Això també permet l'ús de les funcions de la biblioteca de classes de Java del programa Python.
  • IronPython segueix un enfocament similar per tal d'executar programes de Python al. NET Common Language Runtime .
  • El RPython llenguatge pot ser compilat per C , Java bytecode o Common Intermediate Language , i s'utilitza per construir l'intèrpret de Python PyPy;
  • Pijames compila Python a JavaScript ;
  • Shed Skin compila Python per C + + ;
  • Cython i Pyrex per compilar C .

Desenvolupament

Desenvolupament de Python es porta a terme principalment a través del procés de proposta millora Python (PEP). El procés de PEP és el principal mecanisme per proposar noves i importants funcions, per a la recollida d'informació de la comunitat sobre un tema, i per a documentar les decisions de disseny que han entrat en Python. [60] PEP pendents són revisats i comentats per la comunitat Python i Van Rossum, el projecte Python Dictador Benevolent for Life (líder / idioma arquitecte). [60]

Millora de la llengua va de la mà amb el desenvolupament de la implementació de referència CPython. La llista de correu python-dev és el principal fòrum de discussió sobre el desenvolupament del llenguatge, les qüestions específiques es discuteixen al Roundup error tracker . manté python.org [61] El desenvolupament té lloc en un acte-organitzada repositori de codi font corrent Mercurial . [ cita requerida ]

Versions públiques de CPython vénen en tres tipus, que es distingeix pel qual una part del número de versió s'incrementa:

Versions cap enrere-incompatibles, on s'espera que el codi per trencar i ha de ser manualment portat . La primera part del número de versió s'incrementa. Aquests alliberaments es produeixen amb poca freqüència, per exemple, la versió 3.0 va ser llançat 8 anys després de 2.0.
   Les versions principals o "funció", que són àmpliament compatibles, però introdueixen noves característiques. La segona part del número de versió s'incrementa. Aquests llançaments estan programats per aparèixer més o menys cada 18 mesos, i cada versió important el suport de correccions durant diversos anys després del seu llançament. [62]
   Comunicats Bugfix, que introdueixen noves característiques, però no corregir els errors. La tercera i última part del número de versió s'incrementa. Aquests alliberaments es fan cada vegada que un nombre suficient d'errors han estat corregits aigües amunt des de la versió, o més o menys cada 3 mesos. Les vulnerabilitats de seguretat també estan revisats en versions de correcció d'errors. [63] 

Una sèrie de alfa, beta i release-candidats també s'alliberen com vistes prèvies i per provar abans de fer la versió final. Encara que hi ha un calendari aproximat per a cada versió, això sovint es va tirar enrere si el codi no està llest. L'equip de desenvolupament de monitoritzar l'estat del codi mitjançant l'execució de la gran prova de la unitat d' habitació durant el desenvolupament, i amb el BuildBot integració contínua del sistema. [64]

La comunitat de desenvolupadors de Python també ha contribuït amb més de 25.000 mòduls de programari per al índex de paquets de Python (anomenat pypi), el repositori oficial de les biblioteques de tercers per Python.

La principal conferència acadèmica en Python és nomenat PyCon . Hi ha programes de mentors especials com els Pyladies .

Naming

El nom de Python es deriva de la sèrie de televisió Monty Python Flying Circus , [65] i és comú l'ús de Monty referències de Python en codi de l'exemple. [66] Per exemple, les variables d'metasintácticas d'ús freqüent en la literatura Python són ous d'spam i , en lloc de la tradicional foo i bar . [66] [67]

El prefix Py-s'utilitza per mostrar que alguna cosa té a veure amb Python. Els exemples de la utilització d'aquest prefix en els noms d'aplicacions Python o biblioteques inclouen Pygame , un unió de SDL a Python (comunament utilitzat per crear jocs); PyS60 , una implementació per al Symbian S60 sistema operatiu; PyQt i PyGTK , que s'uneixen Qt i GTK , respectivament, per Python, i PyPy , una implementació de Python escrit en Python.

Ús Article principal: Llista de programari Python

Un estudi empíric trobar que, per un problema de programació que implica la manipulació de cadenes i buscar en un diccionari, llenguatges de scripting com Python eren més productius que els llenguatges convencionals com C i Java. El consum de memòria era sovint "millor que Java i no molt pitjor que la de C o C + +". [68] Les grans organitzacions que fan ús de Python inclouen Google , [69] Yahoo! , [70] CERN , [71] la NASA , [72] ILM , [73] i el ITA . [74] A partir de març 2013 , files de Python en la posició 8 a la programació Índex Comunitat TIOBE . [75]

Python s'utilitza com llenguatge de programació per a aplicacions web , per exemple, a través d' mod_wsgi per al servidor web Apache . [76] Amb la interfície de porta d'enllaç del servidor web , una API estàndard ha estat desenvolupat per facilitar aquestes aplicacions. entorns d'aplicacions web com Django , Pilones , Piràmide , TurboGears , web2py , Tornado , Flascó i Zope desenvolupadors de suport en el disseny i manteniment d'aplicacions complexes. Pijames i IronPython es poden utilitzar per desenvolupar el costat del client de les aplicacions basades en Ajax. SQLAlchemy es pot utilitzar com assignador de dades a una base de dades relacional . Twisted és un marc per a la comunicació de programes entre ordinadors, i s'utilitza per exemple Dropbox .

Biblioteques com NumPy , SciPy i Matplotlib permeten Python per funcionar amb eficàcia en la computació científica. Sage és un programari matemàtic amb un "notebook" programar en Python: la seva biblioteca abasta molts aspectes de les matemàtiques , incloent àlgebra , la combinatòria , matemàtiques numèriques , teoria de nombres , i càlcul .

Python s'ha incorporat amb èxit en una sèrie de productes de programari com un llenguatge de programació, fins i tot en el mètode d'elements finits programari com Abaqus , paquets d'animació 3D com mesclador , Cinema 4D , Lightwave , Houdini , Maya , Mode , MotionBuilder , Softimage , el visual efectes compositor Nuke , i els programes de formació d'imatges 2D com GIMP , Inkscape , Scribus i Paint Shop Pro . [77] depurador de GNU fa servir Python com una impressora bastant per mostrar estructures complexes com ara C + + contenidors. Esri està promovent Python com la millor opció per a escriure scripts en ArcGIS . [78] Fins i tot s'ha utilitzat en diversos videojocs, [79] [80] i ha estat adoptat com la primera de les tres disponibles idiomes de programació de Google App Engine , els altres dos són Java i Go . [81 ]

Python també s'ha utilitzat en la intel · ligència artificial tasques. [82] [83] [84] [85] Gràcies a ser un llenguatge de seqüència amb l'arquitectura del mòdul, la senzillesa i la sintaxi riques eines de processament de text, Python s'utilitza sovint per processament de llenguatge natural tasques. [86]

En molts sistemes operatius, Python és un component estàndard, sinó que s'inclou amb la majoria de les distribucions de Linux , FreeBSD , NetBSD , OpenBSD i amb OS X i es pot utilitzar des del terminal. Diverses distribucions de Linux utilitzen instal · ladors escrits en Python: Ubuntu utilitza el Ubiquity instal, mentre que Red Hat Linux i Fedora utilitzen el Anaconda instal · lador. Gentoo Linux utilitza Python en el seu sistema de gestió de paquets , Portage . Pardus l'utilitza per a l'administració i durant l'inici del sistema. [87]

Python també ha vist un ampli ús en la seguretat de la informació de la indústria, incloent el desenvolupament de exploit. [88]

La major part del sucre de programari per al One Laptop per Child XO, ara convertit en Sugar Labs , està escrit en Python. [89]

El Raspberry Pi sola ordinador a bord projecte ha adoptat Python com a principal llenguatge de programació d'usuari.

LibreOffice inclou Python i té la intenció de substituir Java amb Python. Proveïdor Scripting Python és un element central [90] des de la versió 4.0 del 7 febrer 2013

Impacte

Disseny i la filosofia de Python han influït en diversos llenguatges de programació, que inclouen:


  • Boo utilitza sangria, una sintaxi similar, i un model d'objecte similar. No obstant això, Boo utilitza tipus estàtics i està estretament integrat amb el . NET Framework . [91]
  • Cobra utilitza sangria i una sintaxi similar. Llistes de documents de Cobra "Agraïments" python primera entre les llengües que van influir en ell. [92] No obstant això, Cobra recolza directament el disseny per contracte , les proves unitàries i opcional de tipus estàtics . [93]
  • ECMAScript prestat iteradors , generadors i llistes per comprensió de Python. [94]
  • Vaja , es descriu com la incorporació de la "velocitat de desenvolupament de treball en un llenguatge dinàmic com Python". [95]
  • Groovy va ser motivada pel desig de portar la filosofia de disseny de Python a Java . [96]
  • OCaml té una sintaxi opcional, anomenat TWT (The Thing espai en blanc), inspirada en Python i Haskell . [97]
  • Rubí 's creador, Yukihiro Matsumoto , ha dit: ".. Volia un llenguatge que fos més poderós que Perl, i més orientat a objectes que Python És per això que vaig decidir dissenyar el meu propi idioma" [98]

Pràctiques de desenvolupament de Python també han estat emulat per altres idiomes. La pràctica d'exigir un document que descriu la raó de ser, i qüestions relacionades, un canvi en el llenguatge (en el cas de Python, un PEP) també s'utilitzen en Tcl [99] i Erlang [100] per la influència de Python.

Python ha estat guardonat amb un llenguatge de programació TIOBE l'Any en dues ocasions (2007 i 2010), que dóna a la llengua de major creixement en popularitat en el transcurs d'un any, mesura pel índex de TIOBE . [101] Vegeu també Portal icona Portal de programari lliure Portal icona Portal de programació Python


  • La comparació d'entorns de desenvolupament integrat per Python
  • Comparació dels shells de comandes
  • Comparació dels llenguatges de programació
  • Llista dels llenguatges de programació

Referències


# ^ 1 b "Per què Python creat en primer lloc?" . general Python FAQ. Python Programari Foundation. Consultat el 22 de març de 2007.
#     ^ Kuchling, Andrew M. (22 de desembre de 2006). "Entrevista amb Guido van Rossum (juliol de 1998)" . amk.ca. Consultat el 12 de març de 2012.
#     ^ van Rossum, Guido (1993). "Introducció a Python per a UNIX / C programadors" . Actes de la NLUUG najaarsconferentie (grup d'usuaris de UNIX holandès). "Tot i que el disseny de C està lluny de ser ideal, la seva influència en Python és considerable."
#     ^ 1 b "Classes" . L'Tutorial de Python. Python Programari Foundation. Consultat el 20 de febrer de 2012. "Es tracta d'una barreja dels mecanismes de classe trobats en C + + i Modula-3"
#     ^ Simionato, Michele. "The Python 2.3 Mètodes de Resolució de comanda" . Python Programari Foundation. "El mètode C3 si no té res a veure amb Python, des que va ser inventada per persones que treballen en Dylan i es descriu en un article destinat a lispers"
#     ^ Kuchling, AM "HOWTO Functional Programming" . documentació de Python v2.7.2. Python Programari Foundation. Consultat el 9 de febrer de 2012.
#     ^ Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (18 maig 2001). "PEP 255 - Generadors Simple" Python Propostes de Millores .. Python Programari Foundation. Consultat el 9 de febrer de 2012.
#     ^ Smith, Kevin D.; Jewett, Jim J.; Montanaro, Skip, Baxter, Anthony (2 setembre 2004). "PEP 318 - Decoradors de Funcions i mètodes" Python Propostes de millora .. Python Programari Foundation. Consultat el 24 de febrer de 2012.
#     ^ "Més eines de control de flux" . documentació de Python 3. Python Programari Foundation. Consultat el 5 d'agost de 2012.
#     ^ Bini, Ona (2007) Pràctica JRuby on Rails projectes Web 2.0:. portar Ruby on Rails en la plataforma Java. Berkeley: APremeu. p. 3. ISBN 978-1-59059-881-8 .
#     ^ Marca Summerfield. Rapid GUI Programació amb Python i Qt. "Python és un llenguatge molt expressiu, el que significa que en general es pot escriure moltes menys línies de codi Python que la que es requereix per a una aplicació equivalent escrit en, per exemple, C + + o Java"
#     ^ codi complet, pàg. 100
#     ^ David Kuhlman. "Un llibre de Python: A partir de Python, Python avançada i exercicis de Python" .
#     ^ 1 b "Sobre Python" . Python Programari Foundation. Consultat el 24 d'abril de 2012. , Segona secció "Els fans de Python utilitzen la frase" bateries incloses "per descriure la biblioteca estàndard, que abasta tot, des del processament asíncron d'arxius zip."
#     ^ 1 b Venners, Bill (13 gener 2003). "The Making of Python" . Artima desenvolupador. Artima. Consultat el 22 de març de 2007.
#     ^ van Rossum, Guido (20 de gener de 2009). "Una Breu Cronologia de Python" . La història de Python. Google. Consultat el 20 de gener de 2009.
#     ^ van Rossum, Guido (29 d'agost de 2000). "SETL (era: tebi sobre els literals rang)" llista de distribució Python-Dev . Consultat el 13 de març de 2011.
#     ^ Kuchling, AM; Zadka, Moshe (16 d'octubre de 2000). "Què hi ha de nou en Python 2.0" . Python Programari Foundation. Consultat l'11 de febrer de 2012.
#     ^ "Python 3.0 Release" . Python Programari Foundation. Consultat el 8 de juliol de 2009.
#     ^ van Rossum, Guido (5 d'abril de 2006). "PEP 3000 - Python 3000" . Python Propostes de Millores. Python Programari Foundation. Consultat el 27 de juny de 2009.
#     ^ El Caín Gang Ltd "metaclases Python: Qui què quan?" (PDF). Arxivat des l'original , el 10 de desembre de 2009. Consultat el 27 de juny de 2009.
#     ^ "3.3. noms dels mètodes especials" . L'Referència del llenguatge Python. Python Programari Foundation. Consultat el 27 de juny de 2009.
#     ^ "PyDBC: precondicions del mètode, el mètode postconditions i invariants de classe per Python" . Consultat el 24 de setembre de 2011.
#     ^ "Contractes de Python" . Consultat el 24 de setembre de 2011.
#     ^ "PyDatalog" . Consultat el 22 de juliol de 2012.
#     ^ "6.5 itertools - Funcions crear iteradors per looping eficient" . Docs.python.org. Consultat el 24 de novembre de 2008.
#     ^ 1 b Peters, Tim (19 agost 2004). "PEP 20 - El Zen de Python" . Python Propostes de Millores. Python Programari Foundation. Consultat el 24 de novembre de 2008.
#     ^ Alex Martelli, Python Cookbook (2 ª ed., p. 230)
#     ^ http://www.python.org/dev/culture/
#     ^ . David Goodger "Code Like a Pythonista: idiomàtic Python" .
#     ^ "Com pensar com un Pythonista" .
#     ^ "És un bon llenguatge Python per a programadors principiants?" . general Python FAQ. Python Programari Foundation. Consultat el 21 de març de 2007.
#     ^ "Mites sobre l'osca en Python" . Secnetix.de. Consultat el 19 d'abril de 2011.
#     ^ "White espai de debat" . Consultat l'1 de gener de 2013.
#     ^ Guido van Rossum (2009-04-22). "Tail recursivitat Eliminació" . Neopythonic.blogspot.be. Consultat el 2012.12.03.
#     ^ van Rossum, Guido (9 de febrer de 2006). "Disseny llenguatge no és només la resolució de puzles" . Artima fòrums. Artima. Consultat el 21 de març de 2007.
#     ^ van Rossum, Guido;. Eby, Phillip J. (10 maig 2005) "PEP 342 - corrutinas través Generadors millorats" Python Propostes de millora .. Python Programari Foundation. Consultat el 19 de febrer de 2012.
#     ^ "PEP 380" . Python.org. Consultat el 2012.12.03.
#     ^ Hettinger, Raymond (30 gener 2002). "PEP 289 - Expressions generadores" . Python Propostes de Millores. Python Programari Foundation. Consultat el 19 de febrer de 2012.
#     ^ van Rossum, Guido;. Hettinger, Raymond (7 febrer 2003) "PEP 308 - Expressions condicionals" . Python Propostes de Millores. Python Programari Foundation. Consultat el 13 de juliol de 2011.
#     ^ "Per què té" jo "s'utilitza explícitament en definicions de mètodes i trucades?" . Disseny i Història FAQ. Python Programari Foundation. Consultat el 19 de febrer de 2012.
#     ^ "classes d'estil i clàssica La referència del llenguatge Python, apartat 3.3., per a l'alliberament 2.7.1" . Consultat el 12 de gener de 2011.
#     ^ Zadka, Moshe;. van Rossum, Guido (11 març 2001) "PEP 237 - Unificació d'enters llargs i sencers" Python Propostes de millora .. Python Programari Foundation. Consultat el 24 de setembre de 2011.
#     ^ "Per sencers Pisos Divisió de Python" . Consultat el 25 d'agost de 2010.
#     ^ "rodó" , la biblioteca estàndard de Python, versió 2.7, § 2: Funcions incorporades, recuperat 14 agost 2011
#     ^ "rodó" , la biblioteca estàndard de Python, versió 3.2, § 2: Funcions incorporades, recuperat 14 agost 2011
#     ^ Python Essential Reference, David M Beazley
#     ^ Piotrowski, Przemyslaw (juliol de 2006). "crear un entorn de desenvolupament ràpid per a les pàgines web de Python Server i Oracle" . Oracle Technology Network. Oracle. Consultat el 12 de març de 2012.
#     ^ Batista, Facundo (17 octubre 2003). "PEP 327 - Decimal Tipus de dades" Python Propostes de Millores .. Python Programari Foundation. Consultat el 24 de novembre de 2008.
#     ^ Eby, Phillip J. (7 desembre 2003). "PEP 333 - Python web del servidor de porta d'enllaç d'interfície v1.0" . Python Propostes de Millores. Python Programari Foundation. Consultat el 19 de febrer de 2012.
#     ^ van Rossum, Guido (5 juny 2001). "PEP 7 - Guia d'estil per al codi C" . Python Propostes de Millores. Python Programari Foundation. Consultat el 24 de novembre de 2008.
#     ^ "CPython codi de bytes" . Docs.python.org. Consultat el 19 d'abril de 2011.
#     ^ "Python 2.5 interns" (PDF). Consultat el 19 d'abril de 2011.
#     ^ "Entrevista amb Guido van Rossum" . Oreilly.com. Consultat el 24 de novembre de 2008.
#     ^ "Compatibilitat PyPy" . Pypy.org. Consultat el 2012.12.03.
#     ^ "comparació ràpida entre CPython i PyPy" . Speed.pypy.org. Consultat el 2012.12.03.
#     ^ "STM amb fils" . Morepypy.blogspot.be. 2012-06-10. Consultat el 2012.12.03.
#     ^ http://doc.pypy.org/en/latest/stackless.html
#     ^ "Els plans per a l'optimització Python" . Google Project Hosting. Google. 15 desembre 2009. Consultat el 24 de setembre de 2011.
#     ^ 1 b Varsòvia, Barry; Hylton, Jeremy; Goodger, David (13 de juny de 2000). "PEP 1 - PEP Objectiu i directrius" Python Propostes de Millores .. Python Programari Foundation. Consultat el 19 d'abril de 2011.
#     ^ Cannon, Brett. "Guido, alguns nois, i una llista de correu: Com es desenvolupa Python" . python.org. Python Programari Foundation. Consultat el 27 de juny de 2009.
#     ^ Norwitz, Neal (8 abril 2002). "[Python-Dev] calendaris de llançament (era d'estabilitat i canvi)" . Consultat el 27 de juny de 2009.
#     ^ Aahz,. Baxter, Anthony (15 de març 2001) "PEP 6 - Comunicats de bugs corregits» Python Propostes de millora .. Python Programari Foundation. Consultat el 27 de juny de 2009.
#     ^ "Python Buildbot" . Guia del desenvolupador de Python. Python Programari Foundation. Consultat el 24 de setembre de 2011.
#     ^ "General Python FAQ" . Python v2.7.3 documentació. Docs.python.org. Consultat el 2012.12.03.
#     ^ 1 b "Obrint la gana" . L'Tutorial de Python. Python Programari Foundation. Consultat el 20 de febrer de 2012.
#     ^ "A Python, s'ha d'utilitzar més després d'una volta en un bloc if?" . desbordament de pila . Stack Exchange. 17 febrer 2011. Consultat el 6 de maig de 2011.
#     ^ http://page.mi.fu-berlin.de/prechelt/Biblio/jccpprt_computer2000.pdf
#     ^ "Cites sobre Python" . Python Programari Foundation. Consultat el 8 de gener de 2012.
#     ^ "Les organitzacions que utilitzen Python" . Python Programari Foundation. Consultat el 15 de gener de 2009.
#     ^ "Python: el sant grial de la programació" . CERN Bulletin (CERN Publications) (31/2006). 31 juliol 2006. Consultat l'11 de febrer de 2012.
#     ^ Shafer, Daniel G. (17 de gener 2003). "Python agilitza Missió Espacial de Disseny" . Python Programari Foundation. Consultat el 24 de novembre de 2008.
#     ^ Fortenberry, Tim (17 de gener 2003). "Industrial Light & Magic s'executa en Python" . Python Programari Foundation. Consultat l'11 de febrer de 2012.
#     ^ Taft, Darryl K. (5 de març de 2007). "Slithers Python en sistemes" . eWeek.com. Ziff Davis Holdings. Consultat el 24 de setembre de 2011.
#     ^ Índex TIOBE Programari (2012). "TIOBE Programming Community Index Python" . Consultat el 15 d'octubre de 2012.
#     ^ "Les estadístiques d'ús i quota de mercat de Python per als llocs web" . 2012. Consultat el 2012.12.18.
#     ^ http://www.jasc.com/support/customercare/articles/psp9components.asp
#     ^ "Sobre començar amb l'escriptura de seqüència de geoprocessament" . ArcGIS Desktop Help 9.2. Environmental Systems Research Institute. 17 novembre 2006. Consultat l'11 de febrer de 2012.
#     ^ porkbelly (23 de juliol de 2007). "sense apilat Python 2.5" . Eva Insider Dev bloc. CCP Games . Arxivat des l'original , el 10 d'agost de 2010. "Com vostè bé sap, el seu favorit espai-joc deu la seva existència al llenguatge de programació Python"
#     ^ Caudill, Barry (20 de setembre de 2005). "Modding de Sid Meier Civilization IV" Civilization IV bloc del desenvolupador. Sid Meier. Firaxis Games . Arxivat des l'original , el 10 d'agost de 2010. "Hem creat tres nivells d'eines ... El següent nivell ofereix suport Python i XML, permetent modders amb més experiència manipular el món del joc i tot el que conté."
#     ^ "Guia de Llenguatge Python (v1.0)" . Google Documents List Data API v1.0. Google. Arxivat des l'original , el 10 d'agost de 2010.
#     ^ "Python per a la Intel · ligència Artificial" . Wiki.python.org. 2012-07-19. Consultat el 2012.12.03. [ enllaç trencat ]
#     ^ Paine, Jocelyn, ed. (Agost de 2005). "AI en Python" . AI Expert Newsletter (Amzi!). Consultat l'11 de febrer de 2012.
#     ^ http://pypi.python.org/pypi/PyAIML
#     ^ Russell, Stuart J. i Norvig, Peter (2009). Intel · ligència Artificial: Un enfocament modern (3a ed.). Upper Saddle River, NJ: Prentice Hall. p. 1062. ISBN 978-0-13-604259-4 . Consultat l'11 de febrer de 2012.
#     ^ http://www.nltk.org
#     ^ "Pardus:  TUBITAK /  UEKAE" . pardus.org.tr. Consultat el 24 de novembre de 2008. ParaulaWiki incrustada al títol URL ( ajuda ) [ enllaç trencat ]
#     ^ http://www.immunitysec.com/products-immdbg.shtml http://oss.coresecurity.com/
#     ^ "Què és el sucre?" . Sugar Labs Consultat l'11 de febrer de 2012.
#     ^ "4.0 Noves Característiques i Canvis" . LibreOffice.org. The Document Foundation . 2013. Consultat el 25/02/2013.
#     ^ "problemes comuns per als usuaris de Python" . boo.codehaus.org. Fundació Codehaus. Consultat el 24 de novembre de 2008.
#     ^ Esterbrook, Charles. "Agraïments" . cobra language.com. Idioma Cobra. Consultat el 7 d'abril de 2010.
#     ^ Esterbrook, Charles. "Comparació de Python" . cobra language.com. Idioma Cobra. Consultat el 7 d'abril de 2010.
#     ^ "Propostes: iteradors i generadors [ES4 Wiki]" . wiki.ecmascript.org. Consultat el 24 de novembre de 2008.
#     ^ . Kincaid, Jason (10 novembre 2009) "de Google Go: Un nou llenguatge de programació Python És Compleix C + +" . TechCrunch. Consultat el 29 de gener de 2010.
#     ^ James Strachan (29 agost 2003). "Groovy - el naixement d'un nou llenguatge dinàmic per a la plataforma Java" .
#     ^ Lin, Mike. "" The Thing espai en blanc "per OCaml" . Massachusetts Institute of Technology. Consultat el 12 d'abril de 2009.
#     ^ "Entrevista amb el creador de Ruby" . Linuxdevcenter.com. Consultat el 2012.12.03.
#     ^ Kupries, Andreas; Fellows, Donal K. (14 de setembre de 2000). "TIP # 3: Format TIP" tcl.tk.. Tcl Developer Xchange. Consultat el 24 de novembre de 2008.
#     ^ Gustafsson, Per; Niskanen, Raimo (29 de gener de 2007). "AEP 1: AEP Objectiu i directrius" . erlang.org. Consultat el 19 d'abril de 2011.
#     ^ "Programació Índex Comunitat TIOBE per a març de 2012" . Programari TIOBE. Març de 2012. Consultat el 25 de març de 2012. 
# 

Altres lectures

  • . Downey, Allen B (Versió 1.6.6 - 2012) Penseu Python: Com Pensar com un Informàtic . ISBN 978-0-521-72596-5 .
  • Hamilton, Naomi (5 d'agost de 2008). "L'AZ de Llenguatges de Programació: Python" . Computerworld. Consultat el 31 de març de 2010.
  • Lutz, Mark (2009). Learning Python (4a ed.). O'Reilly Media. ISBN 978-0-596-15806-4 .
  • Pilgrim, Mark (2004). Immersió en Python . Apress. ISBN 978-1-59059-356-1 .
  • Pilgrim, Mark (2009). Immersió en Python 3 . Apress. ISBN 978-1-4302-2415-0 .
  • Summerfield, Mark (2009). Programació en Python 3 (2a ed.). Addison-Wesley Professional. ISBN 978-0-321-68056-3 .

Enllaços externs: Lloc web oficial Python (Llenguatge de programació) de grups de notícies en Usenet ( alternativa d'accés lliure de la tela usant Google Groups ) Llista de desenvolupament de Python Python al Open Directory Project