Introducción a Python
Trabajo previo¶
Lecturas¶
Severance, D. C. R. (2016). Python for Everybody: Exploring Data in Python 3 (S. Blumenberg & E. Hauser, Eds.). CreateSpace Independent Publishing Platform. https://
Downey, Allen B. (2024). Think Python: How to Think Like a Computer Scientist (3rd ed.). O’Reilly Media. https://
Introducción¶
Python es un lenguaje de programación de propósito general que ha alcanzado una gran popularidad en los últimos años. Fue declarado el lenguaje del año en 2024 por el índice Tiobe de popularidad de lenguajes de programación, debido a su crecimiento en diversas áreas, entre las que destacan la ciencia de datos y el aprendizaje automático, además de desarrollo web, scripting y visualización de datos, entre muchas otras.
Python también es ampliamente utilizado en enseñanza de la programación. En 2014, era el lenguaje más empleado en cursos introductorios de programación de las principales universidades de Estados Unidos. Este uso en enseñanza se debe, entre otras razones, a que los programas en Python son más fáciles de leer y requieren menos líneas de código fuente que otros lenguajes de amplia difusión, tales como Java, C o C++.
Historia¶
Python fue creado por el programador holandés Guido van Rossum, quien concibió el diseño original del lenguaje a finales de la década de 1980 y dio a conocer la primera versión en 1991. El nombre del lenguaje es un homenaje al grupo de comedia británico Monty Python. Según van Rossum, en diciembre de 1989 buscaba un proyecto de programación como “pasatiempo” durante los días cercanos a la Navidad, por lo que decidió escribir un interpretador para un lenguaje de programación en el que había estado pensando recientemente. Escogió el nombre Python por encontrarse en un “humor ligeramente irreverente” y ser un gran aficionado al programa de televisión “El circo volador de Monty Python” (Monty Python’s Flying Circus) (figura 1).

Figura 1. El circo volador de Monty Python. Fuente: Internet Movie Database (IMDB).
La versión 3.0 de Python fue publicada en 2008 e introdujo cambios importantes que la hicieron incompatible con Python 2. Ambas versiones coexistieron durante más de una década, hasta que Python 2 alcanzó su fin de vida en enero de 2020. La versión estable más reciente es Python 3.14.
La “cultura” de Python ocasionalmente hace referencia a Monty Python en tutoriales, ejemplos y otros materiales. Por ejemplo, en el uso de spam, ham y eggs como variables metasintéticas en sustitución de las tradicionales foo, bar y baz, en alusión al sketch Spam.
Principales características¶
La filosofía de diseño de Python enfatiza la importancia de que los programas sean fáciles de leer, de manera que los programadores puedan entender rápidamente su propósito, control de flujo y funcionamiento. Esto facilita el mantenimiento de los programas existentes y disminuye la necesidad de crear otros nuevos.
Las siguientes son otras características importantes del lenguaje Python:
Se distribuye con una licencia de código abierto llamada Python Software Foundation License.
Es interpretado: las instrucciones se traducen una por una a lenguaje de máquina, a diferencia de los lenguajes compilados, que traducen de manera conjunta las instrucciones de una unidad completa (ej. un programa o una biblioteca). Los lenguajes interpretados tienden a ser más lentos que los compilados, pero también son más flexibles como entornos de desarrollo y depuración.
Tiene un sistema de tipos de datos dinámico: las variables pueden tomar diferentes tipos de datos (ej. textuales, numéricos) durante la ejecución del programa, a diferencia de un sistema de tipos de datos estático, en el que las variables solo pueden tener un tipo de datos durante la ejecución del programa. La mayoría de los lenguajes de tipos dinámicos son también lenguajes interpretados.
Cuenta con administración automática de memoria: el interpretador se encarga de asignar y administrar la memoria de las variables, sin intervención del programador. Esto incluye un sistema de recolección de basura, que libera la memoria de las variables que no están siendo utilizadas.
Soporta varios paradigmas de programación: los paradigmas son estilos o enfoques teóricos de programación. En el caso de Python, incluye programación orientada a objetos, programación imperativa, programación funcional y programación procedimental.
Es multiplataforma: puede ejecutarse en los sistemas operativos más populares (ej. Windows, macOS, Linux).
Principios de diseño¶
El Zen de Python¶
La filosofía de diseño de Python está resumida en una lista de 19 principios conocida como el Zen de Python que guían el uso del lenguaje.
Guía de estilo para código Python¶
Los principios de diseño se reflejan en la guía de estilo para código Python, la cual proporciona una serie de convenciones para la escritura de programas.
Programas “pitónicos”¶
La aplicación de estos principios y el seguimiento de mejores prácticas y de idioms de programación, como los descritos en The Hitchhiker’s Guide to Python!, hacen que un programa se considere “pitónico” (pythonic). Los programadores que siguen la filosofía de Python son llamados pythonists, pythoneers o pythonistas.
Licenciamiento¶
Python Software Foundation (PSF) es la organización sin fines de lucro que posee los derechos de propiedad intelectual del lenguaje Python y que maneja las licencias de software libre con las que se distribuye. Su misión es “promover, proteger y avanzar el lenguaje de programación Python, así como apoyar y facilitar el crecimiento de una comunidad diversa e internacional de programadores de Python”.
La implementación de referencia del interpretador de Python, llamada CPython, es software de código abierto (open source), lo que facilita que el desarrollo de Python sea conducido por una comunidad de programadores enlazada a través de Internet. Este modelo es seguido por la mayoría de las implementaciones del interpretador de Python. Una muestra muy representativa de este esquema de colaboración es el Python Package Index (PyPI), un repositorio para compartir componentes de software programados con Python, que a la fecha alberga más de medio millón de proyectos.
Aplicación en datos geoespaciales¶
Python ha ganado una gran importancia en el área del desarrollo de aplicaciones geoespaciales debido a su popularidad, “suavidad” de la curva de aprendizaje y abundancia de recursos de educación y consulta (ej. tutoriales, libros, listas de correo, foros de discusión). Todas estas son características que, entre otras, lo hacen muy apropiado para programadores que no son especialistas en ciencias de la computación, como es el caso de muchos de los usuarios de sistemas de información geográfica (SIG) y otros tipos de software geoespacial. De hecho, muchas de estas herramientas han seleccionado a Python como el lenguaje de preferencia para que sus usuarios amplíen o configuren la funcionalidad que ofrecen. Como ejemplos, pueden mencionarse las bibliotecas ArcPy para ArcGIS, PyQGIS para QGIS y PyGRASS para GRASS GIS (figura 2). Además, existen numerosas bibliotecas de Python independientes para el manejo de datos geoespaciales, como GeoPandas para datos vectoriales, Rasterio para datos raster, Shapely para geometría computacional y Folium para visualización de mapas interactivos.

Figura 2. Uso de Python en software para manejo de datos geoespaciales. Fuente: (Zambelli et al., 2013).
Referencias bibliográficas¶
Zambelli, P., Gebbert, S., & Ciolli, M. (2013). PyGRASS: An object oriented Python application programming interface (API) for Geographic Resources Analysis Support System (GRASS) geographic information system (GIS). ISPRS International Journal of Geo-Information, 2(1), 201–219. https://