Volver al índice Operaciones aritméticas elementales

En esta lección aprenderás las operaciones aritméticas elementales que incluye Python por defecto. En una lección posterior aprenderás las operaciones matemáticas que puede incorporar Python al importar el módulo math.

En esta lección aprenderás:


Variables numéricas enteras y decimales

Existen dos tipos de variables numéricas: enteras (sin decimales) y decimales (con decimales). Según cómo escribas el número, Python lo asignará a una variable entera o decimal.

Prueba este ejemplo:

>>> a = 5

>>> b = 4.5

>>> c = 12.0

En este caso la variable a es de tipo entero, b es de tipo real y c es de tipo real. Fíjate en el "truco" utilizado en el caso de la variable c. Si hubieras escrito >>> c = 12, c sería una variable de tipo entero, pero al escribir >>> c = 12.0 Python entiende que quieres utilizar una variable de tipo real aunque almacenes un número entero.


Un detalle importante es que si las variables se definen enteras, Python muestra el resultado de los cálculos como números enteros. Si quieres que Python utilice decimales, tienes que definir las variables como reales. Compara la diferencia en el siguiente ejemplo:

>>> distancia = 100

>>> tiempo = 3

>>> distancia / tiempo

33

>>> distancia = 100.0

>>> tiempo = 3.0

>>> distancia / tiempo

33.333333333333336

En el primer caso el resultado no tiene decimales, mientras que en el segundo caso el resultado sí que sale con decimales (en realidad hubiera sido suficiente con que una de las dos variables tuviera decimales para que el resultado se mostrara con decimales). Observa también que la última cifra del resultado de la división con decimales es incorrecta. Este error se debe a la forma en que Python almacena internamente los números decimales y hay formas de resolverlo. Este problema lo tienen casi todos los lenguajes de programación.


Las cuatro operaciones básicas

Como has visto en lecciones anteriores, las cuatro operaciones aritméticas básicas son la suma (+), la resta (-), la multiplicación (*) y la división (/). Cuando en una fórmula aparecen varias operaciones, Python las efectúa aplicando las reglas usuales de prioridad de las operaciones.


La división en Python

El problema de la división

En las versones 2.X de Python, el resultado de la división de dos números enteros es un número entero. Para obtener ese número entero, Python trunca (redondea hacia abajo) el resultado de la división. Si no estás atento al escribir el programa, esta forma de funcionar puede provocar a veces errores de cálculo. Por ejemplo:

>>> variable = 100

>>> variable / 60 * 60

60

>>> variable * 60 / 60

100

Como Python efectúa los cálculos de izquierda a derecha, en el primer caso primero divide (100 / 60 = 1 al tratarse de números enteros) y después multiplica (1 x 60 = 60). En el segundo caso primero multiplica (100 * 60 = 6000) y luego divide (6000 / 60 = 100).

Para resolver este problema, los creadores de Python han decidido modificar la forma de dividir de Python. El cambio se realizará a partir de la versión 3.0. Así, el resultado de una división será siempre decimal, aunque se dividan números enteros. Mientras tanto, habrá que estar atento.


Cociente de una división

Puedes calcular directamente el cociente de una división entre dos números con el operador //. El resultado será de tipo entero o decimal dependiendo del tipo de los números empleados. Por ejemplo:

>>> 10//3

3

>>> 10//4

2

>>> 20.0//7

2.0

>>> 20//6.0

3.0


Resto de una división

Puedes calcular directamente el resto de la división entre dos números con el operador %. Por ejemplo:

>>> 10%3

1

>>> 10%4

2

>>> 10%5

0

También puedes hacer la división modular entre números decimales, pero normalmente los resultados no son exactos.

>>> 10.2%3

1.1999999999999993 #El resultado correcto es 1.2

>>> 10%4.2

1.5999999999999996 #El resultado correcto es 1.6

>>> 10.1%5.1

5.0 #Este resultado sí que es correcto


Potencias y raíces

Para calcular potencias puedes utilizar el símbolo **, teniendo en cuenta que x**y = xy . Puedes utilizar números negativos o decimales, con lo que esta operación te permite calcular inversas y raíces además de potencias. Aquí tienes unos ejemplos.

>>> 2**3
8
>>> 10**-4
0.0001 #Recuerda que a-b=
1/ab
>>> 9**0.5
3.0 #Recuerda que a1/b es la raíz b-ésima de a
>>> (-1)**0.5 #Esto va a dar error porque es la raíz cuadrada de -1
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in ?
    (-1)**0.5 ValueError: negative number cannot be raised to a fractional power
>>> -9**0.5 #Esto no da error porque hace primero la raíz y luego le pone el -
-3

Otra manera de calcular xy es mediante la función pow(x,y). Si en vez de dos argumentos escribes tres, pow(x,y,z), la función calcula primero x elevado a y y después calcula el resto de la división por z.

>>> pow(2,3)

8

>>> pow(4,0.5)

2.0

>>> pow (2,3,5)

3


Notaciones compactas

Para modificar el valor de una variable a partir de su propio valor, en Python se puede utilizar las siguientes notaciones compactas:

Notación a += b a -= b a *= b a /= b a **= b a //= b a %= b
es equivalente a a = a + b a = a - b a = a * b a = a / b a = a ** b a = a // b a = a % b


Cosas que faltan: abs(x); complex(real[, imag]); max(s[, args...]); min(s[, args...]); round(x[, n])


Ejercicios relacionados con este tema: Ejercicios de variables, entrada y salida y operaciones elementales

Siguiente lección: If.. elif... else...

Autor: Bartolomé Sintes Marco
Última modificación de esta página: 21 de octubre de 2002