42 Preguntas y respuestas de la entrevista de Python en tiempo real [2022]

¿Te estás preparando para las entrevistas de Python? ¿O simplemente tienes curiosidad por saber cuánto sabes de Python? No hay problema. Aquí cubrimos sus problemas con preguntas y respuestas.

El artículo lo ayudará a comprender qué tipo de pregunta podría enfrentar en las entrevistas. O lo ayuda a evaluar sus habilidades con Python. Asegúrese de responder las preguntas antes de ver las respuestas para evaluarse con precisión. Sin más preámbulos, profundicemos en las preguntas.

Las preguntas se dividen en diferentes secciones según el tipo de temas. Cada sección tiene preguntas junto con respuestas seleccionadas. Puede modificar la respuesta con su propio idioma con el mismo significado. Entonces, el entrevistador no sentirá que estás leyendo algo.

Tabla de contenido

Lenguaje pitón

#1. ¿Qué es Python?

Python es un lenguaje de programación interpretado de propósito general y alto nivel. Podemos construir casi cualquier tipo de aplicación utilizando Python con bibliotecas y marcos de trabajo de terceros. Python es uno de los lenguajes de programación más populares en tecnologías avanzadas como AI, Data Science, etc.

#2. ¿Cuál es la principal diferencia entre un intérprete y un compilador?

El intérprete traduce una declaración a la vez en código de máquina, mientras que el compilador traduce todo el código a la vez en código de máquina.

#3. ¿Python es un lenguaje de tipo estático o de tipo dinámico?

Python es un lenguaje tipado dinámicamente.

#4. ¿Qué quiere decir con lenguaje escrito dinámicamente?

Los lenguajes escritos dinámicamente verifican los tipos de variables en tiempo de ejecución. Algunos lenguajes tipeados dinámicamente son Python, JavaScript, Ruby, etc.

Bonificación: los lenguajes tipificados estáticamente verifican los tipos de variables en tiempo de compilación. Algunos lenguajes tipificados estáticamente son C++, C, Java, etc.,

#5. Dar algunas aplicaciones de Python.

Python tiene una sintaxis más simple y fácil de aprender. Puede parecer similar al inglés. La comunidad de desarrolladores de Python es enorme. Podemos encontrar muchos paquetes de terceros para trabajar con diferentes tipos de desarrollo de aplicaciones. Cuando se trata de desarrollo, podemos crear aplicaciones web, aplicaciones GUI, aplicaciones CLI, etc.,

Una de las aplicaciones más populares de Python es la automatización. Podemos crear scripts fácilmente en Python para automatizar tareas como limpiar el disco, enviar correos, obtener datos sobre los precios de los productos, etc.

Python es uno de los lenguajes más populares para usar en el campo de la ciencia de datos.

#6. ¿Qué aplicaciones creaste usando Python?

He escrito múltiples scripts de automatización para eliminar tareas repetitivas y aburridas. Y scripts para obtener información sobre precios de productos, disponibilidad, etc.

También he trabajado con frameworks como Django, Flask para construir aplicaciones web. Y crea algunas aplicaciones web usando Django y Flask.

Nota: La respuesta anterior es un ejemplo. Tu respuesta puede ser completamente diferente a la anterior. Trate de explicar las diferentes áreas en las que ha trabajado usando Python. Mostrar las aplicaciones si están disponibles.

Tipos de datos

#7. ¿Cuáles son los tipos de datos incorporados en Python?

Hay múltiples tipos de datos integrados en Python. Son int, float, complex, bool, list, tuple, set, dict, str.

Nota: no es necesario que indique todos los tipos de datos presentes en Python. Menciona algunos de los que más usas. El entrevistador puede hacer preguntas basadas en su respuesta.

#8. ¿Cuál es la diferencia entre lista y tupla?

Tanto la lista como la tupla se utilizan para almacenar la colección de objetos. La principal diferencia entre la lista y la tupla es «la lista es un objeto mutable mientras que la tupla es un objeto inmutable».

#9. ¿Qué son los tipos de datos mutables e inmutables?

Los tipos de datos mutables se pueden cambiar después de crearlos. Algunos de los objetos mutables en Python son list, set, dict.

Los tipos de datos inmutables no se pueden cambiar después de crearlos. Algunos de los objetos inmutables en Python son str, tuple.

#10. Explique algunos métodos de la lista.

1. agregar: el método se usa para agregar un elemento a la lista. Agrega el elemento al final de la lista.

