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 serif num <= 0:. Además, falta un colon (:) después delify delfor. -
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
algono 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 elifyfor, y asegura la indentación correcta. -
Usa nombres descriptivos: Reemplaza
algopor algo comonumon. -
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.