Skip to content

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:

num = int(input("Escribe un número mayor que 0"))

if num =< 0:
    print("El número debe ser mayor que 0")

else:
    for algo in range (num , 1 , -3)
    print(algo)
    
    

Análisis

Cumple con el enunciado

No, el programa no cumple con el enunciado por varios errores:

  • Error de sintaxis: if num =< 0: es inválido; debería ser if num <= 0:. Además, falta un colon (:) después del if y del for.
  • Bucle incorrecto: El bucle for algo in range(num, 1, -3) no genera los números impares ni pares como se requiere. Para n=5, imprimiría "5 2" (no los impares en orden ascendente).
  • Falta de lógica para pares: El código solo intenta imprimir números relacionados con impares, pero no hay nada para los pares.
  • Formato de salida: La salida no coincide con el enunciado. No se separan las listas con espacios ni saltos de línea.

Es fácil de leer y entender

No, es difícil de leer porque:

  • La variable algo no describe su propósito.
  • Faltan comentarios explicativos.
  • La indentación es incorrecta (el print(algo) está fuera del bucle).
  • El prompt de entrada es diferente al del enunciado (debería ser "Dame un número entero mayor que 0").

Sigue buenas prácticas de programación

No, no las sigue:

  • Errores de sintaxis básicos (operador mal escrito, falta de dos puntos).
  • Nombres de variables poco descriptivos.
  • No valida la entrada correctamente (el prompt es inconsistente).
  • La lógica del bucle es errónea y no aborda el problema completo.

Recomendaciones de mejora

  • Corrige la sintaxis: Cambia =< a <=, añade los dos puntos en el if y for, y asegura la indentación correcta.
  • Usa nombres descriptivos: Reemplaza algo por algo como num o n.
  • Implementa la lógica de listas correctamente:
    • Para impares: genera una lista de números impares de 1 a n, luego imprime la lista completa y recursivamente la lista sin el último elemento hasta que solo quede 1.
    • Para pares: haz lo mismo con números pares desde 2.
  • Separa las salidas: Imprime una línea vacía entre las secciones de impares y pares.
  • Usa ' '.join() para imprimir números separados por espacios: Esto mejora la legibilidad. Por ejemplo, print(' '.join(map(str, lista))).
  • Verifica el prompt de entrada: Hazlo coincidir con el enunciado: "Dame un número entero mayor que 0".

Recuerda que el programa debe manejar correctamente las listas de números en orden ascendente y descendente, como en los ejemplos.