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:

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

from itertools import permutations

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

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

Análisis

Cumple con el enunciado

El programa genera y muestra todas las permutaciones posibles de la lista ['Hola', 'Qué tal', 'Adiós'], como se solicita. Sin embargo, usa la biblioteca itertools, lo cual probablemente no cumple con los requisitos de la práctica, ya que el objetivo suele ser implementar permutaciones manualmente con bucles anidados.

Es fácil de leer y entender

⚠️ El código es breve y claro, pero define la lista lista dos veces innecesariamente. Además, el nombre de la variable p en el bucle for no explica su propósito (aunque esto es común en principiantes). La legibilidad podría mejorar con comentarios o nombres más descriptivos.

Sigue buenas prácticas de programación

La redefinición de la lista lista es redundante. También, al usar itertools.permutations, el programa no demuestra el entendimiento de bucles anidados ni de algoritmos de permutación, que probablemente son el foco de la práctica.

Recomendaciones de mejora

  1. Evitar itertools
    El enunciado probablemente espera que las permutaciones se generen manualmente usando bucles anidados (por ejemplo, con for o while). Reemplaza itertools.permutations por una implementación propia.

  2. Eliminar redundancia
    Borra la segunda definición de lista = ['Hola', 'Qué tal', 'Adiós'], ya que ya está declarada antes.

  3. Mejorar nombres de variables
    En lugar de p, usa un nombre como permutacion para aclarar que representa una permutación individual.

  4. Agregar comentarios
    Explica brevemente el propósito del bucle for y la función join, especialmente si el alumno está aprendiendo conceptos básicos.

  5. Usar bucles anidados
    Implementa las permutaciones con bucles for dentro de otros bucles for (por ejemplo, para listas de 3 elementos, como en el ejemplo). Esto refuerza el aprendizaje de estructuras básicas.