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:

import itertools

lista = ['Hola' , 'Qué tal' , 'Adiós']
print('lista:', lista)
print('Permutaciones:')

for p in itertools.permutations(lista):
    print(' '.join(p))

lista = ['Uno' , 'Dos' , 'Tres' , 'Cuatro']
print('lista:', lista)
print('Permutaciones:')

for p in itertools.permutations(lista):
    print(' '.join(p))

Análisis

Cumple con el enunciado

No cumple. El programa utiliza la biblioteca itertools para generar permutaciones, pero el enunciado de una práctica introductoria sobre permutaciones espera que se implemente la lógica manualmente con bucles y condicionales (como anidamiento de for o recursión). Usar itertools.permutations evita el objetivo pedagógico de entender cómo funcionan las permutaciones desde cero.

Es fácil de leer y entender

Sí cumple. El código es claro: define listas explícitas, usa nombres sencillos y estructura los bucles de forma ordenada. La salida incluye mensajes descriptivos como "lista:" y "Permutaciones:", lo que facilita seguir la ejecución.

Sigue buenas prácticas de programación

Parcialmente cumple. Aunque el formato es limpio, en el contexto de una práctica para principiantes no es adecuado usar itertools. La buena práctica aquí sería implementar la lógica con herramientas básicas (bucles anidados, listas), ya que el objetivo es reforzar conceptos fundamentales, no depender de bibliotecas avanzadas.

Recomendaciones de mejora

  • Evita itertools: Reemplaza itertools.permutations con bucles anidados (por ejemplo, usando for para recorrer índices y combinar elementos manualmente). Esto cumple con el objetivo de la práctica: entender cómo se generan permutaciones.
  • Generaliza el código: En lugar de repetir el mismo bloque para dos listas distintas, crea una función generar_permutaciones(lista) que reciba cualquier lista y muestre sus permutaciones. Esto evita duplicar código.
  • Explica la lógica: Añade comentarios breves que describan cómo funcionan los bucles para generar permutaciones (ej: "Primer bucle elige el primer elemento, segundo bucle el segundo, etc."). Esto ayuda a reforzar el aprendizaje.