Revisión automática de la práctica 02-enumera
Este es el resultado de una revisión automática de la prácica 02-enumera, 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:
numero = int(input("Introduce un numero entero mayor que 0: "))
impares = []
for i in range (1, numero + 1):
    if i % 2 != 0:
        impares.append(i)
longitud_i = len(impares)
for j in range (longitud_i, 0, -1):
    texto_l = ""
    for k in range (j):
        texto_l += str(impares[k]) + " "
    print(texto_l)
pares = []
for a in range (1, numero + 1):
    if a % 2 == 0:
        pares.append(a)
longitud_a = len(pares)
for j in range (longitud_a, 0, -1):
    texto_a = ""
    for k in range (j):
        texto_a += str(pares[k]) + " "
    print(texto_a)Análisis
Cumple con el enunciado
El programa NO cumple completamente con el enunciado. Aunque implementa la funcionalidad básica de imprimir listas de impares y pares con el patrón requerido, tiene varios problemas:
- Falta validación del número: No verifica si el número introducido es mayor que cero como requiere el enunciado.
- 
Error en el rango de pares: En el segundo bucle for a in range (1, numero + 1):, debería llegar hastanumero + 1para incluir el número si es par, pero el enunciado dice "menores o iguales", lo cual se cumple, sin embargo la implementación actual sí incluye números pares menores o iguales al número especificado.
- Mensaje de entrada diferente: Usa un mensaje diferente al del enunciado.
Es fácil de leer y entender
El programa es moderadamente fácil de entender para principiantes:
- Los nombres de variables son descriptivos (impares,pares,numero)
- La estructura lógica es clara: construir listas y luego imprimirlas
- La indentación es correcta
Sin embargo, podría ser más legible:
- Hay duplicación de código entre las secciones de impares y pares
- Los bucles anidados pueden resultar confusos para principiantes
- Falta una línea en blanco entre las dos secciones principales
Sigue buenas prácticas de programación
El programa sigue parcialmente las buenas prácticas:
Aspectos positivos:
- Uso de listas para almacenar datos temporalmente
- Bucle for con rango bien definido
- Concatenación de strings para construir las líneas de salida
Aspectos a mejorar:
- No valida la entrada del usuario
- Hay repetición de lógica entre las dos secciones principales
- No usa join()para construir las cadenas de salida (más eficiente y legible)
- Faltan espacios en blanco para mejorar la legibilidad visual
Recomendaciones de mejora
- Añadir validación de entrada:
numero = int(input("Dame un número entero mayor que 0: "))
if numero <= 0:
    print("El número debe ser mayor que 0")
    exit()- 
Mejorar la construcción de las líneas de salida usando join():
for j in range(longitud_i, 0, -1):
    print(" ".join(str(impares[k]) for k in range(j)))- 
Añadir una línea en blanco entre las secciones de impares y pares para mejor separación visual. 
- 
Considerar usar una función auxiliar para evitar la repetición de código (aunque esto es opcional ya que aún no han visto funciones). 
- 
Mejorar los nombres de variables en el segundo bloque para que sean más consistentes ( jykse repiten pero en contextos diferentes).
- 
Revisar el mensaje de entrada para que coincida exactamente con el del enunciado.