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'
- Comprobación con ficheros de solución
- Revisión automática de programa
- Análisis
- Recomendaciones de mejora
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:
lista = ['Hola', 'Qué tal', 'Adiós']
print('Lista:', lista)
print('Permutaciones:')
for i in range(len(lista)):
for j in range(len(lista)):
for k in range(len(lista)):
if i !=j and j != k and k != i:
print(lista[i],lista[j],lista[k])
Análisis
Cumple con el enunciado
El programa genera correctamente las 6 permutaciones para la lista de tres elementos especificada en el enunciado. La salida coincide exactamente con el formato requerido (strings separados por espacios), y el código inicia como se indica con la lista predefinida. Funciona específicamente para el caso solicitado.
Es fácil de leer y entender
Los bucles anidados con variables i, j, k son comprensibles para un principiante al trabajar con una lista pequeña de 3 elementos. La condición if i != j and j != k and k != i es clara y expresa directamente la necesidad de evitar repetir índices, lo que facilita entender cómo se generan las permutaciones.
Sigue buenas prácticas de programación
El código está diseñado exclusivamente para listas de 3 elementos, lo que limita su reutilización. Aunque el enunciado pide resolver el problema para esta lista concreta, en programación es recomendable crear soluciones que dependan del tamaño de los datos (usando len(lista)) en lugar de hardcodear la lógica para un tamaño fijo. Esto se vuelve crítico si se intenta resolver la parte opcional (listas de 4+ elementos).
Recomendaciones de mejora
- Evita hardcodear el número de bucles: El uso de 3 bucles anidados funciona para 3 elementos, pero fallaría para listas más grandes. Para la parte opcional, investiga cómo generar permutaciones dinámicamente (ej: recursión o algoritmos iterativos con pilas), aunque para este ejercicio puntual es aceptable.
-
Mejora la legibilidad de la condición: Aunque correcta, la línea
if i !=j and j != k and k != ipodría separarse en varias líneas con comentarios breves para clarificar su propósito (ej: "# Verificar índices únicos"). -
Prepara el código para cambios futuros: Si modificas la lista a 4 elementos, el programa actual no funcionará. Para ejercicios posteriores, practica enfoques que usen el tamaño de la lista dinámicamente (ej: generar permutaciones con
itertools.permutationsen programas reales, aunque para esta práctica debes evitar su uso).