Test de Python: 24 preguntas para comprobar lo que sabes

¿Cuánto Python sabes de verdad? Estas 24 preguntas repasan las diez lecciones de nuestro curso de Python: tipos, cadenas, colecciones, comprensiones, funciones, clases, excepciones, archivos y un proyecto con pruebas. Elige una respuesta en cada pregunta y pulsa Corregir al final: verás tu nota, los aciertos por lección y la explicación de cada respuesta.

No hace falta registrarse y nada se envía a ningún sitio: el test se corrige en tu propio navegador. Todas las respuestas con código se comprobaron con Python 3.14.

Pregunta 1Lección 1: Instalación y entornos virtuales

¿Qué es un entorno virtual de Python?

Pregunta 2Lección 1: Instalación y entornos virtuales

¿Qué orden crea un entorno virtual en la carpeta .venv?

Pregunta 3Lección 2: Dinámico, pero de tipado fuerte

¿Qué ocurre al ejecutar esto?

print(1 + "1")
Pregunta 4Lección 2: Dinámico, pero de tipado fuerte

¿Cuál de estas frases describe mejor los tipos en Python?

Pregunta 5Lección 3: Cadenas, números y f-strings

¿Qué valores dan 7 / 2 y 7 // 2?

Pregunta 6Lección 3: Cadenas, números y f-strings

¿Qué devuelve round(2.5)?

Pregunta 7Lección 3: Cadenas, números y f-strings

¿Qué imprime este código?

s = "  Hola  "
s.strip()
print(repr(s))
Pregunta 8Lección 4: Listas, tuplas, diccionarios y conjuntos

¿Qué devuelve la última línea?

d = {"pan": 3}
d.get("kiwi", 0)
Pregunta 9Lección 4: Listas, tuplas, diccionarios y conjuntos

¿De qué tipo es {}?

Pregunta 10Lección 4: Listas, tuplas, diccionarios y conjuntos

¿Qué imprime este código?

a = [[1, 2], [3, 4]]
b = a.copy()
b[0].append(99)
print(a)
Pregunta 11Lección 5: Control de flujo y comprensiones

¿Cuándo se ejecuta el else de un bucle for?

Pregunta 12Lección 5: Control de flujo y comprensiones

¿Qué devuelve esta comprensión?

[n * n for n in range(5) if n % 2 == 0]
Pregunta 13Lección 5: Control de flujo y comprensiones

¿Cuál es la forma correcta de comprobar si x es None?

Pregunta 14Lección 6: Funciones

¿Qué imprime este código?

def agrega(x, destino=[]):
    destino.append(x)
    return destino

agrega(1)
print(agrega(2))
Pregunta 15Lección 6: Funciones

Con esta definición, ¿qué llamada lanza un TypeError?

def dividir(a, b, /, *, redondear=False):
    ...
Pregunta 16Lección 6: Funciones

¿Qué hace Python con las anotaciones de tipo, como def area(base: float) -> float, al ejecutar el programa?

Pregunta 17Lección 7: Clases y dataclasses

¿Qué métodos escribe por ti el decorador @dataclass, sin opciones?

Pregunta 18Lección 7: Clases y dataclasses

Una clase normal tiene __init__ pero no __eq__. ¿Qué da Libro("Rayuela") == Libro("Rayuela")?

Pregunta 19Lección 8: Errores y excepciones

En un try, ¿cuándo se ejecuta el bloque else?

Pregunta 20Lección 8: Errores y excepciones

¿Para qué sirve el from e en raise RuntimeError("configuración inválida") from e?

Pregunta 21Lección 9: Archivos, rutas y JSON

¿Qué hace la barra en esta línea?

from pathlib import Path
ruta = Path("datos") / "informe.txt"
Pregunta 22Lección 9: Archivos, rutas y JSON

¿Qué ocurre al convertir a JSON un diccionario que contiene una fecha?

import json, datetime
json.dumps({"dia": datetime.date(2026, 10, 12)})
Pregunta 23Lección 10: Un proyecto de verdad

¿Qué hace pip install -e . en un proyecto?

Pregunta 24Lección 10: Un proyecto de verdad

¿Por qué en una prueba de pytest se escribe assert precio_total == pytest.approx(87.5)?

Las preguntas siguen el orden del curso. Si fallas alguna, el enlace de su explicación te lleva a la lección donde se explica con ejemplos. Imagen para redes: código en un monitor, foto de Markus Spiske, Wikimedia Commons, CC0.