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.