>>> a = [1, 2]
>>> a.append(3)
>>> a
[1, 2, 3]

2. pop: el método se utiliza para eliminar un elemento de la lista. Eliminará el último elemento si no proporcionamos ningún índice como argumento o eliminará el elemento en el índice si proporcionamos un argumento.

>>> a = [1, 2, 3, 4, 5]
>>> a.pop()
5
>>> a
[1, 2, 3, 4]
>>> a.pop(1)
2
>>> a
[1, 3, 4]

3. eliminar: el método se utiliza para eliminar un elemento de la lista. Necesitamos proporcionar el elemento como un argumento que queremos eliminar de la lista. Elimina la primera aparición del elemento de la lista.

>>> a = [1, 2, 2, 3, 4]
>>> a = [1, 2, 3, 2, 4]
>>> a.remove(1)
>>> a
[2, 3, 2, 4]
>>> a.remove(2)
>>> a
[3, 2, 4]

4. ordenar: el método utilizado para ordenar la lista en orden ascendente o descendente.

>>> a = [3, 2, 4, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a.sort(reverse=True)
>>> a
[4, 3, 2, 1]

5. invertir: el método se utiliza para invertir los elementos de la lista.

>>> a = [3, 2, 4, 1]
>>> a.reverse()
>>> a
[1, 4, 2, 3]

Nota: Hay otros métodos como borrar, insertar, contar, etc. No es necesario que explique todos los métodos de la lista al entrevistador. Simplemente explique dos o tres métodos que utilice principalmente.

#11. Explicar algunos métodos de cadena.

1. dividir: el método se utiliza para dividir la cadena en los puntos deseados. Devuelve la lista como resultado. Por defecto, divide la cadena en espacios. Podemos proporcionar el delimitador como argumento para el método.

>>> a = "This is kirukiru.es"
>>> a.split()
['This', 'is', 'Geekflare']
>>> a = "1, 2, 3, 4, 5, 6"
>>> a.split(", ")
['1', '2', '3', '4', '5', '6']

2. unir: el método se utiliza para combinar la lista de objetos de cadena. Combina los objetos de cadena con el delimitador que proporcionamos.

>>> a = ['This', 'is', 'Geekflare']
>>> ' '.join(a)
'This is kirukiru.es'
>>> ', '.join(a)
'This, is, kirukiru.es'

Nota: Algunos otros métodos de cadenas son: mayúsculas, isalnum, isalpha, isdigit, lower, upper, center, etc.,

#12. ¿Qué es la indexación negativa en las listas?

El índice se utiliza para acceder al elemento de las listas. La indexación normal de la lista comienza desde 0.

Similar a la indexación normal, la indexación negativa también se usa para acceder a los elementos de las listas. Pero la indexación negativa nos permite acceder al índice desde el final de la lista. El inicio de la indexación negativa es -1. Y sigue aumentando como -2, -3, -4, etc., hasta el final de la lista.

>>> a = [1, 2, 3, 4, 5]
>>> a[-1]
5
>>> a[-3]
3
>>> a[-5]
1

#13. Explicar algunos métodos de dict.

1. elementos: el método devuelve clave: pares de valores de diccionarios como una lista de tuplas.

>>> a = {1: 'kirukiru.es', 2: 'kirukiru.es Tools', 3: 'kirukiru.es Online Compiler'}
>>> a.items()
dict_items([(1, 'Geekflare'), (2, 'Geekflare Tools'), (3, 'Geekflare Online Compiler')])

2. pop: el método se usa para eliminar el par clave: valor del diccionario. Acepta la clave como argumento y la elimina del diccionario.

>>> a = {1: 2, 2: 3}
>>> a.pop(2)
3
>>> a
{1: 2}

Nota: Algunos otros métodos de dict son: obtener, claves, valores, borrar, etc.

#14. ¿Qué es cortar en Python?

El corte se utiliza para acceder al subarreglo desde un tipo de datos de secuencia. Devuelve los datos del tipo de datos de secuencia en función de los argumentos que proporcionamos. Devuelve el mismo tipo de datos que el tipo de datos de origen.

Slicing acepta tres argumentos. Son el índice inicial, el índice final y el paso de incremento. La sintaxis de cortar es variable[start:end:step]. Los argumentos no son obligatorios para el corte. Puede especificar dos puntos vacíos (:) que devuelven los datos completos como resultado.

>>> a = [1, 2, 3, 4, 5]
>>> a[:]
[1, 2, 3, 4, 5]
>>> a[:3]
[1, 2, 3]
>>> a[3:]
[4, 5]
>>> a[0:5:2]
[1, 3, 5]

#15. ¿Qué tipos de datos permiten el corte?

Podemos usar el corte en los tipos de datos list, tuple y str.

#dieciséis. ¿Qué son los operadores de desempaquetado en Python? ¿Cómo usarlos?

Los operadores * y ** son operadores de desempaquetado en Python.

El operador de desempaquetado * se usa para asignar múltiples valores a diferentes valores a la vez desde tipos de datos de secuencia.

>>> items = [1, 2, 3]
>>> a, b, c = items
>>> a
1
>>> b
2
>>> c
3
>>> a, *b = items
>>> a
1
>>> b
[2, 3]

El operador de desempaquetado ** se usa con tipos de datos dict. El desempaquetado en diccionarios no funciona como el desempaquetado con tipos de datos de secuencia.

El desempaquetado en los diccionarios se usa principalmente para copiar elementos clave: de valor de un diccionario a otro.

>>> a = {1:2, 3:4}
>>> b = {**a}
>>> b
{1: 2, 3: 4}
>>> c = {3:5, 5:6}
>>> b = {**a, **c}
>>> b
{1: 2, 3: 5, 5: 6}

Nota: Puede consultar este artículo para obtener más información sobre estos operadores.

Condiciones y bucles

#17. ¿Python tiene instrucciones de cambio?

No, Python no tiene instrucciones de cambio.

#18. ¿Cómo implementa la funcionalidad de las declaraciones de cambio en Python?

Podemos implementar la funcionalidad de las sentencias switch usando sentencias if y elif.

>>> if a == 1:
...     print(...)
... elif a == 2:
...     print(....)

#19. ¿Qué son las sentencias break y continue?

break: la instrucción break se usa para terminar el bucle en ejecución. La ejecución del código saltará al exterior del bucle de interrupción.

>>> for i in range(5):
...     if i == 3:
...             break
...     print(i)
...
0
1
2

continuar: la instrucción continuar se usa para omitir la ejecución del código restante. El código después de la instrucción continuar no se ejecuta en la iteración actual y la ejecución pasa a la siguiente iteración.

>>> for i in range(5):
...     if i == 3:
...             continue
...     print(i)
...
0
1
2
4

#20. ¿Cuándo se ejecuta el código en else con bucles while y for?

El código dentro del bloque else con bucles while y for se ejecuta después de ejecutar todas las iteraciones. Y el código dentro del bloque else no se ejecuta cuando rompemos los bucles.

#21. ¿Qué son las comprensiones de listas y diccionarios?

Las comprensiones de listas y diccionarios son azúcar sintáctica para los bucles for.

>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a = {i: i + 1 for i in range(10)}
>>> a
{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}
>>>

#22. ¿Cómo funciona la función de rango?

La función de rango devuelve la secuencia de números entre el inicio y la parada con un incremento de paso. La sintaxis de la función de rango es range(start, stop[, step]).

El argumento de parada es obligatorio. Los argumentos start y step son opcionales. Los valores predeterminados de inicio y paso son 0 y 1, respectivamente.

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
>>>

Funciones

#23. ¿Cuáles son los parámetros y argumentos?

Los parámetros son los nombres enumerados en la definición de la función.

Los argumentos son los valores pasados ​​a la función durante la invocación.

#24. ¿Cuáles son los diferentes tipos de argumentos en Python?

Existen principalmente cuatro tipos de argumentos. Son argumentos posicionales, argumentos predeterminados, argumentos de palabras clave y argumentos arbitrarios.

Argumentos posicionales: los argumentos normales que definimos en las funciones definidas por el usuario se denominan argumentos posicionales. Todos los argumentos posicionales son necesarios al invocar la función.

>>> def add(a, b):
...     return a + b
...
>>> add(1, 2)
3
>>> add(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: add() missing 1 required positional argument: 'b'
>>>

Argumentos predeterminados: podemos proporcionar el valor a los argumentos en la propia definición de la función como valor predeterminado. Cuando el usuario no pasó el valor, la función considerará el valor predeterminado.

>>> def add(a, b=3):
...     return a + b
...
>>> add(1, 2)
3
>>> add(1)
4

Argumentos de palabras clave: podemos especificar el nombre de los argumentos al invocar la función y asignarles valores. Los argumentos de palabras clave nos ayudan a evitar el orden que es obligatorio en los argumentos posicionales.

>>> def add(a, b):
...     print("a ", a)
...     print("b ", b)
...     return a + b
...
>>> add(b=4, a=2)
a  2
b  4
6

Argumentos arbitrarios: usamos argumentos arbitrarios para recopilar un montón de valores en un momento en que no sabemos la cantidad de argumentos que obtendrá la función. Utilizamos los operadores * y ** en la definición de la función para recopilar los argumentos.

>>> def add(*args):
...     return sum(args)
...
>>> add(1, 2, 3, 4, 5)
15
>>> def dict_args(**kwargs):
...     print(kwargs)
...
>>> dict_args(a="kirukiru.es", b='kirukiru.es Tools', c="kirukiru.es Online Compiler")
{'a': 'kirukiru.es', 'b': 'kirukiru.es Tools', 'c': 'kirukiru.es Online Compiler'}

#25. ¿Qué es la función lambda?

Las funciones Lambda son pequeñas funciones anónimas en Python. Tiene expresiones simples y acepta múltiples argumentos.

>>> add = lambda a, b: a + b
>>> add(1, 3)
4

#26. ¿Cuál es la diferencia entre la función normal y la función lambda?

La funcionalidad de las funciones normales y las funciones lambda es similar. Pero necesitamos escribir código adicional en las funciones normales en comparación con las funciones lambda para la misma funcionalidad.

Las funciones lambda son útiles cuando hay una sola expresión.

#27. ¿Para qué se utiliza la palabra clave pass?

La palabra clave pass se usa para mencionar un bloque vacío en el código. Python no nos permite dejar los bloques sin código. Entonces, la instrucción pass nos permite definir bloques vacíos (cuando decidimos completar el código más adelante).

>>> def add(*args):
...
...
  File "<stdin>", line 3

    ^
IndentationError: expected an indented block
>>> def add(*args):
...     pass
...
>>>

#28. ¿Qué es una función recursiva?

La función que se llama a sí misma se llama función recursiva.

¿Qué son los operadores de empaque en Python? ¿Cómo usarlos?

Los operadores de empaquetado se utilizan para recopilar múltiples argumentos en funciones. Se conocen como argumentos arbitrarios.

Nota: puede consultar este artículo para obtener más información sobre los operadores de empaquetado en Python.

#29. OOP en Python

¿Qué palabra clave se usa para crear clases en Python?

La palabra clave class se usa para crear clases en Python. Deberíamos seguir el caso pascal para nombrar las clases en Python como una práctica estándar de la industria.

>>> class Car:
...     pass
...

#30. ¿Cómo instanciar una clase en Python?

Podemos crear una instancia de una clase en Python simplemente llamándola como función. Podemos pasar los atributos requeridos para el objeto de la misma manera que lo hacemos para los argumentos de función.

>>> class Car:
...     def __init__(self, color):
...             self.color = color
...
>>> red_car = Car('red')
>>> red_car.color
'red'
>>> green_car = Car('green')
>>> green_car.color
'green'
>>>

#31. ¿Qué es uno mismo en Python?

El yo representa el objeto de la clase. Se utiliza para acceder a los atributos y métodos del objeto dentro de la clase para el objeto en particular.

#32. ¿Qué es el método __init__?

El __init__ es el método constructor similar a los constructores en otros lenguajes OOP. Se ejecuta inmediatamente cuando creamos un objeto para la clase. Se utiliza para inicializar los datos iniciales de la instancia.

#33. ¿Qué es docstring en Python?

Las cadenas de documentación o docstrings se utilizan para documentar un bloque de código. También se utilizan como comentarios de varias líneas.

Estas cadenas de documentación se utilizan en los métodos de una clase para describir lo que hace un determinado método. Y podemos ver el método docstring usando el método de ayuda.

>>> class Car:
...     def __init__(self, color):
...             self.color = color
...
...     def change_color(self, updated_color):
...             """This method changes the color of the car"""
...             self.color = updated_color
...
>>> car = Car('red')
>>> help(car.change_color)
Help on method change_color in module __main__:

change_color(updated_color) method of __main__.Car instance
    This method changes the color of the car

>>>

#34. ¿Qué son los métodos dunder o mágicos?

Los métodos que tienen dos guiones bajos de prefijo y sufijo se denominan métodos dunder o mágicos. Se utilizan principalmente para anular los métodos. Algunos de los métodos que podemos anular en las clases son __str__, __len__, __setitem__, __getitem__, etc.,

>>> class Car:
...     def __str__(self):
...             return "This is a Car class"
...
>>> car = Car()
>>> print(car)
This is a Car class
>>>

Nota: Hay muchos otros métodos que puede anular. Son útiles cuando desea personalizar el código en profundidad. Explore la documentación para obtener más información.

#35. ¿Cómo implementas la herencia en Python?

Podemos pasar la clase principal a la clase secundaria como argumento. Y podemos invocar la clase principal del método init en la clase secundaria.

>>> class Animal:
...     def __init__(self, name):
...             self.name = name
...
>>> class Animal:             e):
...     def __init__(self, name):
...             self.name = name
...
...     def display(self):
...             print(self.name)
>>> class Dog(Animal):        e):ame)
...     def __init__(self, name):
...             super().__init__(name)
...
>>> doggy = Dog('Tommy')
>>> doggy.display()
Tommy
>>>

#36. ¿Cómo acceder a la clase principal dentro de la clase secundaria en Python?

Podemos usar el super() que se refiere a la clase principal dentro de la clase secundaria. Y podemos acceder a atributos y métodos con él.

Misceláneas

#37. ¿Cómo usar comentarios de una sola línea y de varias líneas en Python?

Usamos hash (#) para comentarios de una sola línea. Y comillas simples triples («‘comentario»‘) o comillas dobles triples («»»comentario»»») para comentarios de varias líneas.

#38. ¿Qué es un objeto en Python?

Todo en Python es un objeto. Todos los tipos de datos, funciones y clases son objetos.

#39. ¿Cuál es la diferencia entre es y ==?

El operador == se utiliza para comprobar si dos objetos tienen el mismo valor o no. El operador is se usa para verificar si dos objetos se refieren a la misma ubicación de memoria o no.

>>> a = []
>>> b = []
>>> c = a
>>> a == b
True
>>> a is b
False
>>> a is c
True
>>>

#40. ¿Qué es una copia superficial y profunda?

Copia superficial: crea la copia exacta del original sin cambiar las referencias de los objetos. Ahora, tanto los objetos copiados como los originales se refieren a las mismas referencias de objetos. Entonces, cambiar un objeto afectará al otro.

El método de copia del módulo de copia se utiliza para la copia superficial.

>>> from copy import copy
>>> a = [1, [2, 3]]
>>> b = copy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 4]]

