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.


2 Comments

Add a Comment

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