Prueba Técnica para Programador Junior - Python
Duración total: 30 minutos
Objetivo: Evaluar conocimientos básicos de programación orientada a objetos, lógica de programación y uso de estructuras de datos en Python.
- Por favor leer claramente las instrucciones antes de empezar
- Crea un fork de este repositorio y trabaja en tu propio espacio
Parte 1: Programación Orientada a Objetos (15 puntos)
Duración recomendada: 15 minutos
Clase Producto (15 puntos)
Crea una clase Producto con los siguientes atributos y métodos:
Atributos:
- nombre (str)
- precio (float)
- cantidad (int)
Métodos:
- __init__: Inicializa los atributos.
calcular_total: Devuelve el precio total del producto (precio × cantidad).
Implementa un método __str__ para mostrar la información del producto en el formato:
=Nombre, precio=Precio, cantidad=Cantidad) Producto(nombre
Ejemplo de uso:
= Producto("Laptop", 1500.0, 2)
p1 print(p1.calcular_total()) # 3000.0
print(p1) # Producto(nombre=Laptop, precio=1500.0, cantidad=2)
Parte 2: Lógica de Programación y Estructuras de Datos (15 puntos)
Fibonacci Recursivo (10 puntos)
Escribe una función fibonacci(n) que calcule el n-ésimo número de la secuencia de Fibonacci de forma recursiva.
La secuencia de Fibonacci es:
0, 1, 1, 2, 3, 5, 8, ….
Ejemplo de uso:
print(fibonacci(6)) # 8
Análisis de texto (5 puntos)
Crea una función analizar_texto(texto) que reciba un texto como cadena y devuelva un diccionario con:
- Número de palabras.
- Número de letras.
Ejemplo de uso:
= "Hola mundo"
texto print(analizar_texto(texto))
# {'palabras': 2, 'letras': 9}
- Puntaje total: 30 puntos
- Aprobación mínima: 20 puntos
Criterios de Evaluación
Parte 1: Programación Orientada a Objetos (15 puntos)
Definición de clase y atributos (3 puntos):
- La clase Producto está correctamente definida con los atributos nombre, precio, y cantidad.
Método __init__ (3 puntos):
- El constructor inicializa correctamente los atributos.
Método calcular_total (4 puntos):
- Calcula correctamente el precio total (precio × cantidad).
Método __str__ (5 puntos):
- Devuelve una representación clara y en el formato especificado:
=Nombre, precio=Precio, cantidad=Cantidad) Producto(nombre
- No hay errores al mostrar el objeto con print().
Parte 2: Lógica de Programación y Estructuras de Datos (15 puntos)
- Fibonacci Recursivo (10 puntos):
Lógica correcta (6 puntos):
- La función calcula correctamente el n-ésimo número de Fibonacci.
Eficiencia básica (2 puntos):
- Se aplica recursividad correctamente sin errores de lógica.
Resultados esperados (2 puntos):
- La función produce los resultados esperados para diferentes valores de n.
- Análisis de Texto (5 puntos):
Cálculo del número de palabras (2 puntos):
- Se cuenta correctamente el número de palabras en el texto.
Cálculo del número de letras (2 puntos):
- Se cuentan correctamente las letras (excluyendo espacios).
Formato del diccionario (1 punto):
- La función devuelve un diccionario con las claves palabras y letras correctamente estructurado.
Notas de calificación:
- Puntaje total: 30 puntos.
- Aprobación mínima: 20 puntos.
- Errores menores: Se puede restar hasta 1 punto por detalles menores (nombres incorrectos de variables o errores de formato).
- Errores críticos: Fallos que generan excepciones o resultados incorrectos en los ejemplos restan la totalidad de los puntos asignados al criterio correspondiente.