Python

Python

15 Jul 2020 in

Pythones uncuya filosofía hace hincapié en la legibilidad de su. ​ Se trata de un lenguaje de programación, puesto que aguanta,y, en menor medida,. Es un,y.

Es administrado por la. Posee una licencia de, denominada, ​ que es compatible con laa partir de la versión dos.1.1, e incompatible en ciertas versiones anteriores.

Python fue creado a finales de los ochenta ​ poren el Centro para las Matemáticas y la Informática (CWI, ), en los, como un sucesor del, capaz dee interaccionar con el.

El nombre del lenguaje proviene de la afición de su autor por los humoristas británicos.

Van Rossum es el primordial autor de Python, y su continuo rol central en decidir la dirección de Python es reconocido, refiriéndose a él como (en inglés: Benevolent Dictator for Life, BDFL); sin embargo el 12 de julio de 2018 declinó de dicha situación de honor sin dejar un sucesor o sucesora y con una declaración altisonante:

Entonces, ¿qué harán todos ? ¿Crear una democracia? ¿Anarquía? ¿Una dictadura? ¿Una federación?

En mil novecientos noventa y uno, van Rossum publicó el código de la versión 0.9.0 en. ​ En esta etapa del desarrollo ya estaban presentes clases con, manejo de excepciones,y los tipos modulares, como: str, list, dict, entre otros muchos. Además en este lanzamiento inicial aparecía un sistema de módulos adoptado de; van Rossum describe el módulo como «una de las mayores unidades de programación de Python». ​ El modelo de salvedades en Python es semejante al de Modula-3, con la adición de una cláusula else. ​ En el año mil novecientos noventa y cuatro se formó, el foro de discusión primordial de Python, marcando un hito en el crecimiento del conjunto de usuarios de este lenguaje.

Python alcanzó la versión 1.0 en el mes de enero de 1994. Una característica de este lanzamiento fueron las herramientas de la: , reduce, filtery map. Van Rossum explicó que «hace 12 años, Python adquirió lambda, reduce(), filter() y map(), cortesía de un hacker informático deque las extrañaba y que envió parches». ​ El donante fue Amrit Prem; no se hace ninguna mención específica de cualquier herencia de Lisp en las notas de lanzamiento.

La última versión liberada proveniente de CWI fue Python 1.2. En 1995, van Rossum continuó su trabajo en Python en la(CNRI) en Reston,, donde lanzó múltiples versiones del.

Durante su estancia en CNRI, van Rossum lanzó la iniciativa Computer Programming for Everybody(CP4E), con el objetivo de hacer la programación más alcanzable a más gente, con un nivel de 'alfabetización' básico en lenguajes de programación, afín a la alfabetización básica en inglés y habilidades matemáticas precisas por muchos trabajadores. Python tuvo un papel vital en este proceso: debido a su orientación cara una sintaxis limpia, ya era idóneo, y las metas de CP4E presentaban similitudes con su precursor, ABC. El proyecto fue patrocinado por. ​ En el año dos mil siete, el proyecto CP4E está inactivo, y mientras Python intenta ser fácil de aprender y no muy arcano en su sintaxis y semántica, alcanzando a los no-programadores, no es una preocupación activa.

En el año 2000, el equipo primordial de desarrolladores de Python se cambió apara formar el equipo BeOpen. CNRI pidió que la versión 1.6 fuera pública, continuando su desarrollo hasta que el equipo de desarrollo abandonó CNRI; su programa de lanzamiento y el de la versión 2.0 tenían una significativa cantidad de traslapo. ​ Python 2.0 fue el primer y único lanzamiento de BeOpen.com. Después que Python dos.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores de PythonLabs se unieron en.

Python 2.0 tomó una característica mayor del lenguaje de: listas por comprensión. La sintaxis de Python para esta construcción es muy similar a la de Haskell, salvo por la preferencia de los caracteres de puntuación en Haskell, y la preferencia de Python por palabras claves alfabéticas. Python dos.0 introdujo además un sistema decapaz de recoger referencias cíclicas.

Posterior a este doble lanzamiento, y después que van Rossum dejó CNRI para trabajar con desarrolladores de software comercial, quedó claro que la opción de utilizar Python con software disponible bajoera muy deseable. La licencia utilizada entonces, la, incluía una cláusula estipulando que la licencia estaba regida por el estado de, por lo que, bajo la óptica de los abogados de(FSF), se hacía incompatible con GPL. CNRI y FSF se relacionaron para cambiar la licencia de software libre de Python para hacerla compatible con GPL. En el año dos mil uno, van Rossum fue premiado con.

