¿Cuáles son las preguntas necesarias para las entrevistas en Python?
1. ¿Es una buena idea utilizar Python para subprocesos múltiples? Enumere algunas formas de hacer que algún código Python se ejecute en paralelo.
Respuesta: Python no permite verdaderos subprocesos múltiples. 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 un bloqueo llamado Bloqueo global de intérprete (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 sus subprocesos se ejecutan en paralelo, pero en realidad solo usan el mismo núcleo de CPU en secuencia. Todos estos pases GIL aumentan la memoria en ejecución. Esto significa que si desea que su código se ejecute más rápido, usar el paquete de subprocesos generalmente no es una buena idea.
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. Alternativamente, esto podría tener sentido si está ejecutando código que necesita esperar algo, como alguna IO. 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 a código Python (como Spark o Hadoop) o a algún código que llame a código Python, como el que usted puede usar en su Python El código llama a una función C para completar la costosa transacción multiproceso.
2. ¿Qué genera este código?
def f(x, l =[]): para I en rango(x): l append(I * I) print(l)f(2)f(3, [3, 2). ,1])f(3)
Respuesta: [0, 1] [3, 2, 1, 0, 1, 4] [0, 1, 0, 1, 4]
3.¿Cómo gestionar la memoria en Python?
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. Los programadores no tienen acceso a este montón privado. El intérprete de Python maneja este problema. 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 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 espacio de almacenamiento dinámico.
4.¿Cuál es la diferencia entre Range rangexrange?
En la mayoría de los casos, xrange y range son funcionalmente equivalentes. Ambos proporcionan métodos para generar listas de números enteros, la única diferencia es que rango devuelve un objeto de lista de Python y x rango devuelve un objeto xrange.
Esto significa que xrange en realidad no genera una lista estática en tiempo de ejecución. Utiliza una técnica especial llamada concesiones para crear valor bajo demanda. Esta técnica se utiliza 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 las funciones Help() y dir() directamente desde el intérprete de Python y utilizarlas para ver volcados combinados de funciones integradas.
Función Ayuda(): La función ayuda() 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 en NumPy operan en 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 derivación de listas de Python los hace fáciles de construir y manipular.
Tienen algunas limitaciones: no admiten 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 información de tipo para cada elemento y código de despacho de tipos. debe ejecutarse al operar sobre cada elemento.
NumPy no sólo es más eficiente; también es más conveniente. Muchas operaciones vectoriales y matriciales están disponibles de forma gratuita y, en ocasiones, se puede evitar el trabajo innecesario. También se implementan de manera efectiva.
Las matrices NumPy son más rápidas y puedes usar NumPy, FFT, convolución, búsqueda rápida, estadísticas básicas, álgebra lineal, histogramas, etc.
Estas cosas siguen siendo importantes. Si te ayudan, adoptalos. Gracias.