Python

Python


Pythones uncuya filosofía hace hincapié en la legibilidad de su.

​ Se trata de un lenguaje de programación, ya que aguanta,y, en menor medida,. Es un,y.

Es administrado por la. Tiene una licencia de, denominada,

​ que es compatible con laa partir de la versión dos.1.1, e incompatible en determinadas 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 progresivo 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 ustedes? ¿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 las clases 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-tres, con la adición de una cláusula

else.

​ En el año 1994 se formó, el foro de discusión de discusión primordial de Python, marcando un jalón en el desarrollo 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 procedente de CWI fue Python doce. En mil novecientos noventa y cinco, 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 accesible a más gente, con un nivel de 'alfabetización' básico en lenguajes de programación, similar a la alfabetización básica en inglés y habilidades matemáticas precisas por numerosos trabajadores. Python tuvo un papel vital en este proceso: debido a su orientación hacia una sintaxis limpia, ya era idóneo, y las metas de CP4E presentaban semejanzas con su precursor, ABC. El proyecto fue patrocinado por.

​ En el año 2007, el proyecto CP4E está inactivo, y mientras que Python procura ser fácil de aprender y no muy misterio en su sintaxis y semántica, alcanzando a los no-programadores, no es una preocupación activa.

En el año 2000, el equipo principal de desarrolladores de Python se cambió apara formar el equipo BeOpen. CNRI pidió que la versión dieciseis 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 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores de PythonLabs se unieron en.

Python dos.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 emplear Python con software libre bajoera muy deseable. La licencia utilizada entonces, la, incluía una cláusula estableciendo que la licencia estaba regida por el estado de, con 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, desarrollo web comercio madrid .

Python 1.6.1 es fundamentalmente 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 2.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 las clases en Python (tipos escritos en C), y clases (tipos escritos en Python) en 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 adiciones a la biblioteca estándar de Python y las decisiones sintácticas fueron influenciadas fuertemente poren ciertos casos: el package

logging,

​ introducido en la versión 2.3, está basado en; el parser, introducido en 2.0; el package

threading,

​ cuya clase

Threadexpone un subconjunto de la interfaz de la clase homónima en Java.

Python 2, esto es Python dos.7.x, fue oficialmente descontinuado el 1 de enero de dos mil veinte (primero planeado para dos mil quince) 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 2, solo tienen soporte la rama Python 3.5.x

​ y siguientes.

Características y paradigmas

Python es un lenguaje de programación. Esto significa que más que forzar a los programadores a adoptar un estilo particular de programación, deja múltiples estilos:,y. Otros paradigmas están soportados mediante el empleo 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 facilidad de extensión. Se pueden redactar nuevos módulos fácilmente eno. Python puede incluirse en aplicaciones que precisan una interfaz programable.

Aunque la programación en Python podría considerarse en algunas 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 con frecuencia a la

filosofía de Pythonque es bastante análoga a la filosofía de. El código que prosiga los principios de Python se dice 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 espeso.
  • La legibilidad cuenta.
  • Los casos especiales no son tan especiales como para quebrantar las reglas.
  • Lo práctico gana a lo puro.
  • Los fallos jamás deberían dejarse pasar silenciosamente.
  • 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— manera obvia de hacerlo.
  • Aunque esa manera puede no ser obvia al principio salvo que usted sea holandés.

  • Ahora es mejor que jamás.
  • Aunque

    nuncaes frecuentemente mejor que

    ya mismo.

  • Si la implementación es difí agencia sem vigo de explicar, es una mala idea.
  • Si la implementación es fácil de explicar, es posible que sea una buena idea.
  • Los espacios de nombres (

    namespaces) son una gran 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.

Modo interactivo

El intérprete de Python estándar incluye un

modo interactivoen el cual 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 forma inmediata, lo que da la posibilidad de probar porciones de código en el modo interactivo ya antes de integrarlo como 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, como,o,

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

Ejemplo del modo interactivo:

Elementos del lenguaje

Python fue diseñado para ser leído con sencillez. Una de sus características es el empleo de palabras donde otros lenguajes utilizarían símbolos. Por poner un ejemplo, los operadores lógicos

!,

y

&&en Python se escriben

not,

ory

and, respectivamente. Curiosamente el lenguajees junto conuno de los lenguajes con clarísima sintaxis y los dos son de la década del 70. 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 a través de espacios o bien 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 a través de un conjunto de caracteres, por norma general entre llaves

.

​ Se pueden utilizar tanto espacios como tabuladores para indentar el código, pero se recomienda no entremezclarlos.

Debido al significado sintáctico de la indentación, cada instrucción debe estar contenida en una línea. Sin embargo, 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:

Comentarios

Los

comentariosse pueden poner de dos formas. La primera y más apropiada para comentarios largos es utilizando la notación ''' comentario ''', 3 apóstrofos de apertura y tres de cierre. La segunda notación usa el símbolo

#, y se extienden hasta el final de la línea.

El intérprete no tiene presente los

comentarios, lo que es útil si deseamos poner información adicional 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 debe especificar cuál es su tipo de antemano y puede tomar distintos valores en otro instante, aun de un tipo diferente al que tenía anteriormente. 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

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 cambiarse en tiempo de ejecución.

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 adicionales, si las hay, se introducen utilizando