Python dieciseis.1 es fundamentalmente exactamente el mismo que Python 1.6, con unos pocos arreglos de, y con una nueva licencia compatible con GPL.

Python 2.1 fue un trabajo derivado de Python dieciseis.1, así como también de Python 2.0. Su licencia fue renombrada a:. Todo el código, documentación y especificaciones añadidas, desde la data del lanzamiento de la versión alfa de Python dos.1, tiene como dueño a(PSF), una organización sin ánimo de lucro fundada en el año dos mil uno, tomando como modelo la. ​ Incluido en este lanzamiento fue una implementación del scoping más parecida a las reglas de(del cuales el originador).

Una innovación mayor en Python 2.2 fue la unificación de los tipos en Python (tipos escritos en C), y clases (tipos escritos en Python) dentro de una jerarquía. Esa unificación logró un modelo de objetos de Python puro y consistente. ​ También fueron agregados losque fueron inspirados por el lenguaje.

Las sumes a la biblioteca estándar de Python y las resoluciones sintácticas fueron influenciadas fuertemente poren algunos casos: el package logging, ​ introducido en la versión dos.3, está basado en; el parser, introducido en dos.0; el package threading, ​ cuya clase Threadexpone un subconjunto de la interfaz de la clase homónima en Java.

Python dos, o sea Python dos.7.x, fue oficialmente descontinuado el 1 de enero de dos mil veinte (primero planeado para 2015) después de lo cual no se publicarán parches de seguridad y otras mejoras para él. ​ Con el final del ciclo de vida de Python dos, solo tienen soporte la rama Python tres.5.x ​ y siguientes.

Back to top

1) Características y paradigmas

Python es un lenguaje de programación. Esto quiere decir que más que forzar a los programadores a adoptar un estilo particular de programación, deja varios estilos:,y. Otros paradigmas están soportados mediante el uso de extensiones.

Python usaypara la administración de memoria.

Una característica importante de Python es la resolución dinámica de nombres; esto es, lo que enlaza un método y un nombre de variable durante la ejecución del programa (también llamado link dinámico de métodos).

Otro objetivo del diseño del lenguaje es la sencillez de extensión. Se pueden escribir nuevos módulos fácilmente eno. Python puede incluirse en aplicaciones que necesitan una interfaz programable.

Aunque la programación en Python podría considerarse en ciertas situaciones hostil a la programación funcional tradicional del, existen bastantes analogías entre Python y los lenguajes minimalistas de la familia Lisp como puede ser.

Los usuarios de Python se refieren de manera frecuente a la filosofía de Pythonque es bastante análoga a la filosofía de. El código que prosiga los principios de Python diríase que es "pythonico". Estos principios fueron descritos por el desarrollador de Pythonen

  • Bello es mejor que feo.
  • Explícito es mejor que implícito.
  • Simple es mejor que complejo.
  • Complejo es mejor que complicado.
  • Plano es mejor que anidado.
  • Disperso es mejor que denso.
  • La legibilidad cuenta.
  • Los casos singulares no son tan singulares para quebrantar las reglas.
  • Lo práctico gana a lo puro.
  • Los errores nunca deberían dejarse pasar sigilosamente.
  • A menos que hayan sido silenciados explícitamente.
  • Frente a la ambigüedad, rechaza la tentación de adivinar.
  • Debería haber una —y preferentemente solo una— forma obvia de hacerlo.
  • Aunque esa forma puede no ser obvia al principio a menos que sea holandés.
  • Ahora es mejor que jamás.
  • Aunque nuncaes frecuentemente mejor que ya mismo.
  • Si la implementación es difícil de explicar, es una mala idea.
  • Si la implementación es fácil de explicar, es posible que sea una gran idea.
  • Los espacios de nombres ( namespaces) son una buena idea ¡Hagamos más de esas cosas!

Desde la versión dos.1.2, Python incluye estos puntos (en su versión original en inglés) como unque se muestra al ejecutar import this.

Back to top

2) Modo interactivo

El intérprete de Python estándar incluye un modo interactivoen el que se escriben las instrucciones en una especie de: las expresiones pueden ser introducidas una a una, pudiendo verse el resultado de su evaluación de manera inmediata, lo que da la posibilidad de probar porciones de código en el modo perfecto interactivo antes de integrarlo como una parte de un programa. Esto resulta útil tanto para las personas que se están familiarizando con el lenguaje para los programadores más avanzados.

