Programación · n.º 4 entre los lenguajes más usados

Aprende Python desde cero

Fácil de leer y válido para casi todo: automatizar tareas, datos e inteligencia artificial.

  • 10 lecciones
  • 10 ejercicios interactivos
  • 19 conceptos clave
  • 58 % lo usa*

Qué es Python y para qué sirve

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

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 #.

Ejemplo práctico
# hola.py
print("¡Hola, mundo!")
print(2 + 3)      # 5
print(10 / 4)     # 2.5

Ejercicio

Completa para mostrar «Hola» en pantalla.

("Hola")
Ver la solución

Respuesta: print. print() escribe en la salida lo que pongas entre paréntesis.

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.

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.

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

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.

Ejemplo práctico
def precio_final(precio, iva=21):
    return round(precio * (1 + iva / 100), 2)

print(precio_final(100))       # 121.0
print(precio_final(100, 10))   # 110.0

Ejercicio

Completa la palabra que define una función.

 saludar(nombre):
    return "Hola, " + nombre
Ver la solución

Respuesta: def. Las funciones se definen con def nombre(parámetros):.

Conceptos clave

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.

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

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.

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.

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.

  • Texto y programación

    Probador de expresiones regulares

    Prueba una expresión regular sobre tu texto, con coincidencias, grupos y explicación en español.

  • Texto y programación

    Base64, URL y JSON

    Codifica y decodifica Base64 y URL, y valida o formatea JSON con la línea del error.

  • Texto y programación

    Comparar dos textos

    Encuentra las diferencias entre dos versiones de un texto, línea a línea y palabra a palabra.

Fuentes consultadas

* 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.