Introducción al lenguaje de programación Python
Contents
Introducción al lenguaje de programación Python#
Introducción#
Comenzaremos con un ambiente de Python 3. Pero antes un poco de su ecosistema y su historia.
Breve historia de Python#
Python fue concebido a fines de la década de 1980 por Guido van Rossum en Centrum Wiskunde & Informatica (CWI) en los Países Bajos como un sucesor del lenguaje de programación ABC. La primera versión ya incluía clases con herencias, manejo de excepciones, funciones y una de las características principales de Python: funcionamiento modular. Esto permitía que fuese un lenguaje mucho más limpio y accesible para la gente con pocos conocimientos de programación. Una característica que se mantiene hasta el día de hoy. Hasta el año 2018, el desarrollo de este popular lenguaje de programación estaba dirigido personalmente por Van Rossum, pero decidió apartarse y, desde 2019, son cinco las personas que deciden como evoluciona y se desarrolla Python. Un consejo que se renueva de forma anual.
Guido van Rossum en OSCON_2006. Créditos: Wikipedia

Versión 1.0#
Van Rossum empezó a desarrollar Python mientras trabajaba en CWI. Fue este centro de investigación quien liberó, en 1995 la versión 1.2 de Python. A partir de este momento, ya desvinculado de CWI, Van Rossum hizo aún más accesible el código y para el año 2000, el equipo principal de desarrolladores de Python se cambió a BeOpen.com para formar el equipo de BeOpen Python Labs.
Versión 2.0#
En octubre del año 2000 se publica la segunda versión de Python. Una nueva versión en la que se incluyó la generación de listas, una de las características más importantes del lenguaje este lenguaje de programación. En 2001, se crea la Python Software Foundation, la cual a partir de Python 2.1 es dueña de todo el código, documentación y especificaciones del lenguaje.
Versión 3.0#
La última gran actualización de la historia de Python se produjo en el año 2008 con el lanzamiento de la versión 3.0, que venía a solucionar los principales fallos en el diseño de este lenguaje de programación. Aunque Python mantiene su filosofía en esta última versión, como lenguaje de programación ha ido acumulando formas nuevas y redundantes de programar un mismo elemento. De ahí la necesidad de nuevas versiones que eliminen estos constructores duplicados. Python 3.0 rompe la compatibilidad hacia atrás del lenguaje, ya que el código de Python 2.x no necesariamente debe correr en Python 3.0 sin modificación alguna.
Sobre Numpy#
Python no se diseñó originalmente para computación numérica, pero atrajo la atención de la comunidad científica y de ingeniería desde el principio. En 1995 se fundó el grupo de interés especial (SIG) matrix-sig con el objetivo de definir un paquete de computación de matriz ; entre sus miembros se encontraba el diseñador y mantenedor de Python, Guido van Rossum , quien amplió la sintaxis de Python (en particular, la sintaxis de indexación) para facilitar la computación de arreglos .
Jim Fulton completó una implementación de un paquete de matriz, luego Jim Hugunin generalizó y lo llamó Numeric (también conocido como las “extensiones numéricas de Python” o “NumPy”).
Posteriormente se escribió un nuevo paquete llamado Numarray como un reemplazo más flexible para Numeric. Al igual que Numeric, ahora también está obsoleto. Numarray tenía operaciones más rápidas para matrices grandes, pero era más lento que Numeric en las pequeñas, por lo que durante un tiempo ambos paquetes se usaron en paralelo para diferentes casos de uso.
La última versión de Numeric (v24.2) se publicó el 11 de noviembre de 2005, mientras que la última versión de numarray (v1.5.2) se publicó el 24 de agosto de 2006.
A principios de 2005, el desarrollador de NumPy, Travis Oliphant, quería unificar a la comunidad en torno a un único paquete de matriz y transfirió las características de Numarray a Numeric, lanzando el resultado como NumPy 1.0 en 2006. Este nuevo proyecto era parte de SciPy . Para evitar instalar el paquete SciPy grande solo para obtener un objeto de matriz, este nuevo paquete se separó y se llamó NumPy. El soporte para Python 3 se agregó en 2011 con NumPy versión 1.5.0, Wikipedia
Sobre Pandas#
Wes McKinney, empezó a desarrollar Pandas en el año 2008 mientras trabajaba en AQR Capital por la necesidad que tenía de una herramienta flexible de alto rendimiento para realizar análisis cuantitativo en datos financieros. Antes de dejar AQR convenció a la administración de la empresa de distribuir esta biblioteca bajo licencia de código abierto. Otro empleado de AQR, Chang Ella, se unió en 2012 al esfuerzo de desarrollo de la biblioteca, Wikipedia.
Sobre Matplotlib#
Matplotlib es una biblioteca de gráficos para Python y su extensión matemática numérica NumPy . Proporciona una API orientada a objetos para incrustar gráficos en aplicaciones que utilizan juegos de herramientas GUI de uso general como Tkinter , wxPython , Qt o GTK . También hay una interfaz de procedimiento “pylab” basada en una máquina de estado (como OpenGL ), diseñada para parecerse mucho a la de MATLAB.
Matplotlib fue escrito originalmente por John D. Hunter . Desde entonces ha tenido una comunidad de desarrollo activa y se distribuye bajo una licencia estilo BSD . Michael Droettboom fue nominado como desarrollador principal de matplotlib poco antes de la muerte de John Hunter en agosto de 2012 y se le unió Thomas Caswell. Matplotlib es un proyecto patrocinado fiscalmente por NumFOCUS .
Matplotlib 2.0.x es compatible con las versiones de Python 2.7 a 3.10. El soporte de Python 3 comenzó con Matplotlib 1.2. Matplotlib 1.4 es la última versión compatible con Python 2.6. Matplotlib se comprometió a no admitir Python 2 después de 2020 al firmar la Declaración de Python 3, Wikipedia
¿Qué es Python?#

