Cuando estás empezando a programar Python te encontrarás con problemas sencillos cómo puede ser sumar números en Python. La idea es pedir dos números por consola al usuario y posteriormente realizar la suma de estos dos números para acabar mostrándola nuevamente por consola. Algo que podría sonar sencillo, pero con lo que hay que tener cuidado para que no se nos complique.
Lo primero será pedir al usuario que introduzca un número. Para ello nos apoyamos en el método input()
el cual tiene como parámetro el texto que queremos mostrarle al usuario para que nos introduzca el número.
n1 = input("¿Dime el primer número?") n2 = input("¿Dime el segundo número?")
Una vez que tienes los números, los sumas e imprimes por pantalla mediante el método print()
.
print (n1+n2)
Y con esto ya tendríamos resuelto cómo sumar números en Python. Pues la respuesta es NO. Esto no nos soluciona el sumar dos números. Por dos motivos, el primero es que realmente no nos hemos asegurado que lo que el usuario introduce por teclado es un número y podría meter una cadena, lo que nos llevaría a una suma de cadenas en vez de números. En segundo lugar porque los datos insertados por teclado, aunque sean un número, son tratados como cadenas por Python. Por lo tanto la suma siempre sería una suma de cadenas.
Es decir, que si el usuario introduce un «7» y un «2» no vamos a imprimir por pantalla un «9», en su lugar se imprimirá un «72» que lógicamente no es lo deseado.
Por lo tanto tenemos que mejorar nuestro programa controlando estas dos cosas. Por un lado tenemos que asegurar que el usuario nos introduce un número por teclado. Para ello lo que haremos es convertir el valor introducido por teclado a un entero mediante el método int()
. Si esa conversión falla se lo pediremos de nuevo al usuario. Es por ello que la conversión la hacemos en una estructura try-except
que controle la excepción ValueError
.
try: n1 = int(input("¿Dime el primer número?")) except ValueError: print("El valor introducido no es un número. Intenta de nuevo")
Cómo le pediremos al usuario el número hasta que realmente sea un número lo que haremos será meter en un bucle este código. Del bucle solo saldremos cuando tengamos un número mediante una sentencia break
.
while True: try: n1 = int(input("¿Dime el primer número?")) break except ValueError: print("El valor introducido no es un número. Intenta de nuevo")
Ahora ya podemos sumar los dos números. Y como estos son ya enteros podemos recurrir al operador de suma sin más.
suma = n1+n2
Y ya solo nos quedará el mostrarlo por pantalla con un método print()
. Ojo que si queremos mostrar el valor de la suma y otra cadena de texto tendremos que convertir esta suma, que ahora es un número, a una cadena. Para ello tenemos el método str()
que nos ayudará con dicho cometido.
print ("La suma de los dos números es: " + str(n1+n2))
Con esto ya tendremos un programa completo que nos permita sumar números en Python controlando que lo que el usuario introduce por teclado es realmente un número.