Skip to content

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.


Comprobación de archivos con extension '.py'

Archivos encontrados, que no son : permutaciones.py

Correcto, se elige permutaciones.py para el análisis

Comprobación con ficheros de solución

Los archivos son diferentes de los de la solución.

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

No cumple completamente. El enunciado pide imprimir cada permutación en una línea separada, con los strings unidos por espacios (ej: Hola Qué tal Adiós). Sin embargo, el programa imprime toda la lista de permutaciones como una sola estructura (ej: Permutaciones: [('Hola', ...), ...]), lo cual no coincide con el formato solicitado. Además, el uso de itertools.permutations evita implementar manualmente el algoritmo de permutaciones, algo que se espera en una práctica para principiantes que deben usar bucles y condicionales básicos.

Es fácil de leer y entender

El código es breve y usa nombres claros, pero no es adecuado para principiantes en este contexto. Los alumnos aún no han visto módulos avanzados como itertools, por lo que depender de funciones externas oculta la lógica fundamental del problema (generar permutaciones con bucles anidados). Esto dificulta entender cómo se construyen las permutaciones paso a paso.

Sigue buenas prácticas de programación

Aunque usar itertools es una buena práctica en proyectos reales, no aplica aquí. La práctica busca reforzar el manejo de bucles y estructuras básicas, no la optimización con librerías. Además, el formato de salida no sigue las especificaciones (debe ser líneas de texto, no una lista de tuplas), lo que incumple requisitos clave del enunciado.

Recomendaciones de mejora

  • Evita itertools: Esta práctica debe resolverse con bucles anidados (ej: for dentro de for) para generar las permutaciones manualmente, como se espera al nivel de los alumnos.
  • Formatea la salida correctamente: Cada permutación debe imprimirse como una cadena de texto con .join() (ej: " ".join(perm)), no como tuplas dentro de una lista.
  • Ajusta el ejemplo base: Si el enunciado inicial usa 3 elementos, empieza con esa lista (['Hola', 'Qué tal', 'Adiós']) y luego, si cumples el requisito básico, explora el caso de 4+ elementos.
  • Imprime línea por línea: Usa un bucle para recorrer cada permutación y mostrarla en una nueva línea, tal como muestra el ejemplo del enunciado.