Python es un lenguaje de programación (¿Qué es un programa?) popular que se usa normalmente para:
Desarrollo web en servidores.
Desarrollo de Software.
Cálculos Matemáticos.
Desarrollo de Scripts.
Python es actualmente el segundo lenguaje de programación después de Java. El tercer lenguaje es C++.
Con el advenimiento de la ciencia de datos y de la inteligencia artificial Python se convirtió en el lenguaje preferido en estas áreas junto a R.
¿Para qué se usa Python?#
Puede ser usado en un servidor para crear aplicaciones web,
Puede conectarse a sistemas de bases de datos. Puede leer y modificar archivos.
Puede ser usado para manejar Big Data y hacer cálculos matemáticos de alta complejidad.
Prototipo rápido para producción de Software.
Características generales del lenguaje#
Funciona en diferentes plataformas (Windows, Mac, Linux, etc).
Tiene una sintaxis (forma de escribir) simple, similar al idioma inglés.
Tiene una sintaxis que permite escribir programas en muy pocas líneas, comparado con otros lenguajes de programación.
Python se ejecuta en un sistema interpretado. Es decir, que los códigos se pueden correr justo después de ser escritos; en otras palabras, no necesitan compilación previa.
Se puede usar como un lenguaje clásico, como un lenguaje orientado a objetos, o como un lenguaje funcional.
Es el principal lenguaje de la Ciencia de Datos.
El desarrollo modular de Python. Ecosistema#
Una de las principales características de Python es el enorme ecosistema que acompaña al núcleo (kernel). La ciencia de datos impulsó este desarrollo. A partir del desarrollo de la ciencia de datos en el siglo 21, junto con la aparición de las enorme cantidades de datos, los científicos miraron hacia los lenguajes de programación existentes y eligieron a Python por encima de R, debido a que R no es un lenguaje de programación general.
La imagen muestra parte del ecosistema de Python, que hoy se considerá como básico para cualquier científico de datos moderno.
Las diferentes librerías fueron apareciendo a la medida que los científicos empezaron a utilizar Python como su lenguaje básico. La razón principal fue la eficiencia tanto en velocidad como en manejo de memoria. Python es interpretado y en consecuencia lento. Pero por otro lado es un lenguaje muy fácil de aprender, flexible, estructurado, orientado a objetos y funcional.
Los científicos se preguntaron ¿Cómo hacer de Python el lenguaje de base, pero ganar en eficiencia? La respuesta fue: crear un ecosistema, con librerías especializadas muy eficientes.

Hello World!#
El primer ejemplo clásico de programación es saludar, o sea, decirle al computador que muestre un saludo. Para esto, se usa la función de Python llamada print. Para colocar un saludo (o un texto cualquiera), se debe colocar entre comillas dobles o sencillas dentro del comando print. Entonces, para que el computador muestre un saludo, por ejemplo Hello, World!, debemos escribir en ambiente de código como sigue
print('Hello friend. Hello friend?')
Hello friend. Hello friend?
Note que el resultado se muestra sin las comillas dobles. Estas comillas dobles se usan para decirle al computador que vamos a ingresar texto. Si quisiéramos escribir con un salto de linea escribimos “\n” así al escribir print("Hola\nMundo")
tenemos:
print("Hola\nMundo")
Hola
Mundo
Ejercicio#
Escriba un código que le diga a Python que devuelva el texto:
Sólo sé …
… que nada sé.
# Escriba el código aqui
Variables en Python#
Una variable en Python corresponde físicamente a un espacio de memoria del computador, etiquetado con un nombre y tipo de dato. Una variable sirve para guardar un valor específico, ya sea numérico, texto u otro tipo de Dato con el nombre con la que se nombre dicha variable. Observe el siguiente ejemplo.
# Asignamos 1 a la variable x
x = 1
print("El valor de la variable x es", x)
# Asignamos "¡Vamos a programar!" a la variable y
y = "¡Vamos a programar!"
print("\nEl valor de la variable y es", y)
El valor de la variable x es 1
El valor de la variable y es ¡Vamos a programar!
Asignación dinámica en Python#
En Python, como en R, Julia, Matlab y otros lenguajes no es necesario declarar una variable de antemano, como ocurre en otros lenguajes como C, C++ y muchos otros lenguajes de bajo nivel. La asignación dinámica implica que es posible cambiar el tipo de dato de una variable con tan solo reasignarle un valor. En Python, se delega al programador la responsabilidad de cuidarse de efectos no esperados al cambiar el tipo de una variable. Vea el siguiente ejemplo.
x = 5.6
print('x es número un real:', x)
x = 3+4j
print('x es ahora un número complejo:', x)
x = '25 de mayo'
print('En cambio ahora x es un string:', x)
x es número un real: 5.6
x es ahora un número complejo: (3+4j)
En cambio ahora x es un string: 25 de mayo
Reglas para la creación de variables#
El nombre de una variable debe comenzar con una letra ó con _.
El nombre de una variable no puede comenzar con un número.
El nombre de una variable sólo puede contener caracteres alfa-numéricos.
El nombre de una variable tiene sensibilidad a mayúsculas y minúsculas (x es diferente de X).
Ejercicio#
Escriba un código que le diga a Python que devuelva los textos Tengo my_age años, donde my_age es una variable que tenga asignada su edad.
# Escriba aquí