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 en parte 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:
from itertools import permutations
lista = ['Hola', 'Que tal', 'Adios', 'Buenos días', 'Buenas noches']
print('Lista:', lista)
todas_las_permutaciones = list(permutations(lista))
print('Permutaciones:', todas_las_permutaciones)
Análisis
Cumple con el enunciado
El programa cumple parcialmente con el enunciado. Utiliza correctamente itertools.permutations para generar todas las permutaciones de la lista, pero no sigue el formato de salida requerido. El enunciado especifica que cada permutación debe imprimirse en una línea separada con los elementos separados por espacios, mientras que el programa actual imprime una lista de tuplas. Además, el programa utiliza los 4 elementos recomendados para la opción avanzada, pero el nombre del archivo no se puede verificar en el código proporcionado.
Es fácil de leer y entender
El programa es conciso y utiliza funciones claras. Sin embargo, la salida raw de permutations() puede resultar confusa para principiantes, ya que muestra estructuras de datos anidadas. La ausencia de un bucle que itere sobre las permutaciones dificultaría la comprensión del proceso de generación.
Sigue buenas prácticas de programación
-
Uso apropiado de librerías: Emplea
itertools.permutationsque es eficiente para este propósito -
Nomenclatura clara: Variables como
listaytodas_las_permutacionesson descriptivas - Eficiencia: Genera todas las permutaciones en una sola operación
- Falta formateo de salida: No adapta la salida al formato requerido
Recomendaciones de mejora
-
Corregir el formato de salida:
for perm in permutations(lista): print(' '.join(perm)) -
Manejo de casos especiales: Agregar validaciones para listas vacías o con un solo elemento
-
Solución sin itertools (opcional):
- Implementar algoritmo básico de permutaciones para reforzar conceptos
- Usar bucles anidados para listas pequeñas (menos de 4 elementos)
- Ejemplo para 3 elementos:
for i in lista: for j in lista: for k in lista: if i != j and i != k and j != k: print(f"{i} {j} {k}")
-
Comentarios educativos: Añadir explicaciones sobre cómo funcionan las permutaciones, útil para principiantes
-
Nombres en español: Considerar variables como
palabrasoelementosen lugar delistapara mayor claridad conceptual
La solución es técnicamente correcta pero necesita ajustes para cumplir completamente con los requisitos de formato y ser más instructive para principiantes.