Operaciones aritméticas con números enteros
En el mundo de las matemáticas existen varias ramas que se encargan de estudiar diferentes tipos de números y operaciones. Una de estas ramas es la aritmética, que se encarga de estudiar las propiedades y operaciones de los números.
Símbolos matemáticos en Python
En aritmética, existen muchos símbolos que se utilizan para realizar cálculos.
Python permite utilizar algunos de estos símbolos para realizar operaciones matemáticas. A continuación, se muestran algunos de los símbolos matemáticos más comunes en Python:
+
: Suma-
: Resta*
: Multiplicación/
: División%
: Módulo**
: Exponente//
: División entera
Los únicos símbolos que seguramente te resultarán extraños aquí son el símbolo de porcentaje que no significa porcentaje en este contexto si no que es el llamado operador de módulo, que permite tomar el resto después de dividir un número por otro; y el doble símbolo de la barra, que se utiliza para realizar una división entera, es decir, una división que redondea hacia abajo el resultado (o solo devuelve la parte entera del cociente).
Resolviendo operaciones aritméticas
Vamos a crear un nuevo archivo llamado calculadora.py
y vamos a realizar algunas operaciones aritméticas con números enteros.
# Declaración de variables
n1 = 1
n2 = 2
suma = 0
# Suma de dos números enteros
suma = n1 + n2
# Imprimir el resultado
print(f"La suma de {n1} y {n2} es igual a {suma}")
En este programa, inicializamos dos variables
n1
yn2
que contienen los números enteros1
y2
respectivamente y una tercer variablesuma
con valor inicial0
que va a contener el resultado de la operación aritmética. Luego, realizamos la suma de estos dos números y almacenamos el resultado en la variablesuma
. Finalmente, imprimimos el resultado de la suma en la pantalla.
La salida en la Terminal será:
Como puedes ver, el programa realiza la suma de los números enteros 1
y 2
y muestra el resultado en la pantalla.
Ingreso de números por el usuario
Sinceramente, este no es un programa útil porque siempre calculará 1 + 2 = 3. Precisamente por eso, vamos a modificar el programa para que sea más interactivo y permita al usuario ingresar los números a sumar.
# Ingreso de números por el usuario
n1 = input("Ingrese el primer número: ")
n2 = input("Ingrese el segundo número: ")
# Suma de dos números enteros
suma = n1 + n2
# Imprimir el resultado
print(f"La suma de {n1} y {n2} es igual a {suma}")
En este programa, utilizamos la función
input()
para solicitar al usuario que ingrese dos números enteros. Luego, realizamos la suma de estos dos números y almacenamos el resultado en la variablesuma
. Finalmente, imprimimos el resultado de la suma en la pantalla.
Sin embargo, si ejecutas este programa, verás que ocurre algo extraño con el resultado obtenido:
Ingrese el primer número: 1
Ingrese el segundo número: 2
La suma de 1 y 2 es igual a 12
¿Qué ha pasado aquí? ¿Por qué el resultado de la suma es 12
en lugar de 3
?
Haz clic aquí para ver la respuesta
El problema radica en que la función input()
siempre devuelve una cadena de caracteres, no un número entero.
Por lo tanto, cuando queremos los datos almacenados en n1
y n2
, en realidad estamos concatenando dos cadenas de caracteres en lugar de sumar dos números enteros.
Para solucionar este problema, necesitamos convertir las cadenas de caracteres ingresadas por el usuario a números enteros antes de realizar la suma.
# Ingreso de datos por el usuario (como cadenas de caracteres)
n1 = input("Ingrese el primer número: ")
n2 = input("Ingrese el segundo número: ")
# Suma de los dos datos convertidos previamente a números enteros
suma = int(n1) + int(n2)
# Imprimir el resultado
print(f"La suma de {n1} y {n2} es igual a {suma}")
Ahora, si ejecutas el programa, obtendrás el resultado correcto:
Ingrese el primer número: 1
Ingrese el segundo número: 2
La suma de 1 y 2 es igual a 3
Como puedes ver, al convertir las cadenas de caracteres ingresadas por el usuario a números enteros utilizando la función int()
, podemos realizar la suma de dos números enteros correctamente.
Ahora tenemos una calculadora de uso general que admitirá no solo la suma de 1 y 2, sino también dos números enteros cualesquiera que escriba el usuario.
¡Para recordar!
La función int()
se utiliza para convertir una cadena de caracteres a un número entero. Si la cadena de caracteres no representa un número entero válido, se generará un error.
Optimizando aún más el código
Observemos el código:
# Ingreso de datos por el usuario (como cadenas de caracteres)
n1 = input("Ingrese el primer número: ")
n2 = input("Ingrese el segundo número: ")
# Suma de los dos datos convertidos previamente a números enteros
suma = int(n1) + int(n2)
# Imprimir el resultado
print(f"La suma de {n1} y {n2} es igual a {suma}")
¿Realmente necesitamos la variable suma
?
Estamos creando una variable suma
para usarla inmediatamente como contenedora del resultado de int(n1) + int(n2)
y luego, solamente, en la siguiente línea para imprimir su valor almacenado.
Quizás realmente no necesitemos a suma
para resolver nuestro problema. En su lugar, podemos hacer algo como esto:
# Ingreso de datos por el usuario, convertidos a números enteros
n1 = int(input("Ingrese el primer número: "))
n2 = int(input("Ingrese el segundo número: "))
# Imprimir el resultado directamente
print(f"La suma de {n1} y {n2} es igual a {n1 + n2}")
En este caso, estamos convirtiendo directamente las cadenas de caracteres ingresadas por el usuario a números enteros utilizando la función int()
y realizando la suma de estos dos números en la misma línea en la que se imprime el resultado.
Anidamiento de funciones
Observemos que es posible puede anidar funciones:
int(input("Ingrese el primer número: "))
Si no conoces el concepto de anidamiento de funciones, no te preocupes, es bastante simple, y de hecho puedes consultarlo aquí.
En este caso, estamos anidando las funciones input()
y int()
para convertir la cadena de caracteres, ingresada por el usuario en primera instancia, a un número entero en una sola línea de código. Ten en cuenta que la función input()
se ejecutará primero, y luego la función int()
se ejecutará con el valor de retorno de la función input()
como argumento.
Este tipo de anidamiento de funciones es común en Python y puede ayudarte a escribir código más conciso y legible.
Si ejecutas el programa, obtendrás el mismo resultado de antes:
Ingrese el primer número: 1
Ingrese el segundo número: 2
La suma de 1 y 2 es igual a 3
¿Es mejor escribir código más corto y compacto, o más largo y legible?
Este tema lo abordamos en la sección Programas largos o programas cortos.
Pero, en general, es mejor escribir código más corto y compacto. Este al ser interpretable de izquierda a derecha como en la lectura tradicional humana, fluye de manera muy natural.
A pesar de reunir varias tareas en una misma línea de código, en general estas no poseen grandes extensiones, encajando casi siempre en el ancho de las pantallas.
Sin embargo, al escribir código de esta manera, es importante que sea legible y fácil de entender.
En el caso de los ejemplos anteriores, se ha optimizado el código y se ha reducido la cantidad de líneas de código, pero también se ha mantenido la legibilidad del mismo.
En última instancia, la elección de escribir código más corto y compacto o más largo y legible depende de tus preferencias personales, de tus habilidades y de tus objetivos. Podemos afirmar que esta versión de código es mejor porque nos permite almacenar inmediatamente los valores en las variables formateados con el tipo de dato correcto, evitando posibles malas interpretaciones o cálculos futuros por omitir la conversión previa.
Además, al realizar el cálculo como parte del argumento de la función print()
, evitamos efectuar dicho cálculo previamente almacenar su resultado en una variable, consumiendo recursos del sistema, para luego acceder a dicha variable inmediatamente para imprimir su contenido y luego no utilizarla nunca más.
El código es más limpio y conciso, más eficiente y más fácil de leer. Las líneas de código no son muy largas. Es un buen código.
Más operaciones aritméticas
Muy bien, si has entendido todo el procedimiento explicado anteriormente, ¡Felicitaciones! Has aprendido a realizar operaciones aritméticas con números enteros en Python y a optimizar tu código para hacerlo más eficiente y legible.
Ya estás en condiciones de realizar otras operaciones aritméticas con números enteros, como la resta, la multiplicación, la división, el módulo y el exponente. Solo deber aplicar el operator correspondiente en lugar del operador de suma +
en el código.
En la próxima sección, vamos a ver cómo realizar operaciones aritméticas con números decimales (números racionales que en programación se identifican como números flotantes). ¡Sigue adelante!