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.

Divide los dígitos / muestra la suma

Este es mi código hasta ahora, pero cuando ejecuto sumofdigits(“45ggd”) obtengo el siguiente resultado:

La suma de los dígitos es 9.

Los caracteres no numéricos extraídos son: [‘ggd’]

9

Como me gustaría que fuera:

La suma de los dígitos es 4 + 5.

Los caracteres no numéricos extraídos son: [‘g’, ‘g’, ‘d’]
9
“`
def sum<em>of</em>digits(string):

<pre><code>sum_digits = 0
extracted_alphas = ""

for char in string:
if char.isdigit() == True:
sum_digits += int(char)

elif char.isalpha():
extracted_alphas += char

else:
if (len(string)==0):
sum_digits = ""
print("¡Se ingresó una cadena vacía!")
return 0

elif char.isdigit() == False:
print("¡La operación de suma de dígitos no pudo detectar un dígito!")
print("Las letras ingresadas son: ['" + str(extracted_alphas) + "']")
return 0

print("La suma de los dígitos es", sum_digits,".")
print("Los caracteres no numéricos extraídos son: ['" + str(extracted_alphas) + "']")
return sum_digits
</code></pre>

“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para mostrar la suma de los dígitos en el formato deseado, cambie la línea de código:

    print("The sum of digits is", sum_digits,".")
    

    a:

    print("The sum of digits is " + " + ".join(str(char) for char in string if char.isdigit()) + " = " + str(sum_digits) + " .")
    

    Esto mostrará la suma de los dígitos en el formato “The sum of digits is 4 + 5 = 9 .” para la entrada “45ggd”.

    El código actualizado se ve así:

    def sum_of_digits(string):
    
        sum_digits = 0
        extracted_alphas = ""
    
        for char in string:
            if char.isdigit() == True:
                sum_digits += int(char)
    
            elif char.isalpha():
                extracted_alphas += char
    
        else:
            if (len(string)==0):
                sum_digits = "" 
                print("¡Se ingresó una cadena vacía!")     
                return 0 
    
            elif char.isdigit() == False:
                print("¡La operación de suma de dígitos no pudo detectar un dígito!")
                print("Las letras devueltas son: ['" + str(extracted_alphas) + "']")
                return 0
    
        print("The sum of digits is " + " + ".join(str(char) for char in string if char.isdigit()) + " = " + str(sum_digits) + " .")
        print("Los no dígitos extraídos son: ['" + str(extracted_alphas) + "']")
        return sum_digits
    

Comments are closed.