Existen otros programas, tales como,o, ​ que añaden funcionalidades extra al modo interactivo, como el autocompletado de código y eldel lenguaje.

Ejemplo del modo interactivo:

Back to top

3) Elementos del lenguaje

Python fue diseñado para ser leído con facilidad. Una de sus características es el empleo de palabras donde otros lenguajes utilizarían símbolos. Por servirnos de un ejemplo, los operadores lógicos !, y &&en Python se escriben not, ory and, respectivamente. Curiosamente el lenguajees junto conuno de los lenguajes con muy clara sintaxis y los dos son de la década del setenta. La idea del código claro y legible no es algo nuevo.

El contenido de los bloques de código (bucles, funciones, clases, etcétera) es acotado mediante espacios o tabuladores, conocidos como, antes de cada línea de órdenes pertenecientes al bloque. ​ Python se distingue así de otros lenguajes de programación que mantienen como costumbre declarar los bloques mediante un conjunto de caracteres, por norma general entre llaves . ​ Se pueden utilizar tanto espacios como tabuladores para indentar el código, mas se aconseja no mezclarlos.

Debido al significado sintáctico de la indentación, cada instrucción ha de estar contenida en una línea. No obstante, si por legibilidad se quiere dividir la instrucción en múltiples líneas, añadiendo una barra invertida \al final de una línea, se indica que la instrucción continúa en la siguiente.

Estas instrucciones son equivalentes:

3.1) Comentarios

Los comentariosse pueden poner de 2 formas. La primera y más apropiada para comentarios largos es utilizando la notación ''' comentario ''', tres apóstrofos de apertura y tres de cierre. La segunda notación emplea el símbolo #, y se extienden hasta el final de la línea.

El intérprete no tiene presente los comentarios, lo cual es útil si deseamos poner información auxiliar en el código. Por poner un ejemplo, una explicación sobre el comportamiento de una sección del programa.

Las variablesse definen de forma, lo que quiere decir que no se tiene que especificar cuál es su tipo de antemano y puede tomar distintos valores en otro instante, incluso de un tipo diferente al que tenía previamente. Se emplea el símbolo =para asignar valores.

Los nombres de variables pueden contener números y letras pero deben comenzar por una letra, además existen 2. palabras reservadas:

  • and
  • assert
  • break
  • class
  • continue
  • def
  • del
  • elif
  • else
  • except
  • exec
  • finally
  • for
  • from
  • global
  • if
  • import
  • in
  • is
  • lambda
  • not
  • or
  • pass
  • print
  • raise
  • return
  • try
  • while

3.2) Tipos de datos

Los tipos de datosse pueden resumir en esta tabla:

  • Mutable: si su contenido (o dicho valor) puede cambiarse en tiempo de ejecución.
  • Inmutable: si su contenido (o bien dicho valor) no puede mudarse en tiempo de ejecución.

3.3) Condicionales

Una( if) ejecuta suinterno solo si se cumple cierta condición. Se define utilizando la palabra clave ifseguida de la condición, y el bloque de código. Condiciones auxiliares, si las hay, se introducen usando elifseguida de la condición y su bloque de código. Todas las condiciones se evalúan secuencialmente hasta hallar la primera que sea verdadera, y su bloque de código asociado es el único que se ejecuta. Opcionalmente, puede haber un bloque final (la palabra clave elseseguida de un bloque de código) que se ejecuta solo cuando todas y cada una de las condiciones fueron falsas.

El bucle fores similar aen otros lenguajes. Recorre un objeto iterable, como una lista, una tuplao un generador, y por cada elemento del iterable ejecuta el bloque de código interno. Se define con la palabra clave forseguida de un nombre de variable, seguido de in, seguido del iterable, y finalmente el bloque de código interno. En todos y cada iteración, el elemento siguiente del iterable se asigna al nombre de variable especificado:

3.4) Bucle while

El bucleevalúa una condición y, si es verdadera, ejecuta el bloque de código interno. Continúa valorando y ejecutando mientras que la condición sea verdadera. Se define con la palabra clave whileseguida de la condición, y a continuación el bloque de código interno:

3.5) Listas y Tuplas

  • Para declarar una listase emplean los corchetes , en cambio, para declarar una tuplase utilizan los paréntesis (). En las dos los elementos se apartan por comas, y en el caso de las tuplases necesario que tengan como mínimo una coma.
  • Tanto las listascomo las tuplaspueden contener elementos de diferentes tipos. Sin embargo las listassuelen usarse para elementos del mismo tipo en cantidad variable al tiempo que las tuplasse reservan para elementos diferentes en cantidad fija.
  • Para acceder a los elementos de una listao tuplase usa un índice entero (comenzando por "0", no por "1"). Se pueden usar índices negativos para acceder elementos desde el final.
  • Las listasse caracterizan por ser mutables, esto es, se puede cambiar su contenido en tiempo de ejecución, al paso que las tuplasson inalterables puesto que no es posible alterar el contenido una vez creada.

3.6) Diccionarios

  • Para declarar un diccionariose utilizan las llaves . Contienen elementos separados por comas, donde cada elemento está formado por un par clave:valor(el símbolo :separa la clave de su valor pertinente).
  • Los diccionariosson mutables, es decir, se puede cambiar el contenido de un valoren tiempo de ejecución.
  • En cambio, las clavesde un diccionariodeben ser inmutables. Esto quiere decir, por ejemplo, que no podremos usar ni listasni diccionarioscomo claves.
  • El valorasociado a una clavepuede ser de cualquier tipo de dato, aun un diccionario.

3.7) Sentencia Switch Case

Si bien Python no tiene la estructura Switch, hay varias formas de realizar la operación típica que realizaríamos con una sentencia switch case.

3.7.1) Usando if, elif, else

Podemos utilizar la estructura de la próxima manera:

En esa estructura se ejecutase controlando la condicion1, si no se cumple pasara a la próxima y así sucesivamente hasta entrar en el else.Un ejemplo práctico seria:

Podriamos decir que el lado negativo de la sentencia armada con if, elif y else es que si la lista de posibles operaciones es larguísima, las debe recorrer una por una hasta llegar a la adecuada.

3.7.2) Usando diccionario

Podemos utilizar un diccionario para exactamente el mismo ejemplo:

De esta manera, si las opciones fuesen muchas, no recorrería todas; solo iría de forma directa a la operación buscada en la última línea .get(op, lambda: None)()estamos dando la opción por defecto.

  • Los conjuntosse construyen a través de set(items)donde itemses cualquier objeto iterable, como listaso tuplas. Los conjuntosno mantienen el orden ni contienen elementos duplicados.
  • Se acostumbran a utilizar para quitar duplicados de una secuencia, o bien para operaciones matemáticas como,,y.

3.8) Listas por comprensión

Una lista por comprensión(en inglés: list comprehension) es una expresión compacta para acotar listas. Del mismo modo que lambda, aparece en lenguajes funcionales. Ejemplos:

  • Las funcionesse definen con la palabra clave def, seguida del nombre de la funcióny sus parámetros. Otra forma de redactar funciones, aunque menos empleada, es con la palabra clave lambda(que aparece en lenguajes funcionales como).
  • El valor devuelto en las funcionescon defserá el dado con la instrucción return.

def:

lambda:

  • Las clasesse definen con la palabra clave class, seguida del nombre de la clasey, side otra clase, el nombre de esta.
  • En Python 2.x era recomendable que una clase heredara de "Object", en Python tres.x ya no hace falta.
  • En una un "método" equivale a una "función", y un "atributo" equivale a una "variable".
  • "__init__" es un método especial que se ejecuta al instanciar la clase, se usa generalmente para inicializar atributos y ejecutar métodos precisos. De la misma manera que todos los métodos en Python, debe tener al menos un parámetro, por norma general se usa self. El resto de parámetros serán los que se señalen al instanciar la clase.
  • Los atributos que se desee que sean alcanzables desde fuera de la clasese deben declarar utilizando self.delante del nombre.
  • En Python no existe el concepto de encapsulación, ​ con lo que el programador debe ser responsable de asignar los valores a los atributos

Existen muchas propiedades que se pueden añadir al lenguaje importando módulos, que son "minicódigos" (la mayoría escritos también en Python) que proveen de ciertas funciones y clases para efectuar determinadas labores. Un caso es el módulo ​, que deja crear interfaces gráficas basadas en la biblioteca. Otro ejemplo es el módulo os, que provee acceso a muchas funciones del sistema operativo. Los módulos se añaden a los códigos escribiendo importseguida del nombre del módulo que deseemos emplear.

3.9) Interfaz al sistema operativo

El módulo osprovee funciones para interactuar con el sistema operativo:

