es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El bucle while no funciona correctamente en Python.

Escribí este código para sumar los dígitos de un número que es mayor que 10 hasta que el resultado solo tenga un dígito y cuando intento compilarlo, ni siquiera me da un error hasta que lo detengo. Quiero saber cuál es el problema.

number = input()
#sumed_up_digits = result
result = 0

while len(number) != 1:
    for i in number:
        int_i = int(i)
        result = result + int_i

     number = str(result)

print(result)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Problema:

    El problema con este código es que la variable “result” no se reinicia a cero dentro del bucle while. Esto significa que el valor de la iteración anterior se suma al valor de la iteración actual, lo que resulta en un bucle infinito.

    Solución:

    Para solucionar este problema, simplemente agregue la línea “result = 0” dentro del bucle while, antes del bucle for:

    while len(number) != 1:
        result = 0
        for i in number:
            int_i = int(i)
            result = result + int_i
        number = str(result)
    
    print(result)
    

    Esto asegurará que “result” siempre se reinicie a cero antes del bucle for, evitando un bucle infinito.

Comments are closed.