Preguntas de entrevista de Python
69 preguntas de entrevista de Python con respuestas, de nivel junior a intermedio.
Fundamentos
- ¿Qué es Python?
- ¿Qué significa que Python sea un lenguaje 'interpretado'?
- ¿Qué hace
age = 30en Python? - ¿De qué tipo es
{"name": "Ana", "age": 30}en Python? - ¿Qué imprime esta llamada a la función?
- ¿Cómo sabe Python qué líneas van dentro de un
ifo un bucle? - ¿Qué imprime este bucle?
- ¿Qué hace
import json? - ¿Qué son pip y PyPI?
- ¿Cuál es la diferencia entre
printyreturnen una función?
Base
- ¿Qué imprime esto?
- ¿Qué imprime esto?
- ¿Por qué se considera dañino un
except:a secas? - ¿Cuál es la principal diferencia entre una lista
[1, 2]y una tupla(1, 2)? - ¿Qué imprime la última línea?
- ¿Cuánto es
"python"[-1]? - ¿Cuánto es
nums[1:3]sinums = [10, 20, 30, 40, 50]? - ¿Qué imprime esto?
- ¿Cuánto es
[x * 2 for x in range(4)]? - ¿Qué devuelven
7 / 2y7 // 2en Python 3? - En un método
def area(self):, ¿qué esself? - ¿Para qué sirve
__init__en una clase? - ¿Cuánto es
len({1, 2, 2, 3, 3, 3})? - ¿Qué imprime esto?
- ¿Por qué se prefiere
with open("data.txt") as f:af = open("data.txt")? - ¿Qué imprime esto?
- ¿Para qué sirve un entorno virtual (
python -m venv .venv)? - ¿Qué excepción lanza
int("abc")?
Intermedio
- En CPython (build por defecto, con el GIL activado), ¿qué carga de trabajo se acelera de verdad con
threading? - ¿Qué imprime esto?
- ¿Qué imprime esto?
sum(x * x for x in range(10**8))frente asum([x * x for x in range(10**8)]). ¿Cuál es la diferencia clave?- ¿Para qué se usa
functools.wrapsdentro de un decorator? print([obj])dondeobjdefine tanto__str__como__repr__. ¿Cuál se usa paraobj?- Dentro de un endpoint
async defde FastAPI llamas atime.sleep(2)(orequests.get). ¿Qué pasa bajo carga? - ¿Cuánto tarda aproximadamente
main()? - Dentro de una coroutine escribes
asyncio.sleep(1)sinawait. ¿Qué pasa? - ¿Qué imprime esto?
- ¿Desde qué versión de Python la especificación del lenguaje garantiza el orden de inserción de
dict? - ¿Qué pasa con
f(1, 2)? - ¿Qué te da
@dataclass(frozen=True)(coneq=Truepor defecto)? - En
try / except / else / finally, ¿cuándo se ejecutaelse? - ¿Qué métodos convierten un objeto en un iterator?
- ¿Qué imprime esto?
- ¿Cuál es el uso idiomático de
@classmethod? - Construir un string grande con
s += pieceen un bucle no se recomienda porque… - ¿Qué estructura ofrece append y pop en O(1) por ambos extremos?
- ¿Qué pasa?
- Llamas a una función decorada con
@functools.lru_cachepasando unalist. ¿Qué pasa? - Explica el GIL y cómo acelerarías un trabajo CPU-bound en Python.
- ¿Cómo funcionan los decorators? Escribe un decorator que registre cuánto tarda una función.
- ¿Cuál es la diferencia entre un iterable, un iterator y un generator?
Avanzado
- ¿Qué imprime esto?
- ¿Cuántos callables anidados necesita una implementación típica de un decorator que se usa como
@retry(times=3)? - ¿Qué imprime esto?
- ¿Cuál es el efecto principal de definir
__slots__ = ("x", "y")en una clase? - Una clase define
__eq__pero no__hash__. ¿Qué pasa cuando añades una instancia a unset? - En un context manager, ¿qué pasa si
__exit__devuelveTrue? - Dos objetos se referencian entre sí y nada más los referencia. ¿Qué los libera en CPython?
- ¿Qué herramienta de typing permite que un type checker acepte cualquier objeto con un método
read(), sin herencia? - ¿Qué consigue
Taquí? - ¿Sobre qué mecanismo se construye
@property? - ¿Qué devuelve
type(type)? - ¿Qué imprime esto?
- ¿Cuál es el principal coste de
multiprocessing.Pool.mapfrente a los threads? - ¿Cuál es la diferencia entre
__new__e__init__? - Varios threads ejecutan
counter += 1sobre una variable global compartida, 1 millón de veces cada uno. ¿El GIL garantiza que el total final sea correcto? - ¿Cuál es el estado actual del GIL en CPython moderno (3.13+)?
- Explica cómo funciona asyncio y cuándo lo elegirías frente a threads o procesos.