Open In Colab

Introducción a Python#

Python es un lenguaje de programación altamente popular y con una sintaxis sencilla, lo que lo hace fácilmente accesible para programadores no experimentados. No obstante, es una herramienta muy potente que puede ayudarnos a resolver problemas de muy diferente índole.

picture

Entre sus características principales destacan:

  • Es un lenguaje interpretado (vs otros lenguajes compilados como C).

  • Es de tipado fuerte y dinámico, veremos que significa esto más adelante.

  • Es multiplataforma (capaz de ejecutarse en diferentes dispositivos y sistemas operativos).

  • Python es un lenguaje de propósito general, lo que significa que puede usarse para crear una variedad de programas diferentes y no está especializado para ningún problema específico.

  • Tiene una amplia librería estándar además de una extensa comunidad que da soporte a una variedad de paquetes de terceros. El repositorio de referencia para paquetes de Python es el Python Package Index

Podemos visitar la encuesta anual de Stackoverflow sobre uso y opinión de diferentes tecnologías para hacernos una idea de la presencia del entorno Python en el mundo del desarrollo, sobre todo en campos cercanos a la Ciencia de Datos.

Descargar Python#

Podemos descargar Python desde su sitio oficial. En noviembre de 2023, la última versión estable es la 3.12, aunque en este curso utilizaremos la versión

import sys
print(sys.version)
3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]

Python incluye un gestor de paquetes llamado pip, que nos permite instalar/desinstalar/actualizar paquetes alojados en el Python Project Index u otros repositorios. Además existen distribuciones como anaconda que nos facilitan el manejo de paquetes.

En este curso no nos tendremos que preocupar de manejar paquetes y sus dependencias ya que trabajaremos con Google Colab, que nos proporciona directamente el acceso a un gran número de paquetes y funcionalidades del ecosistema Python.

Dónde ejecutar Python#

Hay muchos entornos en los que un intérprete de Python puede correr como un IDE (Integrated Development Environment -como Visual Studio Code, Pycharm, Sublime-), un navegador o una terminal.

Para ejecutar Python 3 desde la terminal, escribimos python3 en el prompt y se lanzará una aplicación

Python 3.10.10 (main, Sep  6 2023, 14:02:23)
[Clang 14.0.3 (clang-1403.0.22.14.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Una herramienta muy utilizada es el entorno de trabajo Jupyter, que puede ser instalado vía pip mediante

pip install notebook

Jupyter Notebook lanza una aplicación que por defecto corre en el puerto 8888 de nuestro localhost en la que mediante un kernel de Python podemos ir ejecutando código en celdillas. Esto nos permite tener feedback casi inmedianto de nuestras implementaciones y es una herramienta adecuada cuando queramos experimentar o familiarizarnos con algún paquete.

Google Colab nos permite trabajar con notebooks en nuestro navegador sin necesidad de instalar Python ni jupyter en nuestra máquina. En este caso perdemos capacidad para configurar nuestro entorno, pero estaremos alineados a la hora de seguir el curso.

Notebooks de Jupyter/Colab#

Ya sea en Jupyter o en Google Colab, trabajaremos con cuadernos (o notebooks) de Python, que son archivos de texto con la extensión .ipynb (a diferencia de los archivos .py, correspondientes a los ejecutables y módulos de Python).

Cada cuaderno está compuesto por una secuencia de celdillas, que pueden ser de tipo ejecutable o markdown. En las cendillas de tipo ejecutable escribiremos nuestro código Python, mientras que en las celdas de tipo markdown podremos crear cabeceras, listas, resaltar texto con negrita o cursiva e incluso incorporar fórmulas matemáticas con Latex

\[ f(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x-\mu}{\sigma})^2} \]

Todo ello para explicar y realizar anotaciones sobre nuestro código.

Más sobre Python#

Python fue creado en 1991 por Rossum y su nombre se debe a un famoso grupo de comedia británico llamado Monty Python, de ahí que en muchos ejemplos encontremos variables dummy llamadas como spam y eggs en lugar de los típicos foo, bar.

Su popularidad se debe principalmente a que es fácil de aprender y es utilizado para construir aplicaciones en el lado del servidor, así como el tratamiento y análisis de datos en ecosistemas big data y el desarrollo de soluciones basadas en el machine learning, entre otras muchas cosas.

Python es un lenguaje que hace especial énfasis en su legibilidad, evitando el uso de corchetes y semicolons en favor de la indentación. La filosofía de un buen pythonista puede leerse en The Zen of Python

import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!