Suma de dígitos con Python

Este es un pequeño programa que toma un número entero ingresado por el usuario, extrae sus dígitos uno por uno y los suma. A continuación se expone el código del programa que tan solo tiene 10 líneas.

sumDigit, extNum = 0, 0

numEntero = int(input("Ingrese un numero entero: "))

while numEntero != 0:
    extNum = numEntero % 10
    numEntero //= 10
    sumDigit += extNum

print("La suma de los digitos es: {}".format(sumDigit))

En Python el proceso es un caso especial y más adelante el porqué. En la primera línea creamos 2 variables usando asignación múltiple, esto es posible en Python solo si se cumple la única regla de oro, debe existir un número de valores igual al número de variables y viceversa.

Solicitando y leyendo información ingresada por el usuario.
numEntero = int(input("Ingrese un numero entero: "))

Mostramos en pantalla un mensaje solicitando al usuario que ingrese un número y lo leemos con la función input() sin necesidad de usar la función print() para mostrar mensaje, ya que se pasa como argumento a la función input(). Hay que convertir el valor a tipo int usando la función int() ya que se lee como un string.

Bucle while, el proceso de la información
while numEntero != 0:
    extNum = numEntero % 10
    numEntero //= 10
    sumDigit += extNum

El bucle while va a iterar mientras que el valor de numEntero sea diferente a cero, en su interior se realizan 3 operaciones matemáticas diferentes que se explican a continuación:

* extNum = numEntero % 10: con esta operación obtenemos el último dígito de numEntero; por ejemplo, 2018 % 10 da como resultado 8 y lo almacena en la variable extNum. Esta operación se lee, módulo 10 de N.

* numEntero //= 10: esta operación es equivalente a decir numEntero = numEntero // 10 y es un caso especial, ya que en Python el operador // se usa para realizar divisiones enteras y el operador / en divisiones decimales y divide el valor de numEntero entre 10, el número resultante pierde su último dígito; por ejemplo, 2018 // 10 da como resultado 201. El resultado se almacena en la variable numEntero.

sumDigit += extNum: esta operación es equivalente a decir sumDigit = sumDigit + extNum, suma el valor en la variable sumDigit con el valor en extNum y luego lo asigna de nuevo a la variable sumDigit.

Imprimiendo el resultado
print("La suma de los digitos es: {}".format(sumDigit))

Imprimimos el resultado de la suma de los dígitos con la función print y el método .format().

Ejecutando el programa:
[fixedtorres@linuxero]$ python SumaDeDigitos.py
Ingrese un numero entero: 781242
La suma de los digitos es: 24
[fixedtorres@linuxero]$

Al ejecutar el programa veremos algo como esto, un mensaje solicitando un número entero y el resultado de la suma de los dígitos. Para este ejemplo he ingresado el número 781242, que al sumar sus dígitos da 24.


Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *