Python se lee casi como inglés y tiene bibliotecas para todo, por eso es uno de los lenguajes más recomendados para empezar. Se usa para automatizar tareas repetitivas, analizar datos, crear webs y en casi todo lo relacionado con la inteligencia artificial.
Automatizar tareas y scripts
Análisis de datos e inteligencia artificial
Webs y APIs
Para empezar: Instala Python desde python.org, abre la terminal y escribe python (o py en Windows) para probar los ejemplos.
Nivel 1 Básico
1
Lección 1 · Básico
Tu primer programa
Python se ejecuta con un intérprete: lee tu código línea a línea y lo ejecuta. Puedes escribir órdenes directamente en él o guardarlas en un archivo .py y ejecutarlo con python archivo.py.
print() muestra en pantalla lo que le pases. Los comentarios empiezan por #.
Respuesta:print. print() escribe en la salida lo que pongas entre paréntesis.
2
Lección 2 · Básico
Variables, tipos y texto
Una variable se crea al darle un valor con =; no hace falta declarar su tipo. Los tipos básicos son int (enteros), float (decimales), str (texto) y bool (True o False).
input() pide un texto a la persona y siempre devuelve str: para hacer cuentas, conviértelo con int() o float(). Las cadenas f (f"…{variable}…") meten valores dentro de un texto.
Ejemplo práctico
nombre = input("¿Cómo te llamas? ")
edad = int(input("¿Cuántos años tienes? "))
print(f"Hola, {nombre}. El año que viene tendrás {edad + 1}.")
print(type(edad)) # <class 'int'>
Ejercicio
¿Qué tipo de dato devuelve siempre input()?
Ver la solución
Respuesta: str. input() devuelve texto (str); para operar con números hay que convertirlo.
3
Lección 3 · Básico
Condiciones y sangría
if, elif y else deciden qué bloque se ejecuta. En Python los bloques no van entre llaves: se marcan con dos puntos al final de la línea y con sangría (4 espacios) en las de dentro.
Si la sangría no es coherente, Python da un error. Es una regla del lenguaje, no una cuestión de estilo.
Ejemplo práctico
nota = 7.5
if nota >= 9:
print("Sobresaliente")
elif nota >= 5:
print("Aprobado")
else:
print("Suspenso")
# Muestra: Aprobado
Ejercicio
¿Cómo marca Python qué líneas van dentro de un if?
Ver la solución
Respuesta: Con la sangría. Las líneas del bloque van sangradas (normalmente 4 espacios) tras los dos puntos.
4
Lección 4 · Básico
Listas y bucles
Una lista guarda varios valores en orden entre corchetes; la primera posición es la 0. Con append() añades al final y len() te dice cuántos elementos tiene.
for recorre cada elemento de una lista, y range(n) genera los números de 0 a n−1 cuando necesitas repetir algo un número fijo de veces.
Ejemplo práctico
compra = ["pan", "leche"]
compra.append("huevos")
print(len(compra)) # 3
for producto in compra:
print("- " + producto)
for i in range(3):
print(i) # 0, 1 y 2
Ejercicio
¿Qué números genera range(3)?
Ver la solución
Respuesta: 0, 1, 2. range(n) empieza en 0 y se detiene antes de n.
Nivel 2 Intermedio
5
Lección 5 · Intermedio
Funciones
Con def defines una función: un nombre, sus parámetros entre paréntesis y el bloque sangrado. return devuelve el resultado.
Los parámetros pueden tener un valor por defecto, que se usa si no lo pasas al llamar a la función.
Respuesta:def. Las funciones se definen con def nombre(parámetros):.
6
Lección 6 · Intermedio
Diccionarios
Un diccionario guarda pares clave–valor entre llaves: perfecto para describir algo con varios datos o para contar cosas. Accedes a un valor con su clave entre corchetes.
.get(clave, por_defecto) evita el error si la clave no existe, e .items() recorre las parejas.
Ejemplo práctico
stock = {"teclado": 10, "raton": 0}
stock["monitor"] = 3
print(stock["teclado"]) # 10
print(stock.get("webcam", 0)) # 0, sin error
for producto, unidades in stock.items():
print(producto, unidades)
Ejercicio
¿Qué pasa con stock["webcam"] si esa clave no existe?
Ver la solución
Respuesta: Da un error KeyError. Con corchetes, una clave inexistente lanza KeyError; con .get() puedes dar un valor por defecto.
7
Lección 7 · Intermedio
Archivos y errores
open() abre un archivo; dentro de un bloque with, Python lo cierra solo al terminar, aunque haya un error. Indica siempre la codificación utf-8 para que las tildes se lean bien.
Los errores en tiempo de ejecución son excepciones. Con try y except las capturas y decides qué hacer en lugar de que el programa se detenga.
Ejemplo práctico
try:
with open("notas.txt", encoding="utf-8") as f:
for linea in f:
print(linea.strip())
except FileNotFoundError:
print("No encuentro notas.txt")
Ejercicio
¿Qué ventaja tiene abrir un archivo con with?
Ver la solución
Respuesta: El archivo se cierra solo al terminar. with garantiza que el archivo se cierra al salir del bloque, también si ocurre un error.
Nivel 3 Avanzado
8
Lección 8 · Avanzado
Módulos, pip y entornos virtuales
Python trae una gran biblioteca estándar que usas con import. Para todo lo demás está PyPI, el repositorio de paquetes, y pip, que los instala.
Crea un entorno virtual por proyecto (python -m venv .venv) para que cada uno tenga sus propias versiones de bibliotecas y no choquen entre sí.
Ejemplo práctico
# En la terminal
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install requests
# En tu programa
import json
from datetime import date
print(date.today().isoformat())
print(json.dumps({"ok": True}))
Ejercicio
Completa el comando que instala un paquete de PyPI.
install requests
Ver la solución
Respuesta:pip. pip install paquete descarga e instala una biblioteca en el entorno activo.
9
Lección 9 · Avanzado
Clases y objetos
Una clase es un molde para crear objetos que tienen datos (atributos) y acciones (métodos). __init__ se ejecuta al crear cada objeto y self es el propio objeto.
Las clases ayudan a ordenar programas grandes agrupando los datos con el código que trabaja con ellos.
Ejemplo práctico
class Cuenta:
def __init__(self, titular, saldo=0):
self.titular = titular
self.saldo = saldo
def ingresar(self, cantidad):
if cantidad <= 0:
raise ValueError("La cantidad debe ser positiva")
self.saldo += cantidad
cuenta = Cuenta("Ana")
cuenta.ingresar(50)
print(cuenta.saldo) # 50
Ejercicio
¿Qué método se ejecuta automáticamente al crear un objeto?
Ver la solución
Respuesta: __init__. __init__ prepara el objeto nuevo: normalmente guarda los valores iniciales en self.
10
Lección 10 · Avanzado
Comprensiones y anotaciones de tipo
Una lista por comprensión crea una lista nueva a partir de otra en una sola línea: [expresión for x in lista if condición].
Las anotaciones de tipo (precio: float) documentan qué espera y devuelve cada función. Python no las comprueba al ejecutar, pero el editor y herramientas como mypy sí te avisan de errores.
Ejemplo práctico
precios = [3.5, 12.0, 0.99, 25.0]
caros = [p for p in precios if p > 10]
print(caros) # [12.0, 25.0]
def media(valores: list[float]) -> float:
return sum(valores) / len(valores)
print(media(precios)) # 10.3725
Ejercicio
¿Qué devuelve [n * 2 for n in [1, 2, 3]]?
Ver la solución
Respuesta: [2, 4, 6]. La comprensión aplica n * 2 a cada elemento y junta los resultados en una lista nueva.
¿Has terminado? Sigue practicando
Repasa los conceptos en el diccionario, practica con estas herramientas o prueba otro lenguaje: las ideas que has aprendido (variables, condiciones, funciones, objetos…) te servirán en cualquiera.
* Porcentaje de personas que dijeron haber usado Python en la Stack Overflow Developer Survey 2026: Technology (pregunta sobre lenguajes de programación, de scripts y de marcado; todas las respuestas). El progreso de las lecciones se guarda solo en este navegador.
¿Nos dejas medir las visitas?
Con tu permiso usamos Google Analytics, que guarda cookies, para saber cuántas personas visitan la web y qué páginas les resultan útiles. No usamos cookies de publicidad y tus archivos nunca salen de tu navegador. Puedes cambiar de opinión cuando quieras en «Configurar cookies», al pie de la página. Más información.