Para tareas de administración de archivos, el módulo shutilprovee una interfaz de más alto nivel:

3.10) Comodines de archivos

El módulo globprovee una función para crear listas de archivos a partir de búsquedas con comodines en carpetas:

3.11) Argumentos de línea de órdenes

Los razonamientos de línea de órdenes se guardan en el atributo argv del módulo syscomo una lista.

El módulo mathpermite acceder a las funciones de matemática de punto flotante:

El módulo randomse utiliza para efectuar escojas al azar:

El módulo statisticsse usa para estadística básica, por ejemplo: media, mediana, varianza, etc.:

3.12) Fechas y Tiempos

El módulo datetimepermite manejar fechas y tiempos:

Back to top

4) Sistema de objetos

En Pythontodo es un objeto(incluso las). Las clases, siendo objetos, son instancias de una. Pythonademás soportay.

Back to top

5) Biblioteca estándar

Python viene con "pilas incluidas"

Python tiene una enorme biblioteca estándar, usada para una diversidad de labores. Esto viene de la filosofía "pilas incluidas" ( "batteries included") en referencia a los módulos de Python. Los módulos de la biblioteca estándar pueden mejorarse por módulos adaptados escritos tanto en C como en Python. Debido a la enorme variedad de herramientas incluidas en la biblioteca estándar, combinada con la habilidad de usar lenguajes de bajo nivel como C y C++, los cuales son capaces de interactuar con otras bibliotecas, Python es un lenguaje que combina su clara sintaxis con el enorme poder de lenguajes menos muy elegantes.

Back to top

6) Implementaciones

Existen diferentes implementaciones del lenguaje:

  • es la implementación original, disponible para varias plataformas en el lugar oficial de Python.
  • es la implementación para .NET
  • es la variante de CPython que trata de no emplear el stackde()
  • es la implementación hecha en
  • es la implementación efectuada para Palm ()
  • es una implementación de Python escrita en Python y optimizada mediante()
  • es una implementación privativa de Python con extensiones, para servidores en producción y aplicaciones de misión crítica desarrollado por ActiveState Software.
Back to top

7) Incidencias

A lo largo de su historia, Python ha presentado una serie de incidencias, de las cuales las más importantes han sido las siguientes:

  • El 13 de febrero de dos mil nueve se lanzó una nueva versión de Python bajo el nombre clave "Python 3000"o, ​ abreviado, "Py3K". ​ Esta nueva versión incluye una serie de cambios que requieren reescribir el código de versiones anteriores. Para facilitar este proceso junto con Python tres se ha publicado una herramienta automática llamada 2to3.
  • En el sistema operativo, a partir de su actualización de mayo de 2019, dispone de la característica de preinstalación asistida del lenguaje Python y múltiples de sus herramientas adicionales.
Back to top

8) Véase también

Back to top

9) Referencias

Back to top

10) Bibliografía

  • Knowlton, Jim (dos mil nueve). Python. tr: Fernández Vélez, María Jesús (1 edición). Anaya Multimedia-Anaya Interactiva.  
  • Martelli, Alex (2007). Python. Guía de referencia. tr: Gorjón Salvador, Bruno (1 edición). Anaya Multimedia-Anaya Interactiva.  
Back to top

11) Enlaces externos

Back to top
Share icon

ESTOS EXCLUSIVOS INFORMES GRATUITO REVELAN

7 SECRETOS DE EXPERTOS SEO QUE TE LLEVÁN AL 1#
7 SECRETOS DE EXPERTOS SEO QUE TE LLEVÁN AL 1# EN GOOGLE PARA GANAR 10.000s DE TRÁFICO DE CALIDAD GRATUITO - EN SÓLO 2 MESES
 

Los 7 pasos más poderosos para disparar tu ranking orgánico para ALCANZAR Y MANTENER un impresionante tráfico orgánico es TUYO.

Consigue gratis lo que el 1% de los expertos en SEO venden por miles de euros... y el otro 99% ni siquiera sabe que existe.


OBTEN MI INFORME GRATUITO
5 errores que debes evitar en tu sitio web de Drupal
Ebook - 5 errores que debes evitar en tu sitio web de Drupal (¡podrían costarte miles de euros!)
 

Este Ebook cubre 5 terribles errores que probablemente estés cometiendo ahora mismo con tu sitio web de Drupal.

¡Nº3 TE SORPRENDERÁ! Esta lectura de 10 minutos te ahorrará miles de euros.



OBTEN MI INFORME GRATUITO