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:
palabras = ["hola", "adios", "¿hola que tal?"]
print("Lista:", palabras)
print("Permutaciones:")
for x in palabras:
for y in palabras:
for z in palabras:
if x != y and x != z and y != z:
print(x, y, z)
Análisis
Cumple con el enunciado
Sí, el programa genera todas las permutaciones posibles de los tres elementos de la lista sin repeticiones (6 combinaciones), como se observa en la salida de ejemplo. La condición x != y and x != z and y != z asegura que no haya elementos repetidos en cada permutación, cumpliendo con la definición matemática de permutaciones.
Es fácil de leer y entender
Sí, el uso de tres bucles for anidados con variables x, y, z y una condición clara refleja directamente el problema a resolver. Para un caso específico de tres elementos (como el ejemplo del enunciado), la estructura es intuitiva y accesible para principiantes.
Sigue buenas prácticas de programación
Sí, el código utiliza únicamente estructuras básicas aprendidas (bucles anidados y condicionales) sin añadir complejidad innecesaria. Aunque no es escalable para listas de tamaño variable, esto es aceptable dado que el enunciado parece enfocarse en una lista de tres elementos específicos.
Recomendaciones de mejora
-
Especificar el contexto en comentarios: Añade un comentario al inicio indicando que el código está diseñado exclusivamente para listas de tres elementos, como el ejemplo del enunciado. Por ejemplo:
# Solo válido para listas de 3 elementos (ejemplo del enunciado). -
Prevenir errores por tamaño de lista: Si el enunciado permite listas de otros tamaños, considera validar que la lista tenga exactamente tres elementos antes de ejecutar los bucles (aunque en esta práctica el foco es el caso específico de tres elementos).
-
Uso de
itertoolspara aprendizaje futuro: En programas reales, se recomendaría usaritertools.permutationspara evitar bucles anidados manuales, pero para esta práctica es correcto resolverlo con bucles como se ha hecho.