Deep Copy: copia recursivamente los valores del objeto original en el nuevo objeto. Tenemos que usar la función de corte o copia profunda del módulo de copia para la copia profunda.

>>> from copy import deepcopy
>>> a = [1, [2, 3]]
>>> b = deepcopy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3]]
>>> b[1].append(5)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 5]]
>>>

#41. ¿Qué son los iteradores?

Los iteradores son objetos en Python que recuerdan su estado de iteración. Inicializa los datos con el método __iter__ y devuelve el siguiente elemento usando el método __next__.

Necesitamos llamar al siguiente (iterador) para obtener el siguiente elemento del iterador. Y podemos convertir un tipo de datos de secuencia en un iterador utilizando el método integrado iter.

>>> a = [1, 2]
>>> iterator = iter(a)
>>> next(iterator)
1
>>> next(iterator)
2
>>> next(iterator)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
>>>

#42. ¿Qué son los generadores?

Los generadores son las funciones que devuelven un iterador como un objeto generador. Utiliza el rendimiento para generar los datos.

>>> def numbers(n):
...     for i in range(1, n + 1):
...             yield i
...
>>> _10 = numbers(10)
>>> next(_10)
1
>>> next(_10)
2
>>> next(_10)
3
>>> next(_10)
4

Conclusión 👨‍💻

Las preguntas no están limitadas, como vemos en este artículo. Este artículo muestra cómo se pueden hacer diferentes tipos de preguntas de varios temas en Python. Pero no se limita al conjunto de preguntas que hemos discutido en este artículo.

Una forma de estar preparado mientras aprendes es cuestionarte a ti mismo sobre diferentes temas. Intenta hacer diferentes tipos de preguntas a partir de un concepto. Y respóndelas tú mismo. De esta manera, probablemente no te sorprendan las preguntas de la entrevista. También puede consultar el compilador de Python en línea para practicar el código.

¡Todo lo mejor para su próxima entrevista de Python! 👍