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
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 enunciado de la práctica indica que se deben generar permutaciones sin usar la biblioteca itertools. Este programa utiliza itertools.permutations, lo cual evita que el alumno demuestre comprensión del algoritmo de permutaciones mediante bucles anidados, que es el objetivo principal de la actividad.
Es fácil de leer y entender
El código es breve y claro: define una lista, muestra su contenido y luego imprime todas las permutaciones usando un bucle for. La estructura y los mensajes son intuitivos para un principiante. Sin embargo, al depender de itertools, no enseña cómo funcionan las permutaciones internamente.
Sigue buenas prácticas de programación
Usar itertools es una buena práctica en programas reales, pero no en esta práctica, ya que el objetivo es implementar el algoritmo manualmente. Además, el nombre de la variable (lista) es genérico, pero suficiente para el contexto. No hay comentarios, lo que podría dificultar la comprensión del propósito del código para alguien que no conozca el enunciado.
Recomendaciones de mejora
-
Evitar
itertools
Reemplazarpermutations(lista)con bucles anidados que generen las permutaciones manualmente. Por ejemplo, para una lista de 3 elementos, usar 3 buclesforcon condiciones para evitar repetir índices. -
Explicar el proceso
Añadir comentarios que describan cómo se generan las permutaciones, especialmente si se reescribe el código sinitertools. -
Formatear la salida
Separar las permutaciones con comas o saltos de línea para mejorar la legibilidad (ej.:print(', '.join(p))). -
Usar variables descriptivas
Aunquelistaes válido, un nombre comomensajesoelementospodría ser más claro en este contexto.