Preguntas de la entrevista de Python [cerrado]

25

Voy a entrevistar dentro de dos semanas para una pasantía que involucraría la programación de Python.

¿Alguien puede sugerir qué áreas posibles debo pulir? Estoy buscando cosas frecuentes en entrevistas para aperturas de Python. Además del hecho de que ya he estado haciendo el idioma durante más de un año, no percibo lo que me pueden preguntar.

Al igual que para una entrevista en C o C ++, hay muchas preguntas que van desde la inversión de cadenas hasta la creación de listas vinculadas, pero para una entrevista en Python, no tengo ni idea.

Experiencias personales y / o sugerencias son bienvenidas.


fuente
Si es una pasantía, y has estado programando en Python durante un año, creo que estarás bien. Dicho esto, creo que la naturaleza general de las preguntas para Python será la misma que las que mencionó para c ++.
Robert Harvey
Robert, programar sin supervisión y orientación es lo que me molesta. Tal vez me falta en algunas áreas.
1
Si es una pasantía, ¿por qué no tienes orientación? Esa es la definición misma de una pasantía. Dicho esto, los pasantes donde trabajo no reciben clases de programación, pero sí reciben instrucciones y expectativas de trabajo claras. Como pasante, deben esperar que aprendas en el trabajo, y que el trabajo tomará un poco más de tiempo que si alguien con experiencia lo hace.
Robert Harvey
Estás cometiendo un error común que muchas personas cometen al salir de la escuela: una entrevista no es una prueba, es más como ir a una primera cita. Un buen entrevistador no arruinará tus pelotas tratando de averiguar si conoces los rincones oscuros de un idioma, sino que intentará establecer, en general, si realmente lo sabes. Un buen entrevistador se centrará en el conocimiento general de programación, habilidades para resolver problemas, habilidades interpersonales y experiencia. Si alguien comienza a preguntar los detalles de cómo Python pasa las cuerdas, significa que están perdidas y no saben cómo entrevistar.
Sean McSomething

Respuestas:

8

Aquí hay algunos fáciles:

  1. ¿Qué son los decoradores de Python y cómo los usarías?
  2. ¿Cómo depuras tu código de Python?
  3. ¿Cómo configuraría muchos proyectos donde cada uno usa diferentes versiones de Python y bibliotecas de terceros?
  4. ¿Sigue PEP8 mientras escribe su código?
Thierry Lam
fuente
7

¿Qué tal algo relacionado con la comprensión de la lista de Python ? Para mí, esos fueron uno de los grandes puntos de venta sobre C ++, después de que leí sobre ellos en Dive into Python .

"Escriba una lista de comprensión que construya una lista de los números pares del 1 al 10 (inclusive)".
Donde la respuesta es algo como esto (tenga en cuenta que los valores de rango evitan un error de poste de cerca):

foo = [x for x in range(1, 11) if (x % 2) == 0]
print foo
[2, 4, 6, 8, 10]

Para el caso, si comprende todos los conceptos enumerados en Sumérjase en Python, eso debería cubrir la mayoría de las características importantes.

Cíclope
fuente
13
Esto no es pitónico. En Python 2.x, que acaba de hacer range(2,11,2)y en Python 3.x, list(range(2,11,2)).
Chinmay Kanchi
@ Cyclops, parece que necesitas entrevistarte para tu propio trabajo en INNOTECH.
Trabajo
55
@Chinmay Kanchi Aunque no creo que sea una buena pregunta para la entrevista, la mayoría de las introducciones a las funciones avanzadas hacen las cosas más simples que pueden (para no confundir al lector). Si bien hay una solución más simple para este problema específico, el punto no era responder a este problema específico. El punto era utilizar una lista de comprensión (que son muy efectivas y una forma notable de optimizar las cosas en Python).
jsternberg
6

Es Python pasar por referencia o pasar por valor también es una muy buena pregunta.

ismail
fuente
1
Una gran pregunta de seguimiento sería preguntar cómo pueden mostrarlo y por qué es importante
mcotton el
@Ismail - Lo siento, pero ¿por qué es una buena pregunta?
Theodor
77
@Cervo: Si entiendo correctamente, Python es paso por valor al igual que C #, Java, Scheme, etc.son paso por valor ... el único lenguaje de paso por referencia que he visto es VB6, donde todo es paso por referencia a menos que se especifique lo contrario. El hecho de que pueda mutar los objetos no lo hace pasar por referencia de ninguna manera, y el hecho de que pueda tener objetos inmutables tampoco implica que se los pase por valor ... así que dice " la respuesta es tampoco " está completamente equivocado . Lo siento mucho por el candidato cuyo entrevistador cree que la respuesta es "ninguno" ...
Mehrdad
1
@Cervo: Para su información, incluso la respuesta de más de 100 votos en su enlace contrarresta su argumento: dice claramente que "los parámetros se pasan por valor".
Mehrdad
11
Creo que la respuesta correcta es: "Los parámetros son referencias que se pasan por valor".
user16764
6

Preguntas que me han hecho:

  • Describa dos métodos de metaprogramación en Python.
  • ¿Qué es el GIL?
  • ¿Por qué es importante el GIL?
  • ¿Por qué hay una implementación alternativa de Python llamada Unladen Swallow? ?
  • Django, Pilones o Zope? Defiende tu posición.
Roger escaso
fuente
5

No tengo tales experiencias, pero aquí hay algunas conjeturas:

  1. (Inmutabilidad
  2. Funciones / clases de primera clase
  3. Cierres

Esas son algunas cosas que el programador de Python debe saber, de lo contrario, también puede contratar al programador C para el puesto.

Kugel
fuente
3

Me gustaría ir a lo largo de la lista en esta respuesta . Intenta actualizar lo que sabes siguiendo esa lista lo más que puedas. No se preocupe si no puede llegar hasta el final.

Benjamin Bannier
fuente
2

¿Cuál es su sentido? ¿Intentarán probar si conoce Python, ver si puede hacer las cosas en Python o probar si puede programar (en Python)?

Esas son cosas muy diferentes.

Si quieren que demuestres que conoces Python, pueden obligarte a hacer cosas como crear un generador, y luego hacerlo sin usar yield . Explica cómo funcionan las clases. Explicar el orden de resolución del método C3. Y así.

Si quieren que les muestres que puedes hacer cosas en Python, deberás ser competente con las estructuras de datos básicas y tener una lista de bibliotecas a las que irías para diferentes tipos de tareas. Por lo tanto, debe sentirse cómodo con los diccionarios, conjuntos, matrices. Del mismo modo, necesita saber sobre cosas como BeautifulSoupanalizar HTML, poder hablar sobre un marco que podría usarse para el desarrollo web, etc. No necesariamente necesita saber cómo usar esas cosas bien, pero debe saber dónde vaya, cómo averiguar más y poder usarlos una vez que el entrevistador le haya dado cosas documentadas.

Si quieren que demuestre que puede programar (en Python), necesitará conocer las estructuras de datos básicas y conocer sus algoritmos. Esto está mucho más cerca de las preguntas de C / C ++ que le harían, excepto que se espera que use estructuras de datos nativas donde le facilite la vida.

Para estar seguro, debes prepararte hasta cierto punto para los tres. Por ejemplo, lea http://docs.python.org/tutorial/ y tome algunas notas para usted. Esperemos que ya sepas cómo programar. Y luego intente algunas tareas aleatorias, y obligarse a usar bibliotecas que puede haber perdido. Entonces, por ejemplo, lea algo de CSV, extraiga información programáticamente de una página web, cree un pequeño sitio web con un marco, etc.

btilly
fuente