|
< Back | Wikipedia | Home | Dark Mode PythonPython ye un llinguaxe de programacion interpretau que la so filosofia fai fincapie nuna sintaxis que favoreza un codigu lexible. Tratase d'un llinguaxe de programacion multiparadigma, ya que soporta orientacion a oxetos, programacion imperativa y, en menor midida, programacion funcional. Ye un llinguaxe interpretau, usa tipado dinamicu y ye multiplataforma. Ye alministrau pola Python Software Foundation. Tien una llicencia de codigu abiertu, denominada Python Software Foundation License, que ye compatible cola Llicencia publica xeneral de GNU a partir de la version 2.1.1, ya incompatible en ciertes versiones anteriores. Python foi creau a finales de los ochenta por Guido van Rossum nel Centru pa les Matematiques y la Informatica (CWI, Centrum Wiskunde & Informatica), nos Paises Baxos, como un socesor del llinguaxe de programacion ABC, capaz de remanar esceiciones ya interactuar col sistema operativu Amoeba. El nome del llinguaxe provien de l'aficion del so creador polos humoristes britanicos Monty Python. Van Rossum ye'l principal autor de Python, y el so continuu rol central en decidir la direicion de Python, ye reconociu, refiriendose a el como Benevolente Dictador Vitaliciu (n'ingles: Benevolent Dictator for Life, BDFL). En 1991, van Rossum publico'l codigu de la version 0.9.0 en alt.sources. Nesta etapa del desenvolvimientu ya taben presentes clases con heriedu, manexu d'esceiciones, funciones y los tipos modulares, como: str, list, dict, ente otros. Amas nesti llanzamientu inicial apaecia un sistema de modulos adoptau de Modula-3; van Rossum describe'l modulu como "una de les mayores unidaes de programacion de Python". El modelu d'esceiciones en Python ye paeciu al de Modula-3, cola adicion d'una clausa else. Nel anu 1994 formose comp.lang.python, el foru de discutiniu principal de Python, marcando un finxu na crecedera del grupu d'usuarios d'esti llinguaxe. Python algamo la version 1.0 en xineru de 1994. Una carauteristica d'esti llanzamientu fueron les ferramientes de la programacion funcional: lambda, amenorga, filter y map. Van Rossum esplico que "hai 12 anos, Python adquirio lambda, reduce(), filter() y map(), cortesia d'un hacker informaticu de Lisp que les estranaba y qu'unvio parches". El donante foi Amrit Prem; nun se fai nenguna mencion especifica de cualquier heriedu de Lisp nes notes de llanzamientu. La ultima version lliberada proveniente de CWI foi Python 1.2. En 1995, van Rossum siguio'l so trabayu en Python na Corporation for National Research Initiatives (CNRI) en Reston, Virginia, onde llanzo delles versiones del software. Mientres la so estancia en CNRI, van Rossum llanzo la iniciativa Computer Programming for Everybody (CP4E), col fin de faer la programacion mas accesible a mas xente, con un nivel d'alfabetizacion basicu en llinguaxes de programacion, similar a l'alfabetizacion basica n'ingles y habilidaes matematiques necesaries por munchos trabayadores. Python tuvo un papel crucial nesti procesu: por cuenta de que la so orientacion escontra una sintaxis llimpia, ya yera aparente, y les metes de CP4E presentaben semeyances col so predecesor, ABC. El proyeutu foi patrocinau por DARPA. Magar l'anu 2007, el proyeutu CP4E ta inactivu, y mientres Python intenta ser bono d'aprender y non bien arcanu na so sintaxis y semantica, algamando a los non-programadores, nun ye una esmolicion activa. Nel anu 2000, l'equipu principal de desarrolladores de Python camudose a BeOpen.com pa formar l'equipu BeOpen PythonLabs. CNRI pidio que la version 1.6 fuera publica, siguiendo'l so desenvolvimientu hasta que l'equipu de desenvolvimientu abandono CNRI; el so programa de llanzamientu y el de la version 2.0 tenien una significativa cantida de traslapo. Python 2.0 foi'l primer y unicu llanzamientu de BeOpen.com. Dempues que Python 2.0 fuera publicau por BeOpen.com, Guido van Rossum y los otros desarrolladores de PythonLabs xunieronse en Digital Creations. Python 2.0 tomo una carauteristica mayor del llinguaxe de programacion funcional Haskell: llistes per comprension. La sintaxis de Python pa esta construccion ye bien similar a la de Haskell, salvu pola preferencia de los calteres de puntuacion en Haskell, y la preferencia de Python por pallabres claves alfabetiques. Python 2.0 introducio amas un sistema de recoyida de basoria capaz de recoyer referencies cicliques. Posterior a esti doble llanzamientu, y dempues que van Rossum dexo CNRI pa trabayar con desarrolladores de software comercial, quedo claro que la opcion d'usar Python con software disponible so GNU GPL yera bien deseable. La llicencia usada entos, la Python License, incluyia una clausa axustando que la llicencia taba gobernada pol estau de Virginia, polo que, so la optica de los abogaos de Free Software Foundation (FSF), faiase incompatible con GPL. CNRI y FSF rellacionaronse pa camudar la llicencia de software llibre de Python pa faela compatible con GPL. Nel anu 2001, van Rossum foi premiau con FSF Award for the Advancement of Free Software. Python 1.6.1 ye esencialmente'l mesmu que Python 1.6, con unos pocos arreglos de bugs, y con una nueva llicencia compatible con GPL. Python 2.1 foi un trabayu derivau de Python 1.6.1, segun tamien de Python 2.0. La so llicencia foi renomada a: Python Software Foundation License. Tol codigu, documentacion y especificaciones anadies, dende la fecha del llanzamientu de la version alfa de Python 2.1, tien como duenu a Python Software Foundation (PSF), una organizacion ensin animu d'arriquecimientu fundada nel anu 2001, tomando como modelu l'Apache Software Foundation. Incluyiu nesti llanzamientu foi una implementacion del scoping mas asemeyada a les regles de static scoping (del cual Scheme ye l'aniciador). Una innovacion mayor en Python 2.2 foi la unificacion de los tipos en Python (tipos escritos en C), y clases (tipos escritos en Python) dientro d'una xerarquia. Esa unificacion llogro un modelu d'oxetos de Python puru y consistente. Tamien fueron amestaos los xeneradores que fueron inspiraos pol llinguaxe Icon. Les amestadures a la biblioteca estandar de Python y les decisiones sintactiques fueron influyies fuertemente per Java en dellos casos: el package logging, introduciu na version 2.3, ta basau en log4j; el parser SAX, introduciu en 2.0; el package threading, que la so clase Thread espon un subconxuntu de la interfaz de la clase homonima en Java. Python ye un llinguaxe de programacion multiparadigma. Esto significa que mas que forzar a los programaores a adoptar un estilu particular de programacion, dexa dellos estilos: programacion empobinada a oxetos, programacion imperativa y programacion funcional. Otros paradigmes tan soportaos por aciu l'usu d'estensiones. Python usa tipao dinamicu y conteo de referencies pa l'alministracion de memoria. Una carauteristica importante de Python ye la resolucion dinamicu de nomes; esto ye, lo qu'enllaza un metodu y un nome de variable mientres la execucion del programa (tamien llamau enllaz dinamicu de metodos). Otru oxetivu del disenu del llinguaxe ye la facilida d'estension. Pueden es cribise nuevos modulos facilmente en C o C++. Python puede incluyise n'aplicaciones que precisen una interfaz programable. Anque la programacion en Python podria considerase en delles situaciones contraria a la programacion funcional tradicional del Lisp, esisten bastantes analoxies ente Python y los llinguaxes minimalistas de la familia Lisp como pue ser Scheme. Los usuarios de Python refierense de cutiu a la Filosofia Python que ye bastante analoga a la filosofia d'Unix. El codigu que sigue los principios de Python de legibilidad y tresparencia dizse que ye "pythonico". Contrariamente, el codigu opacu o cegaru ye bautizau como "non pythonico" ("unpythonic" n'ingles). Estos principios fueron famosamente descritos pol desarrollador de Python Tim Peters n'El Zen de Python
Dende la version 2.1.2, Python inclui estos puntos (na so version orixinal n'ingles) como un guevu de pascua que s'amuesa al executar import this. L'interprete de Python estandar inclui una manera interactivo nel cual escribense les instrucciones nuna especie d'interprete de comandos: les espresiones pueden ser introducies una a una, pudiendo vese la resultancia de la so evaluacion darreu, lo que da la posibilida de probar porciones de codigu na manera interactivo enantes d'integralo como parte d'un programa. Esto resulta afayaizo tantu pa les persones que se tan familiarizando col llinguaxe como pa los programadores mas avanzaos. Esisten otros programes, tales como IDLE, bpython o IPython, qu'anaden funcionalidades extra a la manera interactivo, como l'autocompletau de codigu y el coloriau de la sintaxis del llinguaxe. Exemplu de la manera interactivo: >> 1 + 1\n2\n>>> a = range(10)\n>>> print a\n[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n"}}">>>> 1 + 1 2 >>> a = range(10) >>> print a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]Python foi disenau pa ser lleiu con facilida. Una de les sos carauteristiques ye l'usu de pallabres onde otros llinguaxes utilizarien simbolos. Por casu, los operaores loxicos !, || y && en Python escribense not, or y and, respeutivamente. Curiosamente'l llinguaxe Pascal ye xunto con COBOL un de los llinguaxes con bien clara sintaxis y dambos son de la decada del 70. La idea del codigu claru y legible nun ye daque nuevu. El conteniu de los bloques de codigu (bucles, funciones, clases, etc.) ye delimitado por aciu espacios o tabuladores, conocios como indentacion, antes de cada llinia d'ordes pertenecientes al bloque. Python estremase asina d'otros llinguaxes de programacion que caltienen como costume declarar los bloques por aciu un conxuntu de calteres, de normal ente llaves {}. Pueden utilizase tanto espacios como tabuladores pa indentar el codigu, pero encamientase nun entemecelos.
Debiu al significau sintacticu de la indentacion, cada instruccion tien de tar contenida nuna sola llinia. Sicasi, si por lexibilidad quier estremase la instruccion en delles llinies, anadiendo una barra invertida \ a la fin d'una llinia, indicase que la instruccion sigue na siguiente. Estes instrucciones son equivalentes: llista=['valor 1','valor 2','valor 3'] cadena='Esto ye una cadena bastante llarga' llista=['valor 1','valor 2' \ ,'valor 3'] cadena='Esto ye una cadena ' \ 'bastante llarga'
Los comentarios pueden ponese de dos formes. La primera y mas apropiada pa comentarios llargos ye utilizando la notacion ''' comentariu ''', tres apostrofos d'apertura y tres de zarru. La segunda notacion utiliza'l simbolu #, y estiendense hasta'l final de la llinia. L'interprete nun tien en cuenta los comentarios, lo cual ye util si deseyamos poner informacion adicional nel codigu. Por casu, una esplicacion sobre'l comportamientu d'una seicion del programa. ''' Comentariu mas llargu nuna llinia en Python ''' print "Hola, mundu" # Tamien puede anadise un comentariu al final d'una llinia de codiguLes variables definense de forma dinamica, lo que significa que nun se tien qu'especificar cual ye'l so tipu de mano y puede tomar distintos valores n'otru momentu, inclusive d'un tipu distintu al que tenia primeramente. Usase'l simbolu = p'asignar valores. x = 1 x = "testu" # Esto ye posible porque los tipos asinense dinamicamenteLos tipos de datos pueden resumise nesta tabla:
Una llista por comprension (n'ingles: list comprehension) ye una espresion compacta pa definir llistes. Al igual que lambda, apaez en llinguaxes funcionales. Exemplos:
def:lambda:
Una sentencia condicional (if) executa'l so bloque de codigu internu namai si cumple cierta condicion. Definese usando la pallabra clave if siguida de la condicion, y el bloque de codigu. Condiciones adicionales, si les hai, introducense usando elif siguida de la condicion y el so bloque de codigu. Toles condiciones evaluense secuencialmente hasta atopar la primera que sia verdadera, y el so bloque de codigu acomunau ye l'unicu que s'executa. Opcionalmente, puede haber un bloque final (la pallabra clave else siguida d'un bloque de codigu) que s'executa namai cuando toles condiciones fueron falses. El bucle for ye similar a foreach n'otros llinguaxes. Percuerre un oxetu iterable, como una llista, una tupla o un xenerador, y per cada elementu del iterable executa'l bloque de codigu internu. Definese cola pallabra clave for siguida d'un nome de variable, siguiu de in, siguiu del iterable, y finalmente'l bloque de codigu internu. En cada iteracion, l'elementu siguiente del iterable asignase al nome de variable especificau: El bucle while evalua una condicion y, si ye verdadera, executa'l bloque de codigu internu. Sigue evaluando y executando mientres la condicion sia verdadera. Definese cola pallabra clave while siguida de la condicion, y de siguio el bloque de codigu internu: Esisten munches propiedaes que pueden amestase al llinguaxe importando modulos, que son "minicodigos" (la mayoria escritos tamien en Python) que preven de ciertes funciones y clases pa realizar determinaes xeres. Un exemplu ye'l modulu Tkinter, que dexa crear interfaces grafiques basaes na biblioteca Tk. Otru exemplu ye'l modulu os, que preve accesu a munches funciones del sistema operativu. Los modulos amestanse a los codigos escribiendo import siguida del nome del modulu que quedramos usar. El modulu os preve funciones pa interactuar col sistema operativu:Pa xeres d'alministracion de ficheros, el modulu shutil preve una interfaz de mas altu nivel: El modulu glob preve una funcion pa crear llistes de ficheros a partir de guetes con comodinos en carpetes: Los argumentos de llinia d'ordes atroxense nel atributu argv del modulu sys como una llista. El modulu math dexa aportar a les funciones de matematica de puntu flotante:El modulu random utilizase pa realizar seleiciones al debalu:El modulu statistics utilizase pa estadistica basica, por casu: media, mediana, varianza, etc: El modulu datetime dexa remanar feches y tiempos: En Python tou ye un oxetu (inclusive les clases). Les clases, al ser oxetos, son instancies d'una metaclase. Python amas soporta heriedu multiple y polimorfismu. Python tien una gran biblioteca estandar, usada pa una diversida de xeres. Esto vien de la filosofia "piles incluyies" ("batteries included") en referencia a los modulos de Python. Los modulos de la biblioteca estandar pueden ameyorase por modulos personalizaos escritos tantu en C como en Python. Por cuenta de la gran varieda de ferramientes incluyies na biblioteca estandar, combinada cola habilida d'usar llinguaxes de baxu nivel como C y C++, que son capaces d'interactuar con otres biblioteques, Python ye un llinguaxe que combina la so clara sintaxis col inmensu poder de llinguaxes menos elegantes. Esisten diverses implementaciones del llinguaxe:
El 13 de febreru de 2009 llanzose una nueva version de Python sol nome clave "Python 3000" o, embriviu, "Py3K". Esta nueva version inclui toa una serie de cambeos que riquien reescribir el codigu de versiones anteriores. Pa facilitar esti procesu xunto con Python 3 publicose una ferramienta automatico llamada 2to3. Una llista completa de los cambeos puede atopase en Novedaes de Python 3.0.
Source: ast.wikipedia.org |