Expresiones complejas¶
Hasta ahora hemos hecho algunas operaciones sencillas. Pero ¿que pasa si queremos resolver un cálculo más complejo? Comencemos como combinar varias operaciones en una única expresión.
Expresiones con varias operaciones¶
Una expresión puede estar formada por varias operaciones:
| Expresiones.py | |
|---|---|
1 2 | |
Lo que, al ejecutarse, muestra:
19
17
En el primer caso, multiplicamos 5 por 3, y al resultado, que es 15, le sumamos 4.
Pero... un momento. La segunda sentencia debería sumar 5+4=9 y multiplicarlo
por tres. ¿Que ha pasado?
Lo que sucede es que, dentro de una expresión, algunas operaciones tienen
precedencia sobre las otras. La multiplicación y la división tienen prioridad
sobre la suma y resta, y se deben ejecutar antes. De esta forma,
primero se multiplica 4*3=12 y el resultado se suma a 5.
Para obligar al ordenador a cambiar las precedencias, o para asegurarnos de que el cálculo se hace siguiendo el orden previsto, podemos usar paréntesis:
print( (5+4) * 3 )
... y de esta forma, primero se hace la suma, si eso es lo que queremos.
Expresiones anidadas¶
Podemos "anidar" paréntesis, unos dentro de otros:
print( ((5+4) * 3) + 7 )
De esta forma, primero se resuelven las subexpresiones internas.
La palabra "anidado" indica que un elemento del programa está dentro de otro, y viene del inglés "nested" (nest=nido)
Funciones que devuelven resultados¶
Una función es una operación con nombre. La función print realiza su tarea
cada vez que la invocamos por su nombre.
Hay funciones que han sido concebidas para realizar un cálculo y devolvernos un resultado. Por ejemplo, lo siguiente:
| FuncionesConResultados.py | |
|---|---|
1 2 | |
... invoca las funciones max() y pow(), y pasa los resultados a print():
17
25
La función max() toma varios argumentos y devuelve el mayor de ellos, 17.
La función pow() toma dos datos y calcula la potencia del primero
elevado al segundo (power of). El resultado de calcular 5 al cuadrado es 25.
Una función puede formar parte de una expresión:
| FuncionesConResultados2.py | |
|---|---|
1 | |
Nuestro ordenador resolverá esto de acuerdo al siguiente orden:
-
analiza el único argumento pasado, que es una expresión compleja. Consiste en:
max( pow(5,2), 10 ) + 2 -
antes de llamar a la función
max(), resuelve sus dos parámetros, que son:pow(5,2) 10 -
luego calcula
max(25,10)= 25 -
seguidamente suma 2 al resultado de
max(), obteniendo 27 -
ese resultado final se le pasa a
print()
El operador **
El cálculo de potencias es una operación que se puede escribir usando el
operador **. Es lo mismo
print(pow(5,2))
que
print(5**2)