He recopilado una serie de posts con mi base de datos personal de preguntas de entrevista de Python. No es perfecta, no está completa, y no, no incluye respuestas. Algunas preguntas pueden parecer un poco raras o sacadas de la nada. Pero en mi experiencia, son muy buenas para ayudarte a descubrir quién está realmente listo para el puesto.
La serie está dividida en tres partes según el nivel de experiencia:
- Python Interview Questions for Beginners (Junior)
- Python Interview Questions for Mid-Level Developers
- Python Interview Questions for Experienced Developers (Senior)
¿Tienes una pregunta que crees que debería estar aquí? ¿O algo que siempre preguntas en las entrevistas? Cuéntamelo — me encantaría escuchar tu opinión.
Preguntas
1. Fundamentos de Python
Q: ¿Qué es Python?
Q: ¿Qué es la función lambda en Python? ¿Por qué existe?
Q: ¿Qué es pass en Python?
Q: ¿Qué son *args y **kwargs en la definición de una función?
Q: ¿Qué es un docstring en Python? ¿Cómo se escriben? ¿Son obligatorios?
Q: ¿Qué palabras clave se pueden usar junto con for?
Q: ¿Qué es el slicing en Python? ¿Pueden los slices tener índices negativos?
Q: ¿Qué es el módulo __init__.py? ¿Para qué sirve?
Q: ¿Qué es PEP8?
2. Tipos de datos y estructuras
Q: ¿Qué tipos de datos incorporados ofrece Python? ¿Cuáles son mutables y cuáles inmutables?
Q: ¿Cuál es la diferencia entre los tipos list y tuple en Python?
Q: ¿Qué puede ser una clave en un dict?
Q: ¿Cuál es la diferencia entre globals(), locals() y vars()?
Q: ¿Qué son las dataclasses en Python? ¿Cuándo conviene usarlas?
3. Programación orientada a objetos (POO)
Q: ¿Qué son @classmethod, @staticmethod y @property?
Q: ¿Cuál es la diferencia entre @classmethod y @staticmethod?
Q: ¿Python soporta completamente la programación orientada a objetos? ¿Por qué sí o por qué no?
Q: ¿Para qué se usa self en Python?
Q: ¿Para qué se usa el método __init__?
Q: ¿Cómo puedo ver los métodos de un objeto?
Q: ¿Qué es el atributo __dict__ de un objeto en Python?
4. Módulos y paquetes de Python
Q: ¿Cuál es la diferencia entre un módulo y un paquete?
Q: Explica cómo hacer que un script de Python sea ejecutable en Unix.
5. Conceptos avanzados de Python
Q: ¿Se pueden escribir aplicaciones multithreading en Python? ¿Cuál es la diferencia entre multithreading y multiprocessing?
Q: ¿Qué es un decorador? ¿Cómo se crea un decorador propio?
Q: Explica el pickling y unpickling en Python. ¿En qué se diferencia de marshaling y unmarshaling?
Q: ¿Cómo obtienes la documentación de un objeto o método en Python?
6. Retos de programación
Q: ¿Cuál es la forma más pythonic de intercambiar valores entre variables?
Q: Escribe una función que genere la secuencia de Fibonacci.
Q: ¿Cómo convertir una cadena con código binario (1 y 0) en un número (integer)? Escribe una función para hacerlo.
Q: ¿Cómo comprobar que la tupla A contiene todos los elementos de la tupla B? ¿Ambas tuplas contienen valores únicos? Escribe una función para hacerlo.
Q: ¿Cuál es la salida del siguiente código?
def f():
x = 15
print(x)
x = 12
f()
Q: ¿Cómo convertir una cadena en un número formado por los códigos ASCII de sus letras? Ejemplo: 'abcd' -> 979899100. Escribe una función para hacerlo.
Q: ¿Cómo eliminar las líneas vacías (de longitud 0) de una lista de líneas? Escribe una función para hacerlo.
Q: Escribe una función que cuente todos los pares distintos cuya diferencia sea igual a k.
Q: Escribe una función que devuelva una cadena con los números del 0 al 100: "0123456789101112...".
Q: Escribe una función que convierta una lista con elementos duplicados en una lista con elementos únicos. Ejemplo: [1, 1, 2, 3, 3] -> [1, 2, 3].
Q: Genera una lista de números primos en el rango (1, 100) usando Python.
Q: Escribe un programa que imprima los números del 1 al 20. Pero para los múltiplos de tres imprime "Fizz" en vez del número, y para los múltiplos de cinco imprime "Buzz". Para los números que son múltiplos de tres y cinco a la vez, imprime "FizzBuzz".
¿Crees que falta algo? ¿Tienes tu propia pregunta genial de Python? Compártela en los comentarios, o mándamela por Twitter — me encantaría saber de ti.