¿Está preparando entrevistas para Python? ¿O simplemente tiene curiosidad por saber cuánto sabe de Python? No hay problema. Aquí cubrimos sus problemas con preguntas y respuestas.
El artículo le ayudará a comprender el tipo de preguntas a las que podría enfrentarse en las entrevistas. O le ayudará a evaluar sus conocimientos de Python. Asegúrese de responder a las preguntas antes de ver las respuestas para evaluarse con precisión. Sin más preámbulos, sumerjámonos en las preguntas.
Las preguntas están divididas en diferentes secciones basadas en el tipo de temas. Cada sección tiene preguntas junto con respuestas curadas. Puede modificar la respuesta con su propio lenguaje con el mismo significado. Así, el entrevistador no tendrá la sensación de que usted está leyendo algo.
¿Qué es Python?
Respuesta: Python es un lenguaje de programación interpretado de alto nivel y de propósito general. 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 IA, Ciencia de Datos, etc.
¿Cuál es la principal diferencia entre un intérprete y un compilador?
Respuesta: El intérprete traduce una sentencia cada vez a código máquina, mientras que el compilador traduce todo el código a la vez a código máquina.
¿Es Python un lenguaje tipado estáticamente o dinámicamente?
Respuesta: Python es un lenguaje tipado dinámicamente.
¿Qué se entiende por lenguaje tipado dinámicamente?
Respuesta: Los lenguajes tipados dinámicamente comprueban los tipos de las variables en tiempo de ejecución. Algunos lenguajes tipados dinámicamente son Python, JavaScript, Ruby, etc.
Bono: Los lenguajes tipados estáticamente comprueban los tipos de las variables en tiempo de compilación. Algunos lenguajes tipados estáticamente son C , C, Java, etc..,
Indique algunas aplicaciones de Python.
Conteste: Python tiene una sintaxis más sencilla y fácil de aprender. Puede parecerse a la inglesa. La comunidad de desarrolladores para 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 fácilmente scripts en Python para automatizar tareas como limpiar el disco, enviar correos, obtener datos sobre precios de productos, etc..,
Python es uno de los lenguajes más populares en el campo de la Ciencia de Datos.
¿Qué aplicaciones ha creado con Python?
Respuesta: 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 construir algunas aplicaciones web utilizando tanto Django y Flask.
Nota: La respuesta anterior es un ejemplo. Su respuesta puede ser completamente diferente a la anterior. Intente explicar diferentes áreas en las que haya trabajado utilizando Python. Muestre las aplicaciones si están disponibles.
¿Cuáles son los tipos de datos incorporados en Python?
Respuesta: Existen múltiples tipos de datos incorporados en Python. Son int, float, complex, bool, list, tuple, set, dict, str.
Nota:No es necesario que diga todos los tipos de datos presentes en Python. Mencione algunos de los que utilice con más frecuencia. El entrevistador podrá hacerle preguntas en función de su respuesta.
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 que «la lista es un objeto mutable mientras que la tupla es un objeto inmutable».
¿Qué son los tipos de datos mutables e inmutables?
Respuesta: Los tipos de datos mutables pueden modificarse 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.
Explique algunos métodos de la lista.
Conteste:
1. append – el método se utiliza para añadir un elemento a la lista. Añade 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 como argumento el elemento que queremos eliminar de la lista. El método 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.eliminar(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. reverse – 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:Existen otros métodos como clear, insert, count, etc… No tiene que explicar al entrevistador todos los métodos de la lista. Limítese a explicar dos o tres métodos que utilice mayoritariamente.
Explique algunos métodos de cadena.
Conteste:
1. split – el método se utiliza para dividir la cadena en los puntos deseados. Devuelve la lista como resultado. Por defecto, divide la cadena en los espacios. Podemos proporcionar el delimitador como argumento para el método.
>>> a = "Esto es Geekflare"
>>> a.split()
['Esto', 'es', 'Geekflare']
>>> a = "1, 2, 3, 4, 5, 6"
>>> a.split(", ")
['1', '2', '3', '4', '5', '6']
2. join – el método se utiliza para combinar la lista de objetos cadena. Combina los objetos cadena con el delimitador que proporcionemos.
>>> a = ['Esto', 'es', 'Geekflare']
>>> ' '.join(a)
'Esto es Geekflare'
>>> ', '.join(a)
'Esto, es, Geekflare'
Nota: Algunosotros métodos de cadenas son: capitalize, isalnum, isalpha, isdigit, lower, upper, center, etc..,
¿Qué es la indexación negativa en las listas?
Respuesta: El índice se utiliza para acceder al elemento de las listas. La indexación normal de la lista comienza en 0.
De forma similar a la indexación normal, la indexación negativa también se utiliza 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 la longitud de la lista.
>>> a = [1, 2, 3, 4, 5]
>>> a[-1]
5
>>> a[-3]
3
>>> a[-5]
1
Explique algunos métodos de dict.
Conteste:
1. items – el método devuelve pares clave: valor de diccionarios como una lista de tuplas.
>>> a = {1: 'Geekflare', 2: 'Geekflare Tools', 3: 'Geekflare Online Compiler'}
>>> a.items()
dict_items([(1, 'Geekflare'), (2, 'Geekflare Tools'), (3, 'Geekflare Online Compiler')])
2. pop – el método se utiliza 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: get, keys, values, clear, etc.
¿Qué es el troceado en Python?
Respuesta: Slicing se utiliza para acceder a la submatriz de un tipo de datos de secuencia. Devuelve los datos del tipo de datos secuencia basándose en los argumentos que proporcionamos. Devuelve el mismo tipo de datos que el tipo de datos de origen.
El corte acepta tres argumentos. Son el índice inicial, el índice final y el paso de incremento. La sintaxis del rebanado es variable[inicio:fin:paso]
. Los argumentos no son obligatorios para el rebanado. Puede especificar dos puntos vacíos (:) que devuelve 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]
¿Qué tipos de datos permiten el troceado?
Respuesta: Podemos usar slicing en los tipos de datos lista, tupla y str.
¿Qué son los operadores de descompresión en Python? ¿Cómo utilizarlos?
Respuesta: Los operadores * y ** son operadores de desempaquetado en Python.
El operador de desempaquetado * se utiliza para asignar varios valores a la vez a partir de tipos de datos secuenciales.
>>> items = [1, 2, 3]
>>> a, b, c = ítems
>>> a
1
>>> b
2
>>> c
3
>>> a, *b = elementos
>>> a
1
>>> b
[2, 3]
El operador de desempaquetado ** se utiliza con tipos de datos dict . El desempaquetado en diccionarios no funciona como el desempaquetado con tipos de datos de secuencia.
El desempaquetado en diccionarios se utiliza sobre todo para copiar elementos clave: 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.
¿Tiene Python sentencias switch?
Respuesta: No, Python no tiene sentencias switch.
¿Cómo se implementa la funcionalidad de las sentencias switch en Python?
Respuesta: Podemos implementar la funcionalidad de las sentencias switch utilizando las sentencias if y elif .
>>> if a == 1:
... print(...)
... elif a == 2:
... print(....)
¿Qué son las sentencias break y continue?
Respuesta:
break – la sentencia break se utiliza para terminar el bucle en ejecución. La ejecución del código saltará al exterior del bucle break.
>>> for i in range(5):
... if i == 3:
... break
... print(i)
...
0
1
2
continue – la sentencia continue se utiliza para saltarse la ejecución del código restante. El código después de la sentencia continue 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
¿Cuándo se ejecuta el código en else con los bucles while y for?
Respuesta: 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.
¿Qué son las comprensiones de lista y diccionario?
Respuesta: Las comprensiones de lista y diccionario son azúcar sintáctico 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}
>>>
¿Cómo funciona la función rango?
Respuesta: La función rango devuelve la secuencia de números entre el inicio y el final con un incremento de paso. La sintaxis de la función range es range(inicio, stop[, paso]).
El argumento stop es obligatorio. Los argumentos inicio y paso son opcionales. El valor por defecto 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]
>>>
¿Cuáles son los parámetros y argumentos?
Respuesta: Los parámetros son los nombres que figuran en la definición de la función.
Los argumentos son los valores que se pasan a la función al invocarla.
¿Cuáles son los diferentes tipos de argumentos en Python?
Respuesta: Existen principalmente cuatro tipos de argumentos. Son los argumentos posicionales, los argumentos por defecto, los argumentos de palabra clave y los 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 añadir(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 por defecto: podemos proporcionar el valor a los argumentos en la propia definición de la función como valor por defecto. Cuando el usuario no pase el valor, la función considerará el valor por defecto.
>>> def sumar(a, b=3):
... return a b
...
>>> add(1, 2)
3
>>> add(1)
4
Argumentos de palabra clave: podemos especificar el nombre de los argumentos al invocar la función y asignarles valores. Los argumentos de palabra clave nos ayudan a evitar la ordenación que es obligatoria en los argumentos posicionales.
>>> def añadir(a, b):
... print("a ", a)
... print("b ", b)
... return a b
...
>>> add(b=4, a=2)
a 2
b 4
6
Argumentos arbitrarios: utilizamos argumentos arbitrarios para recoger un montón de valores a la vez cuando no conocemos el número de argumentos que obtendrá la función. Utilizamos los operadores * y ** en la definición de la función para recoger los argumentos.
>>> def sumar(*args):
... return suma(args)
...
>>> add(1, 2, 3, 4, 5)
15
>>> def dict_args(**kwargs):
... print(kwargs)
...
>>> dict_args(a='Geekflare', b='Geekflare Tools', c='Geekflare Online Compiler')
{'a': 'Geekflare', 'b': 'Geekflare Tools', 'c': 'Geekflare Online Compiler'}
¿Qué es la función lambda?
Respuesta: 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
¿Cuál es la diferencia entre función normal y función lambda?
Respuesta: La funcionalidad tanto de las funciones normales como de las funciones lambda es similar. Pero, necesitamos escribir algo de código extra en las funciones normales en comparación con las funciones lambda para la misma funcionalidad.
Las funciones lambda resultan útiles cuando existe una única expresión.
¿Para qué se utiliza la palabra clave pass?
Respuesta: La palabra clave pass se utiliza para mencionar un bloque vacío en el código. Python no nos permite dejar los bloques sin código. Así pues, la sentencia pass nos permite definir bloques vacíos (cuando decidamos rellenar el código más adelante).
>>> def add(*args):
...
...
Archivo "<stdin>", línea 3
^
IndentationError: se esperaba un bloque indentado
>>> def add(*args):
... pass
...
>>>
¿Qué es una función recursiva?
Respuesta: La función que se llama a sí misma se llama función recursiva.
¿Qué son los operadores de empaquetamiento en Python? ¿Cómo utilizarlos?
Respuesta: Los operadores de empaquetamiento se utilizan para recoger múltiples argumentos en las funciones. Se conocen como argumentos arbitrarios.
Nota: puede consultar este artículo para obtener más información sobre los operadores de empaquetamiento en Python.
¿Qué palabra clave se utiliza para crear clases en Python?
Respuesta: La palabra clave class se utiliza para crear clases en Python. Deberíamos seguir el caso pascal para nombrar las clases en Python como una práctica estándar en la industria.
>>> clase Car:
... pascal
...
¿Cómo instanciar una clase en Python?
Respuesta: Podemos crear una instancia de una clase en Python simplemente llamándola como si fuera una función. Podemos pasar los atributos requeridos para el objeto de la misma manera que lo hacemos para los argumentos de función.
>>> class Coche
... def __init__(self, color):
... self.color = color
...
>>> coche_rojo = Coche('rojo')
>>> coche_rojo.color
'rojo'
>>> coche_verde = Coche('verde')
>>> coche_verde.color
verde
>>>
¿Qué es self en Python?
Respuesta: El self representa el objeto de la clase. Se utiliza para acceder a los atributos del objeto y a los métodos dentro de la clase para el objeto en particular.
¿Qué es el método __init__?
Respuesta: El __init__ es el método constructor similar a los constructores de otros lenguajes OOP. Se ejecuta inmediatamente cuando creamos un objeto para la clase. Se utiliza para inicializar los datos iniciales de la instancia.
¿Qué es docstring en Python?
Respuesta: Las cadenas de documentación o docstrings se utilizan para documentar un bloque de código. También se utilizan como comentarios multilínea.
Estas docstrings se utilizan en los métodos de una clase para describir lo que hace un determinado método. Y podemos ver el docstring del método utilizando el método help .
>>> class Coche
... def __init__(self, color):
... self.color = color
...
... def cambiar_color(self, color_actualizado):
... """Este método cambia el color del coche"""
... self.color = color_actualizado
...
>>> coche = Coche('rojo')
>>> ayuda(coche.cambiar_color)
Ayuda sobre el método cambiar_color en el módulo __main__:
método cambiar_color(color_actualizado) de la instancia __main__.Coche
Este método cambia el color del coche
>>>
¿Qué son los métodos dunder o mágicos?
Respuesta: Los métodos que tienen dos guiones bajos de prefijo y sufijo se llaman 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 Coche
... def __str__(self):
... return "Esta es una clase Coche"
...
>>> coche = Coche()
>>> print(coche)
Esta es una clase Coche
>>>
Nota: Hay muchos otros métodos que puede anular. Resultan útiles cuando desea personalizar el código en profundidad. Explore la documentación para obtener más información.
¿Cómo se implementa la herencia en Python?
Respuesta: Podemos pasar la clase padre a la clase hija como argumento. Y podemos invocar el método init clase padre en la clase hijo.
>>> class Animal
... def __init__(self, nombre):
... self.nombre = nombre
...
>>> class Animal: e):
... def __init__(self, nombre):
... self.nombre = nombre
...
... def display(self):
... print(self.name)
>>> class Perro(Animal): e):ame)
... def __init__(self, nombre):
... super().__init__(nombre)
...
>>> perrito = Perro('Tommy')
>>> doggy.display()
Tommy
>>>
¿Cómo acceder a la clase padre dentro de la clase hija en Python?
Respuesta: Podemos utilizar la función super(), que hace referencia a la clase padre dentro de la clase hija. Y podemos acceder a atributos y métodos con ella.
¿Cómo utilizar comentarios de una y varias líneas en Python?
Respuesta: Utilizamos almohadilla (#) para los comentarios de una sola línea. Y comillas simples triples (»’comment»’) o comillas dobles triples («comment») para los comentarios multilínea.
¿Qué es un objeto en Python?
Respuesta: Todo en Python es un objeto. Todos los tipos de datos, funciones y clases son objetos.
¿Cuál es la diferencia entre is y ==?
Respuesta: El operador == se utiliza para comprobar si dos objetos tienen el mismo valor o no. El operador is se utiliza para comprobar si dos objetos se refieren a la misma posición de memoria o no.
>>> a = []
>>> b = []
>>> c = a
>>> a == b
Verdadero
>>> a es b
Falso
>>> a es c
Verdadero
>>>
¿Qué es una copia superficial y profunda?
Respuesta:
Copia superficial: crea la copia exacta del original sin cambiar las referencias de los objetos. Ahora bien, tanto los objetos copiados como los originales hacen referencia a los mismos objetos. Por lo tanto, el cambio de un objeto afectará al otro.
Para la copia superficial se utiliza el método copy del módulo copy .
>>> from copia import copia
>>> a = [1, [2, 3]]
>>> b = copy(a)
>>> a<x><x>[1]</x></x>.append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 4]]
Copia profunda: copia los valores del objeto original recursivamente en el nuevo objeto. Para la copia profunda debemos utilizar la función slicing o deepcopy del módulo copy .
>>> from copy import deepcopy
>>> a = [1, [2, 3]]
>>> b = deepcopy(a)
>>> a<x><x>[1]</x></x>.append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3]]
>>> b<x><x>[1]</x></x>.append(5)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 5]]
>>>
¿Qué son los iteradores?
Respuesta: 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 mediante el método __next__ .
Necesitamos llamar al método next(iterator) para obtener el siguiente elemento del iterador. Y podemos convertir un tipo de datos de secuencia en un iterador utilizando el método incorporado iter.
>>> a = [1, 2]
>>> iterador = iter(a)
>>> siguiente(iterador)
1
>>> siguiente(iterador)
2
>>> siguiente(iterador)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
DetenerIteración
>>>
¿Qué son los generadores?
Respuesta: Los generadores son las funciones que devuelven un iterador como un objeto generador. Utiliza el rendimiento para generar los datos.
>>> def números(n):
... for i in range(1, n 1):
... yield i
...
>>> _10 = números(10)
>>> siguiente(_10)
1
>>> siguiente(_10)
2
>>> siguiente(_10)
3
>>> siguiente(_10)
4
¿Qué son los espacios de nombres de Python?
Respuesta: Considere la lista de contactos de su teléfono como un espacio de nombres. Puede que tenga varios amigos llamados John, pero especificando un contacto como ‘John Smith’ o ‘John Doe’, puede identificarlos de forma única.
En este ejemplo, los espacios de nombres proporcionan un método para identificar y gestionar entidades con nombres similares de forma diferenciada, evitando así confusiones y conflictos. De forma similar, en Python, los espacios de nombres evitan los conflictos de nombres y ofrecen un enfoque estructurado para organizar variables, funciones, clases y otros identificadores dentro de un programa.
¿Qué es la encapsulación?
Respuesta: Considere un sistema moderno de cerradura de puerta segura. Los mecanismos internos de la cerradura, como el teclado electrónico y el cerrojo motorizado, están encapsulados dentro de la cerradura. Los usuarios interactúan con la cerradura a través de un teclado o una aplicación móvil.
Clase: SecureLock
Atributos:
- access_codes
- estado_cerradura
- configuración_usuario
Métodos:
- introducir_código()
- bloquear()
- desbloquear()
- obtener_estado_del_cierre()
Al encapsular la mecánica de la cerradura, los usuarios pueden disfrutar de una experiencia fácil de usar. Pueden controlar de forma segura el acceso a su propiedad sin tener que manejar las complejidades técnicas dentro de la propia cerradura. La encapsulación garantiza un control eficaz y seguro de la puerta.
En resumen, la encapsulación en Python implica agrupar datos (Variables) y métodos dentro de una clase, donde las variables privadas son accedidas y modificadas sólo a través de métodos. Esta práctica mejora la protección de los datos, la mantenibilidad del código y el diseño general del software.
Explique qué es la herencia y sus tipos.
Conteste: La herencia permite a los programadores crear una clase que puede adquirir los métodos y atributos de otra clase. Existen cinco tipos de herencia:
- Herencia simple: Una clase hereda atributos y métodos de una única clase base.
- Herencia múltiple: Una clase puede heredar de varias clases base, adquiriendo sus atributos y métodos.
- Herencia multinivel: En esta jerarquía, una clase derivada sirve de clase base para otra clase.
- Herencia jerárquica: Varias clases derivadas heredan de una clase base común.
- Herencia híbrida: Una combinación de herencias múltiples y otras formas de herencia.
Cada forma de herencia proporciona un enfoque único para organizar las clases e intercambiar funcionalidad dentro de los programas Python.
Explique el polimorfismo en Python.
Conteste: El polimorfismo en Python tiene un nombre y muchos trabajos. Es como una herramienta con diferentes usos dependiendo de lo que se necesite. Maneja diferentes datos e instrucciones. Imagine que tiene un programa que maneja diferentes formas, como círculos y rectángulos. Quiere calcular sus áreas. En lugar de crear funciones separadas para cada forma, ahí es donde entra en juego el polimorfismo.
clase Forma:
def calcular_área(self):
pass
clase Círculo(Forma):
def __init__(self, radio):
self.radio = radio
def calcular_área(self):
return 3.14159 * radio.self * radio.self
clase Rectángulo(Forma):
def __init__(self, anchura, altura):
self.anchura = anchura
auto.altura = altura
def calcular_área(self):
return auto.anchura * auto.altura
# Usando polimorfismo
formas = [Círculo(5), Rectángulo(4, 6)]
para forma en formas:
área = forma.calcular_área()
print(f "Área: {área}")
En el ejemplo anterior, la clase Forma tiene un método calcular_área(), que se sobrescribe en las clases Círculo y Rectángulo. Aunque esté llamando al mismo método (calculate_area()), se comporta de forma diferente en función del tipo del objeto (polimorfismo). De esta forma, puede manejar diferentes formas utilizando un enfoque unificado.
Explique el multihilo en Python.
Respuesta: Multithreading significa que un procesador realiza muchas tareas a la vez. Incluso en una CPU básica, de una sola parte, maneja esto cambiando rápidamente entre tareas. El módulo de hilos de Python facilita el uso de múltiples hilos. Es como tener diferentes trabajadores trabajando juntos en un programa. He aquí un ejemplo rápido:
importar threading
def tarea1():
# Su tarea aquí
def tarea2():
# Su tarea aquí
thread1 = threading.Thread(target=tarea1)
thread2 = threading.Thread(target=tarea2)
thread1.start()
rosca2.start()
hebra1.join()
hilo2.join()
print("Ambas tareas han finalizado")
Explique cómo gestiona Python la memoria.
Conteste: La gestión de memoria en Python es un lugar de almacenamiento privado donde se guardan todos los elementos y estructuras de Python. El gestor de memoria de Python administra esta área de almacenamiento privado, que realiza varias operaciones de almacenamiento dinámico como compartir, dividir, reservar y almacenar en caché. Este gestor entre bastidores se divide en varias partes, cada una de las cuales aborda un aspecto diferente de la gestión de memoria.
¿Python distingue entre mayúsculas y minúsculas?
Respuesta: Sí, Python es un lenguaje que distingue entre mayúsculas y minúsculas.
¿Qué es el Pythonpath?
Respuesta: Pythonpath actúa como un poste indicador para el intérprete de Python, mostrándole dónde localizar diferentes herramientas y bibliotecas. Piense en ello como un mapa para que Python navegue por su mundo. Mientras que otros lenguajes tienen un sistema similar llamado PATH, Pythonpath es más versátil, conteniendo directorios extra específicamente para los módulos de Python.
¿Qué son los módulos, paquetes y bibliotecas de Python?
Respuesta:
Módulos: Un módulo Python es como una caja etiquetada para sus cosas de código. Guarda funciones, clases y cosas que quiera recordar. También puede poner código dentro de él que se ejecute. Es como tener cajas ordenadas para sus herramientas de código, haciendo su programación más fácil.
Paquetes: Los paquetes son colecciones de módulos relacionados agrupados en una jerarquía de directorios. Le permiten organizar su código a un nivel superior. Un paquete puede contener tanto módulos como subpaquetes. Esto ayuda a crear proyectos más estructurados y organizados.
Bibliotecas: Una biblioteca es una colección de módulos y paquetes. Es como un conjunto de herramientas que ofrece una amplia gama de funcionalidades, permitiéndole realizar diversas tareas sin tener que reinventar la rueda. Las bibliotecas pueden ser incorporadas (proporcionadas por el propio Python) o externas (creadas por otros desarrolladores). – hacer que suene sencillo y comprensible.
¿Qué son los clasificadores?
Respuesta: Un clasificador es como una herramienta inteligente en el aprendizaje automático que averigua a qué categoría pertenece algo observando sus características únicas. Por ejemplo, supongamos que tiene un grupo de frutas: manzanas, plátanos y naranjas. Cada fruta tiene características como el color, la forma y el tamaño. Un clasificador, en este caso, sería como un identificador de frutas. Examina las características y decide si una fruta es una manzana, un plátano o una naranja.
¿Qué es el ámbito en Python?
Respuesta: En Python, el ámbito y el espacio de nombres van de la mano. El ámbito decide dónde funciona un nombre en su programa. Imagíneselo como áreas donde un nombre tiene sentido. Estas áreas se controlan mediante diccionarios, como listas que emparejan nombres con cosas. Estas listas se llaman espacios de nombres.
¿Qué es la resolución de ámbito?
Respuesta: La resolución de ámbito es una idea vital en Python. Decide cómo el programa resuelve las variables y los nombres a medida que usted escribe su código. Todo este proceso da forma a dónde puede usar las variables en su programa. Saber cómo maneja Python los ámbitos es fundamental para crear código que sea ordenado, rápido y sin fallos.
¿Cuáles son las características importantes de Python?
Respuesta: Python es un lenguaje de programación orientada a objetos que ofrece numerosas características para aligerar la carga a los desarrolladores. He aquí una lista de algunas de las mejores características:
- Fácil de aprender y leer
- Lenguaje de programación de tipado dinámico
- Código abierto
- Amplia biblioteca
- Fuerte apoyo de la comunidad
- Soporte GUI
- Adaptabilidad a múltiples plataformas
- Gestión eficaz de la memoria
¿Cuáles son los tipos de operadores en Python?
Respuesta: Los operadores se emplean para realizar acciones sobre variables y valores. En Python, los operadores se clasifican en los siguientes grupos:
- Operadores aritméticos
- Operadores de asignación
- Operadores de comparación
- Operadores lógicos
- Operadores de identidad
- Operadores de pertenencia
- Operadores bit a bit
¿Cuáles son las distintas opciones de unión disponibles en Pandas y cuáles son sus propósitos?
Respuesta: En Pandas, la operación join combina dos o más DataFrames basándose en sus índices o columnas. Hay varios tipos de joins disponibles, cada uno con un propósito distinto:
- Inner Join: Combina filas coincidentes de ambos DataFrames.
- Unión izquierda: Mantiene todas las filas del DataFrame izquierdo y las filas coincidentes del derecho.
- Unión derecha: Mantiene todas las filas del DataFrame derecho y las filas coincidentes del izquierdo.
- Unión externa: Combina todas las filas de ambos DataFrame, rellenando los valores que faltan con NaN.
- Concatenación: Apila los DataFrames verticalmente o uno al lado del otro.
Estas opciones de unión ofrecen múltiples posibilidades para combinar datos de numerosas fuentes para satisfacer necesidades analíticas específicas.
¿Qué son las pruebas unitarias en Python?
Respuesta: Las pruebas unitarias sirven como pequeñas comprobaciones que creamos para ver si nuestro código está haciendo bien su trabajo. Elegimos una cosa, como una función, y la probamos por separado. Estas comprobaciones son súper importantes porque nos ayudan a asegurarnos de que nuestro código funciona correctamente y a encontrar cualquier problema antes de que se convierta en un gran problema.
¿Qué es el unpickling y el pickling?
Respuesta: «Pickling» se refiere a transformar un arreglo de objetos Python en un flujo de bytes, mientras que «unpickling», un flujo de bytes proveniente de un archivo binario u objeto tipo bytes, se transforma de nuevo en un arreglo de objetos.
¿Qué son los decoradores en Python?
Respuesta: En Python, un decorador es como un truco de diseño que le permite mejorar un objeto existente con habilidades extra sin cambiar cómo está construido. Los decoradores se utilizan normalmente antes de definir una función que desea mejorar.
¿Cómo usar decoradores en Python?
Respuesta: En Python, un decorador es como un truco de diseño que le permite mejorar un objeto existente con habilidades extra sin cambiar cómo está construido. Los decoradores se utilizan normalmente antes de definir una función que desea mejorar.
¿Cómo funciona el operador // en Python?
Respuesta: Se denomina operador de división por el suelo y pertenece a la categoría de operadores aritméticos. Este operador realiza la división y posteriormente redondea el resultado al número entero más cercano. He aquí un ejemplo para que comprenda rápidamente su funcionalidad.
resultado = 10 // 3 # 10 dividido por 3 es 3.333..., pero // redondea hacia abajo a 3
print(resultado) # Salida: 3
resultado = -10 // 3 # -10 dividido por 3 es -3.333..., pero // aún redondea hacia abajo a -4
print(resultado) # Salida: -4
¿Cómo se utiliza la sentencia pass en Python?
Respuesta: La sentencia pass es como un sustituto del código futuro. Cuando se usa, realmente no pasa nada, pero evita que aparezcan errores cuando se supone que no debe haber código vacío. Esta regla se aplica a lugares como bucles, funciones, clases y sentencias if.
Mencione los tipos de secuencias en Python.
Conteste: En Python, las secuencias son como listas ordenadas de elementos con los que se puede trabajar. Existen diferentes tipos de secuencias:
- Listas: Son colecciones en las que puede poner varias cosas en un orden específico.
- Tuplas: Similar a las listas, pero una vez que las crea, no puede cambiar lo que hay dentro.
- Cadenas: Son secuencias de caracteres, que no son más que letras, números y símbolos.
- Rangos: Son secuencias de números que puede generar rápidamente, como contar de un número a otro.
- Bytes y matrices de bytes: Estas secuencias manejan datos binarios, que es como los ordenadores almacenan la información.
Estos diferentes tipos de secuencias son herramientas que ayudan a los programadores a trabajar con los datos de diversas formas.
Explique el parcheo de monos en Python.
Conteste: Monkey patching en Python implica cambiar cómo se comporta un módulo o clase mientras el programa se está ejecutando. Puede añadir, cambiar o sustituir cosas como métodos y funciones sin alterar el código original. El nombre «monkey patching» sugiere que usted está haciendo estos cambios de una manera divertida e informal, como un mono jugando.
¿Cuándo podría utilizar el «monkey patching»? Imagine que utiliza una herramienta (un módulo o una clase) que hace casi lo que usted quiere, pero no del todo. Puede utilizar el monkey patching para retocarla sobre la marcha, arreglando problemas o añadiendo nuevas funciones sin esperar a una actualización oficial. He aquí una explicación más sencilla de cómo funciona el monkey patching:
- Preparándose: Usted empieza por traer la herramienta con la que quiere jugar (importando el módulo o la clase).
- Haciendo cambios: A continuación, puede juguetear con la herramienta añadiendo nuevas partes, ajustando las existentes o incluso intercambiando cosas para que funcione mejor para usted.
- Tiempo de juego instantáneo: Una vez que haya terminado, su herramienta modificada empezará a funcionar de inmediato. Cualquiera que utilice la herramienta después de sus cambios verá las mejoras.
Como sugerencia, utilice el monkey patching sólo cuando realmente lo necesite. Considere otras opciones como hacer nuevas versiones de la herramienta (subclase), mezclar y combinar herramientas (composición), o utilizar características incorporadas de Python (decoradores) para mantener su código ordenado y fiable.
Discuta la diferencia entre Del y Remove().
Respuesta: Tanto «del» como «remove()» se utilizan en Python para eliminar elementos de una lista, pero funcionan de formas ligeramente diferentes:
del es una sentencia de Python, no un método. Elimina un elemento de una lista especificando su índice. Usted proporciona el índice del elemento que desea eliminar. No devuelve el elemento eliminado; sólo lo elimina de la lista.
mi_lista = [10, 20, 30, 40, 50]
del mi_lista[2] # Elimina el elemento en el índice 2 (valor 30)
remove() es un método de lista. Elimina un elemento de la lista especificando su valor. Usted proporciona el valor real del elemento que desea eliminar. Busca la primera aparición del valor especificado y lo elimina. Si el valor no existe en la lista, se produce un error ValueError.
mi_lista = [10, 20, 30, 40, 50]
mi_lista.eliminar(30) # Elimina el elemento con valor 30
Utilice del cuando conozca el índice del elemento que desea eliminar, y utilice remove() cuando conozca el valor del elemento que desea eliminar.
Discuta la diferencia entre append() y extend().
Conteste: En Python, si quiere poner algo nuevo en una lista que ya está ahí, utiliza el método append(). Pero cuando utiliza el método extend(), está tomando cada pieza de un grupo dado y añadiéndolas todas al final de la lista inicial.
¿Cuál es la diferencia entre las funciones range() y xrange()?
Respuesta: La función range() produce una lista que contiene números constantes, mientras que la función xrange() genera un tipo distinto de generador. En cuanto a la eficiencia de memoria, range() utiliza más memoria, mientras que xrange() está diseñada para conservar memoria.
Discuta la diferencia entre Python 2.x y Python 3.x.
Conteste: Python 2.x y Python 3.x son versiones distintas del lenguaje de programación Python. Presentan diferencias notables: Python 3.x emplea una función print (print(«Hola, mundo»)) frente a la sentencia print de Python 2. x (print «Hola, mundo»).
El comportamiento de la división varía; Python 2.x trunca la división de enteros (3 / 2 da 1), mientras que Python 3.x da resultados en coma flotante (3 / 2 da 1,5). El manejo de Unicode también contrasta; Python 3.x trata todas las cadenas como Unicode por defecto, mientras que Python 2.x requiere un prefijo para las cadenas Unicode. La iteración a través de diccionarios también difiere: Python 2.x itera claves (for key in dict), y Python 3.x mantiene este valor por defecto pero introduce alternativas como .keys(), .values(), y .items().
En general, Python 3.x introduce mejoras significativas, como la división mejorada y el manejo de Unicode, por lo que es la opción recomendada para nuevos proyectos.
Discuta la diferencia entre los archivos .py y .pyc.
Conteste: Los archivos PY sirven como contenedores para el código fuente legible por humanos de un programa Python. Contienen las instrucciones, la lógica y los algoritmos que escriben los desarrolladores. Sin embargo, cuando el código Python se ejecuta, pasa por un paso intermedio para su optimización y ejecución más rápida. Aquí es donde entran en juego los archivos .pyc.
Estos archivos contienen el bytecode, que es una representación de nivel inferior de las instrucciones del programa que el intérprete de Python puede ejecutar directamente. Así, mientras que los archivos PY son para que los desarrolladores escriban y lean, los archivos .pyc son generados por el intérprete de Python y utilizados para una ejecución más rápida.
¿Qué es la función split() en Python?
Respuesta: La función split() divide una cadena en una lista, permitiéndole definir el separador. Por defecto, utiliza el espacio en blanco como separador.
¿Qué es la función help()?
Respuesta: La función help() en Python proporciona información sobre un objeto dado cuando se invoca. Acepta un parámetro opcional y proporciona detalles relevantes. En ausencia de un argumento, muestra la consola de ayuda de Python.
¿Qué es la función join()?
Respuesta: La función join() permite crear una cadena uniendo elementos de un iterable, empleando un separador de cadena seleccionado.
¿Qué es la función sub()?
Respuesta: La función sub() forma parte del módulo Expresiones regulares (re) de Python. Proporciona una cadena en la que todas las instancias que coinciden con el patrón especificado se sustituyen por la cadena de sustitución proporcionada.
¿Qué es la función dir()?
Respuesta: La función dir() proporciona una lista de todas las propiedades y métodos pertenecientes a un objeto dado, excluyendo sus valores. Abarca tanto los atributos y métodos definidos por el usuario, como las propiedades inherentes incorporadas que son estándar para todos los objetos.
¿Qué hace object()?
Respuesta: La función object() en Python devuelve un nuevo objeto vacío del tipo de objeto incorporado. El tipo objeto es la clase base para todas las clases en Python. No tiene atributos ni métodos especiales, pero sirve como bloque de construcción fundamental para crear clases personalizadas.
¿Qué es la PEP 8?
Respuesta: PEP 8, o «Python Enhancement Proposal 8», es la guía de estilo para escribir código Python legible y consistente. Esboza convenciones y recomendaciones para formatear el código, convenciones de nomenclatura y organización del código para mejorar la legibilidad y mantenibilidad del código.
¿Qué son *args y *kwargs?
Respuesta: *args permite pasar un recuento flexible de argumentos sin palabras clave, lo que permite realizar operaciones de tupla. Mientras tanto, **kwargs permite enviar argumentos con palabras clave variables como un diccionario, permitiendo operaciones tipo diccionario dentro de una función.
¿Qué es un array Numpy?
Respuesta: Una matriz numpy es una matriz de valores uniformes a la que se accede mediante una tupla de enteros no negativos. El rango de la matriz está determinado por su número de dimensiones, y su configuración está representada por una tupla de enteros que especifica los tamaños a lo largo de cada dimensión.
Discuta la diferencia entre matrices y arrays.
Conteste: Las matrices se estructuran en filas y columnas y contienen principalmente valores numéricos. Destacan en tareas de álgebra lineal como la multiplicación de matrices y la resolución de sistemas de ecuaciones lineales.
Las matrices, aunque versátiles, pueden tener varios tipos de datos además de números, lo que las hace esenciales para la programación de propósito general. Abarcan vectores, matrices y estructuras de mayor dimensión, y sirven como herramientas fundamentales para la representación y manipulación de datos en campos tan diversos como el procesamiento de imágenes, la informática científica y el aprendizaje automático.
Discuta la diferencia entre una lista y una tupla.
Conteste: Las tuplas y las listas se diferencian principalmente en su mutabilidad. Las tuplas son estáticas y no pueden modificarse, mientras que las listas pueden sufrir cambios. En Python, es posible alterar una lista, pero la inmutabilidad de las tuplas garantiza que su contenido permanezca inalterado tras su creación.
Discuta la diferencia entre NumPy y SciPy.
Conteste: NumPy y SciPy son ambas bibliotecas de Python muy utilizadas para la computación científica y numérica.
NumPy proporciona la base para los cálculos numéricos mediante operaciones con matrices, mientras que SciPy amplía sus capacidades ofreciendo funciones especializadas para una amplia gama de aplicaciones científicas y de ingeniería. A menudo se utilizan conjuntamente para cubrir un amplio espectro de necesidades de cálculo numérico y científico en Python.
¿Cómo añadir valores y eliminar valores a un array en Python?
Respuesta: En Python, las matrices pueden manipularse fácilmente mediante listas, una estructura de datos fundamental. Añadir elementos es sencillo: el método append() añade un valor al final de la lista, mientras que el método insert() inserta un valor en un índice especificado.
Eliminar elementos es igualmente intuitivo: el método remove() borra la primera aparición de un valor, y el método pop() elimina un elemento en un índice dado y devuelve su valor.
Además, la sentencia del puede utilizarse para eliminar elementos por índice o para borrar toda la lista. Estas técnicas proporcionan medios flexibles para modificar arrays, adaptándolos a necesidades de programación específicas. Para operaciones más complejas con matrices, bibliotecas como NumPy ofrecen funcionalidades avanzadas.
¿Cómo se crea una clase en Python?
Respuesta: Para crear una clase en Python, se utiliza la palabra clave class seguida del nombre de la clase y dos puntos. El cuerpo de la clase está sangrado y contiene los atributos y métodos que definen la clase. He aquí un ejemplo sencillo de una clase Persona con un constructor y un método:
clase Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def saludar(self):
print(f "Hola, me llamo {self.name} y tengo {self.age} años.")
# Crear una instancia de la clase Persona
persona1 = Persona("Alicia", 30)
# Llamando al método greet
persona1.saludar()
Esto crea una clase llamada Persona con un inicializador que establece los atributos nombre y edad y un método saludar que imprime un saludo utilizando dichos atributos.
Explique cómo localizar las posiciones de los valores divisibles por tres en una Serie utilizando Python.
Respuesta: Para localizar las posiciones de los valores que son divisibles por tres en una serie utilizando Python, puede utilizar la biblioteca «Pandas». En primer lugar, debe crear una serie con sus datos y, a continuación, utilizar la indexación booleana para filtrar las posiciones en las que los valores son divisibles por tres.
importar pandas como pd
# Crear una serie con algunos datos
datos = [10, 5, 9, 12, 6, 8, 3, 7, 18]
mi_serie = pd.Serie(datos)
# Encontrar las posiciones donde los valores son divisibles por tres
posiciones_divisibles_por_tres = mis_series[mis_series % 3 == 0]
# Imprimir las posiciones
print("Posiciones de los valores divisibles por tres:", divisible_por_tres_posiciones)
¿Cómo hallar la distancia euclídea entre dos series en Python?
Respuesta: La expresión «norm(x-y))» calcula la distancia euclídea entre dos objetos serie utilizando la función np.linalg.norm() de la biblioteca NumPy. Esta función calcula la distancia euclídea evaluando la norma entre los vectores creados a partir de los valores ‘x’ e ‘y’.
Explique cómo cambiar una subcadena por una nueva cadena en Python.
Responda: Utilice el método replace() para sustituir subcadenas. Indique la cadena original ‘old’ como parámetro inicial y la cadena de sustitución ‘new’ como segundo parámetro. Para eliminar ‘vieja’, establezca ‘nueva’ como cadena vacía «.
Explique cómo copiar objetos en Python.
Responda: En Python, el operador = se emplea para crear una réplica de un objeto. Sin embargo, puede interpretarse erróneamente como que produce un objeto completamente nuevo, lo cual no es exacto. En su lugar, produce una nueva variable que hace referencia al mismo objeto que el original. Para ejemplificarlo, imagine una situación en la que creamos una lista llamada «lista_antigua» y luego asignamos la referencia del objeto a «lista_nueva» utilizando el operador =.
¿Cómo puedo leer y escribir archivos en Python?
Respuesta: En Python, puede leer y escribir archivos utilizando la función incorporada open(), que proporciona varios modos para el procesamiento de archivos.
¿Cuáles son los distintos modos disponibles para el procesamiento de archivos?
Respuesta: La función open() le permite especificar diferentes modos para el procesamiento de archivos. Estos son algunos de los modos más utilizados:
- ‘r’: Modo lectura (por defecto) abre el archivo para su lectura.
- ‘w’: El modo de escritura abre el archivo para escribir (crea un archivo nuevo o trunca uno existente).
- ‘a’: El modo Añadir abre el archivo para escribir (añade a un archivo existente sin truncar).
- ‘b’: Modo binario para leer o escribir datos binarios (por ejemplo, imágenes, archivos de audio).
- ‘t’: Modo texto (por defecto) para leer o escribir datos de texto.
- ‘x’: El modo de creación exclusiva crea un nuevo archivo pero genera un error si ya existe.
- ‘ ‘: Modo de actualización tanto para lectura como para escritura.
¿Puede escribir un programa en Python para generar la secuencia de Fibonacci?
Respuesta: Programa Python para generar la secuencia de Fibonacci hasta un número especificado de términos:
def generar_fibonacci(n):
secuencia_fibonacci = [0, 1] # Inicializar con los dos primeros términos
while len(secuencia_fibonacci) < n:
siguiente_termino = secuencia_fibonacci[-1] secuencia_fibonacci[-2]
fibonacci_sequence.append(siguiente_termino)
return secuencia_fibonacci
# Obtener el número de términos del usuario
num_terms = int(input("Introduzca el número de términos Fibonacci a generar: "))
# Generar e imprimir la secuencia de Fibonacci
secuencia_fibonacci = generar_fibonacci(num_terms)
print("Secuencia Fibonacci:", secuencia_fibonacci)
Cuando ejecute este programa, le pedirá que introduzca el número de términos de Fibonacci que desea generar y, a continuación, mostrará la secuencia generada.
Por ejemplo, si introduce 10, la salida podría ser
Introduzca el número de términos de Fibonacci a generar: 10
Secuencia de Fibonacci: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
¿Puede escribir un programa en Python que compruebe si una secuencia es un palíndromo?
Respuesta: Programa en Python que comprueba si una secuencia dada es un palíndromo utilizando recursividad:
def es_palindrome_recursivo(secuencia):
secuencia = secuencia.inferior()
secuencia = ''.join(filtro(str.isalnum, secuencia))
si len(secuencia) <= 1:
return True
si secuencia[0]!= secuencia[-1]:
return False
return is_palindrome_recursive(secuencia[1:-1])
secuencias_prueba = ["coche de carreras", "hola", "¡Un hombre, un plan, un canal, Panamá!", "12321"]
para secuencia en secuencias_de_prueba:
if is_palindrome_recursive(secuencia):
print(f"'{secuencia}' es un palíndromo.")
si no:
print(f"'{secuencia}' no es un palíndromo."):
¿Puede escribir un programa en Python para sumar dos enteros positivos sin utilizar el operador más?
Respuesta: En el siguiente programa, la función add_without_plus_operator toma dos enteros positivos, a y b, como entrada y simula el proceso de suma utilizando operaciones a nivel de bit (&, ^, <<). El bucle continúa hasta que no queda ningún acarreo (es decir, b se convierte en 0), y la suma final se almacena en a.
Puede sustituir los valores de num1 y num2 por sus propios enteros positivos para probar el programa con diferentes entradas.
def sumar_sin_operador_plus(a, b):
while b != 0:
carry = a & b
a = a ^ b
b = carry << 1
devolver a
# Casos de prueba - ¡Proporcione sus números para probar!
num1 = 25
num2 = 37
suma_resultado = suma_sin_operador_plus(num1, num2)
print(f "La suma de {num1} y {num2} es: {suma_resultado}")
¿Puede escribir un programa en Python para invertir una lista?
Respuesta: Sí, se puede escribir un programa Python para invertir una lista utilizando la función «reversed()»,
def lista_invertida(lst):
return lista(invertida(lst))
# Prueba
lista_original = [1, 2, 3, 4, 5]
lista_invertida = lista_invertida_builtin(lista_original)
print("Lista original:", lista_original)
print("Lista invertida (usando reversed()):", lista_invertida)
También puede leer cómo invertir una lista en Python para hacerla girar hacia atrás.
¿Qué biblioteca de Python está construida sobre Matplotlib y Pandas para facilitar el trazado de datos?
Respuesta: Seaborn, construida sobre Matplotlib, es una biblioteca Python ampliamente utilizada para la visualización de datos, que ofrece sofisticadas herramientas para generar gráficos para sus datos. Con una gran variedad de funciones, Seaborn le permite crear gráficos impresionantes utilizando notablemente menos líneas de código en comparación con Matplotlib. Sus capacidades mejoradas permiten la creación de visuales convincentes con notable facilidad.
¿Qué es un marco de datos pandas?
Respuesta: Un Pandas DataFrame es como una tabla flexible para datos. Tiene filas y columnas, y se puede cambiar su tamaño. Es una forma de organizar los datos ordenadamente en una rejilla, igual que ordenar las cosas en filas y columnas en un trozo de papel.
¿Cómo combinar marcos de datos en Pandas?
Respuesta: En Pandas, puede combinar marcos de datos utilizando varios métodos dependiendo de sus necesidades específicas. Aquí, voy a utilizar el método Appending (df.append()): Este método se utiliza para añadir filas de un marco de datos a otro.
# Ejemplo de marcos de datos
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
# Añada df2 a df1
resultado = df1.append(df2)
¿Qué es un matraz?
Respuesta: Flask, un marco de aplicaciones web escrito en Python, surgió de los esfuerzos de colaboración de entusiastas internacionales de Python bajo el liderazgo de Armin Ronacher, parte del grupo Poocco.
Aprovechando el conjunto de herramientas WSGI de Werkzeug y el motor de plantillas Jinja2, ambos proyectos de Poocco, flask ofrece un módulo Python que agiliza el desarrollo de aplicaciones web. Su característica definitoria es un núcleo conciso y fácilmente ampliable, que lo distingue como un microframework que omite intencionadamente características como un ORM (gestor relacional de objetos).
¿Qué es Django?
Respuesta: Django es un marco web basado en Python que permite el desarrollo rápido de sitios web seguros y mantenibles. Funciona bajo el modelo arquitectónico model-template-views y está disponible como recurso de código abierto. La Django Software Foundation, un establecimiento independiente de Estados Unidos, es responsable de su conservación y mantenimiento.
Mencione algunas ventajas de Django.
Respuesta: Django ofrece varias ventajas que lo convierten en una opción popular para el desarrollo web:
- Mejor conectividad CDN
- Gestión de contenidos eficiente
- Desarrollo ágil
- ORM (Mapeo Objeto-Relacional)
- Motor de plantillas versátil
- Escalable
- Características de seguridad
En general, la combinación de Django de desarrollo rápido, escalabilidad, seguridad y amplio conjunto de herramientas lo convierten en un marco valioso para la construcción de una amplia gama de aplicaciones web.
Explique la arquitectura de Django.
Responda: Django sigue el patrón arquitectónico Modelo-Vista-Controlador (MVC), pero en el contexto de Django, a menudo se denomina Modelo-Vista-Plantilla (MVT).
La arquitectura MVT consta de tres componentes principales: Modelos, Vistas y Plantillas, junto con componentes adicionales para el manejo de URLs y formularios.
- Modelos: Definen la estructura de los datos y las interacciones con la base de datos.
- Vistas: Manejan la lógica, procesan las solicitudes y generan respuestas.
- Plantillas: Generan HTML para la interfaz de usuario.
- Despachador de URL: Asigna las URL a las vistas.
- Formularios: Recoge y valida las entradas del usuario.
- Middleware: Procesa las peticiones y respuestas de forma global.
- Archivos estáticos y multimedia: Gestiona los archivos estáticos y los cargados por el usuario.
Esta estructura promueve una separación limpia de preocupaciones, simplificando el desarrollo de aplicaciones web.
¿Qué es una sesión Django?
Respuesta: Las sesiones en Django (y en gran parte de la web) sirven como medio para mantener un registro del «estado» entre un sitio web y un navegador específico. A través de las sesiones, se puede retener información variada para cada navegador, asegurando su accesibilidad al sitio web siempre que el navegador establezca una conexión.
¿Qué es GIL?
Respuesta: El bloqueo global de intérprete de Python (GIL) funciona como un bloqueo de proceso utilizado por Python cuando maneja procesos. En Python, normalmente se emplea un único hilo para ejecutar una secuencia de instrucciones codificadas. Esto implica que sólo un hilo puede ejecutarse a la vez dentro de Python. La razón del rendimiento comparable de los procesos con un único hilo y con varios hilos en Python puede atribuirse a la existencia del GIL.
¿Qué es PIP?
Respuesta: PIP, abreviatura de «Pip Instala Paquetes», es un instalador de paquetes para Python. Se utiliza para gestionar e instalar fácilmente paquetes de software y bibliotecas desde el Python Package Index (PyPI) y otras fuentes.
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. Sin embargo, no se limita al conjunto de preguntas que hemos tratado en este artículo.
Una forma de estar preparado mientras aprende es hacerse preguntas sobre diferentes temas. Intente hacer diferentes tipos de preguntas a partir de un concepto. Y respóndalas usted mismo. De esta forma, probablemente no le sorprenderán las preguntas en la entrevista. También puede consultar el compilador de Python en línea para practicar el código.
Le deseo lo mejor en su próxima entrevista sobre Python 👍