Solución a la pregunta 7 de Practicando estructuras condicionales:
Solución a la pregunta 7 de Practicando estructuras condicionales:
Hola, Benjamin, espero que estés bien
Parece que tu código está casi correcto, pero hay un pequeño error en la validación del número entero. Cuando usas num_str.lstrip('-').isdigit(), esto permite que números negativos pasen la validación, pero luego intentas convertir el número a entero sin considerar el signo negativo.
Aquí tienes una versión corregida:
while True:
num_str = input("Introduce un número entero: ")
if num_str.lstrip('-').isdigit():
numero = int(num_str)
break
else:
print("Error, introduce solo un número entero.")
if numero % 3 == 0 and numero % 5 == 0:
print("¡Número mágico!")
elif numero % 3 == 0:
print("Divisible por 3")
elif numero % 5 == 0:
print("Divisible por 5")
else:
print("No es un número mágico")
Este código debería funcionar correctamente para números positivos y negativos. La función lstrip('-') elimina el signo negativo solo para la validación, pero luego se convierte correctamente a un entero con int(num_str).
Espero haber ayudado y buenos estudios!