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 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

listas = ["Buenos dias", "Hoy hace Sol", "Ten una buena tarde", "Adiós"]

permutaciones = list(permutations(listas))

print(permutaciones)

Análisis

Cumple con el enunciado

No cumple.
El programa utiliza itertools.permutations, una herramienta predefinida de Python, para generar las permutaciones. Sin embargo, la práctica está diseñada para que los alumnos implementen manualmente el algoritmo de permutaciones sin recurrir a bibliotecas externas. Esto evita que demuestren comprensión del proceso interno de generación de permutaciones.

Es fácil de leer y entender

Es fácil de leer.
El código es breve y usa estructuras simples. Las variables tienen nombres claros (listas, permutaciones), y la lógica se entiende de forma directa. Sin embargo, el resultado se imprime como una lista de tuplas sin formato, lo que podría dificultar su interpretación visual para un usuario no técnico.

Sigue buenas prácticas de programación

⚠️ Parcialmente.

  • Ventaja: El uso de itertools.permutations es eficiente y evita reinventar la rueda, lo cual sería una buena práctica en un contexto real.
  • Desventaja: No se incluyen comentarios para explicar el propósito del código, y las variables podrían ser más descriptivas (ej. mensajes en lugar de listas). Además, no se estructura el programa en funciones, lo que limita su reusabilidad y claridad.

Recomendaciones de mejora

  1. Evitar itertools
    La práctica requiere implementar permutaciones sin bibliotecas externas. Reemplaza permutations(listas) con bucles anidados o recursión para generar las permutaciones manualmente.

  2. Mejorar nombres de variables
    Usa nombres más específicos, como mensajes en lugar de listas, para clarificar que se trata de frases a permutar.

  3. Dar formato al resultado
    En lugar de imprimir una lista de tuplas, muestra cada permutación en una línea separada para facilitar la lectura:

    for p in permutaciones:
        print(p)
  4. Agregar comentarios
    Explica brevemente cada paso, especialmente si el código se vuelve más complejo al eliminar itertools.

  5. Estructurar en funciones
    Separa la lógica en funciones (ej. generar_permutaciones) para mejorar la organización, incluso si es una solución básica.