Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuáles son las preguntas necesarias para las entrevistas en Python?

¿Cuáles son las preguntas necesarias para las entrevistas en Python?

Permítame darle una copia de las preguntas de la entrevista de Qianfeng Python

1. ¿Es una buena idea usar Python con múltiples subprocesos? Enumere algunas formas de hacer que algún código Python se ejecute en paralelo.

Respuesta: Python no permite subprocesos múltiples reales. Tiene un paquete de subprocesos múltiples, pero si desea utilizar subprocesos múltiples para acelerar su código, generalmente no es una buena idea usarlo. Python tiene una estructura llamada Global Interpreter Lock (GIL). El GIL garantiza que sólo se pueda ejecutar un "hilo" a la vez. Un hilo obtiene el GIL, hace un poco de trabajo y luego pasa el GIL al siguiente hilo. Esto sucede muy rápidamente, por lo que para el ojo humano parece que los subprocesos se ejecutan en paralelo, pero en realidad solo se turnan para usar el mismo núcleo de CPU. Todos estos pases GIL aumentan la memoria de ejecución. Esto significa que si desea que su código se ejecute más rápido, generalmente no es una buena idea utilizar el paquete de subprocesamiento.

También hay razones para usar el paquete de subprocesos de Python. Si desea ejecutar algunas cosas simultáneamente y la eficiencia no es un problema, entonces está totalmente bien. O si está ejecutando código que necesita esperar algo (como alguna IO), entonces podría tener sentido. Pero la biblioteca de subprocesos no le permitirá utilizar núcleos de CPU adicionales.

Se pueden subcontratar múltiples subprocesos al sistema operativo (mediante multiprocesamiento), a alguna aplicación externa que llame al código Python (por ejemplo, Spark o Hadoop) o a algún código que llame al código Python. Por ejemplo: puede usar su propio Python. El código llama a una función C para completar costosas transacciones multiproceso.

2. ¿Qué genera este código?

def f(x, l=)f(3)

Respuesta: [0, 1][ 3 , 2, 1, 0, 1, 4][0, 1, 0, 1, 4]

3.

La gestión de la memoria en Python se realiza mediante el espacio de almacenamiento dinámico privado de Python. Todos los objetos y estructuras de datos de Python se encuentran en el montón privado. El programador no tiene acceso a este montón privado. El intérprete de Python se encarga de esto. La asignación de espacio de almacenamiento dinámico para los objetos de Python la realiza el administrador de memoria de Python. La API principal proporciona varias herramientas para que los programadores escriban código. Python también tiene un recolector de basura incorporado que recupera toda la memoria no utilizada y la deja disponible para el espacio del montón.

4. ¿Cuál es la diferencia entre rango y xrango?

En la mayoría de los casos, xrange y range son funcionalmente idénticos. Ambos proporcionan una forma de generar una lista de números enteros, la única diferencia es que rango devuelve un objeto de lista de Python y xrange devuelve un objeto xrange.

Esto significa que xrange en realidad no genera una lista estática en tiempo de ejecución. Crea valores según sea necesario utilizando una técnica especial llamada ceder. Esta técnica funciona con un objeto llamado generador. Entonces, si tiene una lista muy grande, considere xrange.

5. ¿Cuáles son los usos de las funciones help() y dir() en Python?

Se puede acceder a ambas funciones Help() y dir() directamente desde el intérprete de Python y se utilizan para ver volcados combinados de funciones integradas.

Función help(): La función help() se utiliza para mostrar cadenas de documentación y también puede ver información de uso relacionada con módulos, palabras clave, atributos, etc.

Función dir(): La función dir() se utiliza para mostrar símbolos definidos.

6. ¿Qué funciones hay en NumPy para operar listas de Python?

Las listas de Python son contenedores eficientes de uso general.

Admiten inserción, eliminación, adición y concatenación (bastante) eficientes, y la comprensión de listas de Python las hace fáciles de construir y manipular.

Tienen ciertas limitaciones: no soportan operaciones "vectorizadas" como la suma y multiplicación pixeladas, y el hecho de que puedan contener objetos de diferentes tipos significa que Python debe almacenar la información del tipo de cada elemento, y el código de despacho de tipo debe ejecutarse al operar en cada elemento.

NumPy no sólo es más eficiente; también es más conveniente. Obtienes muchas operaciones vectoriales y matriciales de forma gratuita, lo que a veces puede ahorrarte trabajo innecesario. También se implementan de manera efectiva.

Las matrices NumPy son más rápidas, puedes usar NumPy, FFT, convolución, búsqueda rápida, estadísticas básicas, álgebra lineal, histogramas y más integrados.

Estos contenidos son muy importantes. Si te ayudan, aprovéchalos. Gracias.