4.1 Introducción a Python
4.1.1 ¿Qué es Python?
Python es un lenguaje creado por Guido van Rossum en 1991.
Se destaca por:
- Sintaxis clara y legible
- Tipado dinámico
- Amplia biblioteca estándar
- Gran ecosistema de paquetes
- Multiplataforma
Python puede ejecutarse de diferentes maneras según la necesidad: - Desde la línea de comandos
- En modo interactivo
Este entorno interactivo se conoce como REPL (Read, Eval, Print, Loop)
$ python3
Python 3.13.5 (main, Jun 25 2025, 18:55:22) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> Ahora se pueden escribir comandos:
>>> 2 + 2
4
>>> print("Hola")
Hola
>>> exit()
- Ejecutando archivos
.py
- Usando entornos interactivos como IPython
- Empleando herramientas para generar una versión “compilada”
4.1.2 Primeros pasos: Hola Mundo
Podemos comenzar escribiendo nuestro primer programa:
Para ejecutarlo desde la terminal
python mi_programa.py
También es posible utilizarlo, al igual que R, de forma interactiva:
4.1.3 Sintáxis básica
Los comentarios se escriben con #:
4.1.3.1 Variables y Tipos de Datos
Python no requiere declarar el tipo de las variables (tipado dinámico):
x = 10 # Entero (int / long)
pi = 3.1416 # Flotante (float / double)
nombre = "Ana" # Cadena (string)
es_valido = True # BooleanoPara mirar cuál es el tipo de dato de una variable se usa la función type:
Para solicitar una entrada de texto al usuario se usa la instrucción input:
IMPORTANTE: input siempre devuelve un string aunque se introduzca un número.
Si se quiere convertir a otro tipo de dato hay que hacerlo explícitamente:
Para imprimir un string, se puede formatear la salida. Indicando una “f” antes del string se indica que es una salida formateada y se pueden indicar variables entre corchetes “{ }”:
Una variante más antigua es con el método format sobre el string:
print("Nombre: {}, Edad: {}".format(nombre, edad))
print("Nombre: {n}, Edad: {e}".format(n=nombre, e=edad))Se puede usar un formato similar al de C (aún más antiguo)
Y también concatenar strings:
4.1.3.2 Tuplas
Una tupla es una colección ordenada e inmutable de elementos.
- Mantienen el orden de inserción.
- No se pueden modificar (inmutables).
- Pueden contener valores de distintos tipos.
- Se usan frecuentemente para representar filas o registros de datos.
- Se crean con paréntesis
( ).
La tupla es útil cuando necesitas una estructura fija que no cambiará (por ejemplo, una fila SQL).
El tipo más cercano en R es un vector (c(1, 2, 3)) si los datos son homogéneos o una lista (list("Ana", 30, "Madrid")) si son heterogéneos.
4.1.3.3 Listas
Una lista es una colección ordenada y mutable.
- Mantienen el orden.
- Sí pueden modificarse: agregar, borrar, reordenar, reemplazar elementos.
- Pueden contener cualquier tipo de dato.
- Se crean con corchetes
[ ].
numeros = [1, 2, 3, 4]
numeros.append(5)
print(numeros)
numeros[0] = 5 # la lista queda: [5,2,3,4]
numeros.append(17) # ahora la lista queda [5,2,3,4,17]
print(numeros)La lista es útil cuando la colección va a crecer, modificarse o reordenarse.
4.1.3.4 Diccionarios
Un diccionario es una colección no ordenada (en versiones modernas, conserva el orden de inserción) de pares clave-valor.
- Cada elemento tiene una clave única.
- Permiten acceso muy rápido a los valores mediante la clave.
- Se usan para representar datos estructurados, como registros con nombre.
- Se crean con llaves
{ }.
El diccionario es útil cuando necesitas asociar valores a nombres o claves. También es interesante para acceder a filas SQL por nombre de atributo.
El tipo más cercano en R sería una lista nombrada: list(nombre = "Luis", edad = 30),
o bien un environment:
env <- new.env()
env$nombre <- "Luis"
env$edad <- 30
También es similar un dataframe
df <- data.frame(nombre = "Luis", edad = 30)
4.1.3.5 Operadores
- Operadores lógicos:
| Operación | Python | R | C |
|---|---|---|---|
| AND lógico | and |
& (element-wise), && (control-flow) |
&& |
| OR lógico | or |
| (element-wise), || (control-flow) |
|| |
| NOT lógico | not |
! |
! |
- Operadores bitwise:
| Operación | Python | R | C |
|---|---|---|---|
| AND bitwise | & |
bitwAnd(a,b) |
& |
| OR bitwise | | |
bitwOr(a,b) |
| |
| XOR bitwise | ^ |
bitwXor(a,b) |
^ |
| NOT bitwise | ~ |
bitwNot(a) |
~ |
| Shift izquierda | << |
bitwShiftL(a,n) |
<< |
| Shift derecha | >> |
bitwShiftR(a,n) |
>> |
4.1.3.6 Indentación
Python usa la indentación para definir bloques de código. Esto es fundamental: si la indentación es incorrecta, el código no funciona.
La convención es usar 4 espacios por nivel (mejor que usar tabs).
if x > 5:
print("x es mayor que 5")
print("Esto sigue dentro del bloque")
print("Esto ya está fuera del bloque")Ejemplo incorrecto (producirá un error):
4.1.4 Librerías populares
Python cuenta con miles de bibliotecas. Para usar una biblioteca se utiliza “import …”, de forma análoga a “library(…)” en R.
Algunas destacadas:
4.1.4.1 🔢 Ciencia de Datos
- NumPy: Cálculo numérico y manejo de arreglos multidimensionales.
- Pandas: Análisis y manipulación de datos mediante DataFrames.
- SciPy: Funciones científicas y matemáticas avanzadas.
- Matplotlib: Visualización básica y clásica.
- Seaborn: Visualización estadística de alto nivel.
- Plotly: Gráficos interactivos y dinámicos.
- Statsmodels: Modelos estadísticos y econometría.
4.1.4.2 🤖 Machine Learning e Inteligencia Artificial
- scikit-learn: Algoritmos tradicionales de machine learning.
- TensorFlow: Deep learning desarrollado por Google.
- PyTorch: Deep learning desarrollado por Meta.
- Keras: API de alto nivel para redes neuronales.
- XGBoost: Algoritmo de gradient boosting optimizado.
- LightGBM: Boosting rápido para grandes datasets.
- CatBoost: Boosting especializado en variables categóricas.
4.1.4.3 🧠 Procesamiento del Lenguaje Natural (NLP)
- NLTK: Procesamiento de texto tradicional.
- spaCy: NLP industrial rápido y eficiente.
- Transformers (Hugging Face): Modelos modernos como BERT, GPT, etc.
- Gensim: Modelado de tópicos y embeddings semánticos.
4.1.4.4 🌐 Desarrollo Web
- Django: Framework completo para aplicaciones web.
- Flask: Microframework web ligero y flexible.
- FastAPI: Framework moderno y rápido para APIs (asíncrono).
- Bottle: Alternativa aún más ligera a Flask.
4.1.4.5 🛠️ Utilidades y Herramientas
- Requests: Manejo de peticiones HTTP.
- BeautifulSoup: Análisis y extracción de datos HTML.
- Selenium: Automatización de navegadores web.
- PyTest: Framework de testing en Python.
- Pillow (PIL): Manipulación de imágenes.
- Click: Creación de interfaces de línea de comandos.
4.1.4.6 🧱 Desarrollo y Arquitectura
- SQLAlchemy: ORM y manejo avanzado de bases de datos.
- Pydantic: Validación de datos basada en tipos.
- Celery: Ejecución de tareas distribuidas.
- Redis-py: Cliente de Python para Redis.