elifseguida de la condición y su bloque de código. Todas y cada una de las condiciones se evalúan secuencialmente hasta encontrar la primera que sea auténtica, 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 las condiciones fueron falsas.

El bucle

fores afín 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:

Bucle while

El bucleevalúa una condición y, si es auténtica, ejecuta el bloque de código interno. Continúa valorando y ejecutando mientras 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:

Listas y Tuplas

  • Para declarar una

    listase usan los corchetes

    , en cambio, para declarar una

    tuplase usan 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. No obstante las

    listassuelen usarse para elementos del mismo tipo en cantidad variable al tiempo que las

    tuplasse reservan para elementos distintos en cantidad fija.

  • Para acceder a los elementos de una

    listao

    tuplase utiliza un índice entero (empezando por "0", no por "1"). Se pueden usar índices negativos para acceder elementos desde el final.

  • Las

    listasse caracterizan por ser mutables, es decir, se puede mudar su contenido en tiempo de ejecución, mientras que las

    tuplasson inmutables ya que no es posible modificar el contenido una vez creada.

Diccionarios

  • Para declarar un

    diccionariose utilizan las llaves

    . Poseen elementos separados por comas, donde cada elemento está formado por un par

    clave:valor(el símbolo

    :separa la clave de su valor correspondiente).

  • Los

    diccionariosson alterables, esto es, se puede cambiar el contenido de un

    valoren tiempo de ejecución.

  • En cambio, las

    clavesde un

    diccionariodeben ser inalterables. Esto desea decir, por poner un ejemplo, que no vamos a poder emplear ni

    listasni

    diccionarioscomo

    claves.

  • El

    valorasociado a una

    clavepuede ser de cualquier

    tipo de dato, incluso un

    diccionario.

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.

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 pasase a la siguiente y así consecutivamente 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 correcta.

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 manera 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 mediante

    set(items)donde

    itemses cualquier objeto

    iterable, como

    listaso

    tuplas. Los

    conjuntosno mantienen el orden ni contienen elementos duplicados.

  • Se acostumbran a emplear para suprimir duplicados de una secuencia, o bien para operaciones matemáticas como,,y.

Listas por comprensión

Una

lista por comprensión(en inglés: list comprehension) es una expresión compacta para acotar

listas. De la misma manera 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 aconsejable que una clase heredase 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 singular que se ejecuta al instanciar la clase, se utiliza en general para iniciar atributos y ejecutar métodos precisos. Del mismo modo que todos los métodos en Python, debe tener cuando menos un parámetro, normalmente se utiliza

    self. El resto de parámetros serán los que se indiquen al instanciar la

    clase.

  • Los atributos que se desee que sean alcanzables desde fuera de la

    clasese deben declarar usando

    self.delante del nombre.

  • En Python no existe el término de encapsulación,

    ​ con lo que el programador debe ser responsable de asignar los valores a los atributos

Existen muchas propiedades que se pueden agregar al lenguaje importando módulos, que son "minicódigos" (la mayoría escritos también en Python) que proveen de determinadas funciones y clases para realizar determinadas labores. Un caso es el módulo

​, que permite 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 agregan a los códigos escribiendo

importseguida del nombre del módulo que queramos emplear.

Interfaz al sistema operativo

El módulo

osprovee funciones para interaccionar con el sistema operativo:

Para tareas de administración de ficheros, el módulo

shutilprovee una interfaz de más alto nivel:

Comodines de archivos

El módulo

globprovee una función para crear listas de archivos desde búsquedas con comodines en carpetas:

Argumentos de línea de órdenes

Los argumentos 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 realizar selecciones al azar:

El módulo

statisticsse utiliza para estadística básica, por ejemplo: media, mediana, varianza, etc.:

Fechas y Tiempos

El módulo

datetimepermite manejar datas y tiempos:

Sistema de objetos

En

Pythontodo es un

objeto(aun las). Las

clases, al ser

objetos, son instancias de una.

Pythonademás soportay.

Biblioteca estándar

Python viene con "pilas incluidas"

Python tiene una enorme biblioteca estándar, usada para una diversidad de tareas. 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 personalizados escritos tanto en C como en Python. Debido a la enorme variedad de herramientas incluidas en la biblioteca estándar, conjuntada con la habilidad de usar lenguajes de bajo nivel como C y C++, los que son capaces de interaccionar con otras bibliotecas, Python es un lenguaje que combina su clara sintaxis con el inmenso poder de lenguajes menos elegantes.

Implementaciones

Existen diversas implementaciones del lenguaje:

  • es la implementación original, libre para múltiples plataformas en el lugar oficial de Python.
  • es la implementación para .NET
  • es la variante de CPython que trata de no usar el

    stackde()

  • es la implementación hecha en
  • es la implementación realizada para Palm ()
  • es una implementación de Python escrita en Python y optimada 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.

Incidencias

A lo largo de su historia, Python ha presentado una serie de incidencias, de las cuales las más esenciales 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, desde 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.

Véase también

Referencias

Bibliografía

  • Knowlton, Jim (2009).

    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.

     . 

Enlaces externos

Report Page