# T04: Lenguaje de programación PYTHON
A continuación se explican conceptos relacionados con la programación en PYTHON.
---
## ¿Qué es un lenguaje de programación?
Un **lenguaje de programación** es un conjunto de reglas y sintaxis que permite a los programadores dar *instrucciones* a una computadora para que realice tareas específicas. Es una forma de comunicarse con las máquinas.
---
## PYTHON
:::{figure} ./recursos/image10.png
:align: left
:width: 250
:::
**Python** es un lenguaje de programación interpretado de alto nivel creado por **Guido van Rossum** y publicado por primera vez en **1991**. Está diseñado pensando en la legibilidad del código, y su sintaxis permite a los programadores expresar conceptos en menos líneas de **código**.
:::{card} PYTHON
:link: https://www.python.org/
:shadow: lg
Acceder a la web PYTHON
:::
---
## Principales características de PYTHON
A continuación se muestran algunas de las características de Python que lo convierten en un lenguaje de programación tan versátil y ampliamente utilizado:
- **Legibilidad**. Python es conocido por su sintaxis clara y legible, que se parece en cierto modo a la inglesa.
```python
import time
saludo = "Buenos días"
def saludar():
print(saludo)
saludo()
```
- **Fácil de aprender**. La legibilidad de Python hace que sea relativamente fácil para los principiantes entender lo que hace el código.
- **Versatilidad**. Python no está limitado a un tipo de tarea: Usted puede utilizarlo en muchos campos. Si le interesa el desarrollo web, la automatización de tareas o la ciencia de datos, Python tiene las herramientas necesarias.
- **Amplia compatibilidad con bibliotecas**. Incluye una gran biblioteca estándar con código pre-escrito para diversas tareas, lo que te ahorra tiempo y esfuerzo. Además, la vibrante comunidad de Python ha desarrollado miles de paquetes de terceros, que amplían aún más la funcionalidad de Python.
- **Independencia de la plataforma**. Una de las grandes ventajas del lenguaje es que se puede escribir el código una vez y ejecutarlo en cualquier sistema operativo. Esta característica hace que Python sea una gran elección si trabaja en un equipo con diferentes sistemas operativos.
- **Lenguaje interpretado**. Python es un lenguaje interpretado, lo que significa que el código se ejecuta línea a línea. Esto puede facilitar la depuración, ya que se puede probar pequeños fragmentos de código sin tener que compilar todo el programa.
- **Código abierto y gratuito**. También es un lenguaje de código abierto, lo que significa que su código fuente está disponible libremente y puede distribuirse y modificarse. Esto ha llevado a una gran comunidad de desarrolladores a contribuir a su desarrollo y crear un vasto ecosistema de bibliotecas Python.
:::{card} PYTHON GIT
:link: https://github.com/python
:shadow: lg
Acceder al código fuente PYTHON
:::
- **Tipado dinámico:** Python está tipado dinámicamente, lo que significa que no es necesario declarar el tipo de datos de una variable. El intérprete de Python infiere el tipo, lo que hace que el código sea más flexible y sea más fácil trabajar con él.
---
## ¿Por qué PYTHON es tan popular?
> PYTHON ES UN LENGUAJE DE PROGRAMACIÓN MULTI-PROPÓSITO.
A lo largo de los años, Python se ha convertido en uno de los lenguajes de programación más populares debido a su sencillez, versatilidad y amplia gama de aplicaciones. Esto se comprueba en el **índice TIOBE**.
:::{admonition} ¿Qué es el índice TIOBE?
:class: tip
El **índice de la comunidad de programación** (TIOBE) es un indicador de la popularidad de los lenguajes de programación creado por la compañía **TIOBE**. El índice se actualiza una vez al mes. Las calificaciones se basan en el número de ingenieros calificados en todo el mundo, cursos y proveedores de terceros.
```{card}
:link: https://www.tiobe.com/
:shadow: lg
:width: 50%
:img-background: ./recursos/logo-tiobe.svg
```
:::
:::{admonition} ¿Cuales son las fuentes del índice TIOBE?
:class: tip
El índice TIOBE se basa en la consulta de sitios web populares como Google, Amazon, Wikipedia, Bing y más de 20 otros para calcular las calificaciones.
Es importante señalar que el índice TIOBE no se trata del mejor lenguaje de programación ni del lenguaje en el que se han escrito más líneas de código.
:::
En la siguiente gráfica se muestra la evolución del uso de PYTHON desde el año 2002 hasta la actualidad:
:::{figure} ./recursos/image11.png
:width: 700
:target: https://www.tiobe.com/tiobe-index/python/
Índice TIOBE
:::
La siguiente tabla muestra el ranking de lenguajes de programación más usados en **Diciembre de 2024 y Diciembre de 2025**:
:::{image} ./recursos/image12.png
:align: center
:target: https://www.tiobe.com/tiobe-index/
:width: 600
:::
---
## Aplicaciones de PYTHON
### Desarrollo de software
Python se usa para la creación de scripts, automatización de tareas y pruebas que se ejecutan en **sistema operativo de computadores**. Por ejemplo:
- Scripts para leer y escribir archivos, mostrar mensajes en pantalla, mostrar interfaces gráficas con botones o formularios.
- Automatización de tareas de escritorio para emular clics del mouse, entradas por teclado para tareas repetitivas, envío automático de correos electrónicos y recolección automática de datos de sitios web. (Herramienta **schedule**)
:::{card} Schedule
:shadow: lg
:img-bottom: https://pypi.org/static/images/logo-small.8998e9d1.svg
:img-alt: Enlace a shedule
:width: 25%
:link: https://pypi.org/project/schedule/
:::
- Pruebas de depuración en funciones específicas de ejecución para encontrar comportamientos no deseados en la aplicación. (herramienta PyTest)
:::{card} Pytest
:shadow: lg
:img-bottom: https://docs.pytest.org/en/stable/_static/pytest1.png
:img-alt: Enlace a PyTest
:width: 25%
:link: https://docs.pytest.org/en/stable/
:::
### Desarrollo Web
Con Python se puede desarrollar programas que se ejecutan en un **navegador web**. Por ejemplo:
- Con librerías como **Django** o **Flask**, se crean aplicaciones web que tengan sistemas de autenticación, paneles de administración e interacción con bases de datos.
- **FASTAPI** permite la construcción sistemas que validen datos rápidamente entre el cliente y el servidor.
:::{grid} 3
```{grid-item-card} Django
:link: https://www.djangoproject.com
:img-bottom: https://www.fullstackpython.com/img/logos/django.png
:img-alt: Enlace a Django
```
```{grid-item-card} Flask
:link: https://flask.palletsprojects.com/es/stable/
:img-bottom: https://flask.palletsprojects.com/en/stable/_images/flask-name.svg
:img-alt: Enlace a Flask
```
```{grid-item-card} FastAPI
:link: https://fastapi.tiangolo.com
:img-bottom: https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png
:img-alt: Enlace a FASTAPI
```
:::
### Desarrollo de Juegos
Python es usado para la creación de videojuegos que se pueden ejecutar en **sistema operativo de computadoras o consolas**. Por ejemplo:
- **Pygame** se usa para el desarrollo de juegos 2D. Ofrece módulos para manejar gráficos, sonidos y eventos lo que facilita la creación de juegos de manera sencilla.
- Con **PANDA 3D** se desarrollan juegos en 3D. Funciona con Python y C++. Es ideal para crear entornos tridimensionales complejos e interactivos.
:::{grid} 2
```{grid-item-card} PyGAME
:link: https://www.pygame.org/
:img-bottom: https://www.pygame.org/images/logo_lofi.png
:img-alt: Enlace PyGAME
```
```{grid-item-card} PANDA 3D
:link: https://www.panda3d.org/
:img-bottom: https://www.panda3d.org/wp-content/uploads/2018/12/panda3d_logo_s_white.png
:img-alt: Enlace a PANDA 3D
```
:::
### Inteligencia Artificial
Debido a su simplicidad y gran cantidad de herramientas disponibles, Python se usa ampliamente en el desarrollo de aplicaciones de Inteligencia Artificial y Machine Learning. Por ejemplo:
- Con la herramienta **TensorFlow** se pueden crear modelos de aprendizajes profundos. Los programadores pueden construir y entrenar redes neuronales complejas para aplicaciones como reconocimiento de voz o visión por computadora.
:::{card} TensorFlow
:shadow: lg
:img-bottom: https://www.gstatic.com/devrel-devsite/prod/ve08add287a6b4bdf8961ab8a1be50bf551be3816cdd70b7cc934114ff3ad5f10/tensorflow/images/lockup.svg
:img-alt: Enlace a TensorFlow
:width: 50%
:link: https://www.tensorflow.org/
:::
### Ciencia de datos
Python se usa ampliamente para la manipulación y análisis de grandes cantidades de datos. Por ejemplo:
- Con **PANDAS** se trabajan estructuras, limpieza, transformación y análisis de datos. Es ideal para manejar grandes conjuntos de datos de forma eficiente.
- **NumPy** se usa para ejecutar cálculos numéricos. Soporta arreglos multidimensionales y funciones matemáticas de alto rendimiento. También se pueden trabajar sobre aplicaciones estadísticas que requieran analizar altos volúmenes de información.
- **Matplotlib** es usado para visualización de datos con gráficos estadísticos estáticos, animados o interactivos.
:::{grid} 3
```{grid-item-card} PANDAS
:link: https://pandas.pydata.org
:img-bottom: https://pandas.pydata.org/static/img/pandas_white.svg
:img-alt: Enlace a PANDAS
```
```{grid-item-card} NumPy
:link: https://numpy.org/
:img-bottom: https://numpy.org/images/logo.svg
:img-alt: Enlace a NumPy
```
```{grid-item-card} Matplotlib
:link: https://matplotlib.org/
:img-bottom: https://matplotlib.org/_static/logo_dark.svg
:img-alt: Enlace a Matplotlib
```
:::