Revisión automática de la práctica 01-permutaciones
Este es el resultado de una revisión automática de la prácica 01-permutaciones, tal y como la hemos recogido de este repositorio de entrega. Por favor, ten en cuenta que al ser una revisión automática, realizada con la ayuda de un asistente de inteligencia artificial generativa, puede incluir errores, y ser incorrecta. Pero leela con atención, porque creemos que puede tener información útil. Si tienes cualquier duda, o crees que la revisión es errónea, por favor, consulta con los profesores de la asignatura.
Revisión automática de programa
Programa revisado:
#!/usr/bin/env python3
from itertools import permutations
lista = ["Hola","Qué tal","Adiós"]
print('Lista:', lista)
print('Permutaciones:', list(permutations(lista)))
Análisis
Cumple con el enunciado
El enunciado de la práctica indica que el programa debe generar permutaciones sin utilizar la biblioteca itertools. Sin embargo, este código depende directamente de itertools.permutations para resolver el problema, lo que evita que el alumno implemente la lógica manualmente mediante bucles anidados u otros métodos básicos.
Es fácil de leer y entender
El código es breve y utiliza nombres claros para la lista (lista) y las funciones de itertools. Las instrucciones están ordenadas y los print muestran los resultados de forma directa. No obstante, carece de comentarios explicativos que ayuden a entender el propósito de cada línea, especialmente para alumnos principiantes.
Sigue buenas prácticas de programación
Aunque el código funciona, su uso de itertools va en contra de los objetivos de la práctica. Además, no se validan posibles errores (como listas vacías) ni se estructura la lógica en funciones reutilizables. Para una práctica introductoria, se espera que el alumno demuestre comprensión de bucles y condicionales en lugar de recurrir a bibliotecas externas.
Recomendaciones de mejora
-
Evitar
itertools:
Reemplazaritertools.permutationscon una implementación manual usando bucles anidados o recursión, como se requiere en la práctica. Por ejemplo, usarforpara iterar sobre los elementos y generar combinaciones válidas. -
Mejorar la claridad con comentarios:
Añadir comentarios que expliquen cómo se generan las permutaciones y el propósito de cada sección del código, especialmente para quienes revisen el programa posteriormente. -
Usar nombres más descriptivos:
Cambiarlistapor un nombre más específico, comomensajesoelementos, para reflejar el contenido real de la lista. -
Validar entradas básicas:
Asegurarse de que la lista no esté vacía antes de intentar generar permutaciones, para evitar errores inesperados. -
Estructurar en funciones:
Separar la lógica en funciones (ej.generar_permutaciones) para facilitar la reutilización y el testing, aunque esto no sea explícitamente requerido por el enunciado.