Introducción a la programación en Python 3 — Instrucción if y lógica
Operando con lógica dentro de Python
Hasta ahora hemos visto como programar operaciones aritméticas en nuestro código y como definir funciones que realicen un set de operaciones. Sin embargo, es posible que solo con estos recursos nos veamos limitados para resolver cierto problemas básicos, como realizar comparaciones y/o realizar operaciones en función de cierto valor. Un ejemplo de esto sería programar una función que reciba 2 números como input y retorne el número menor/mayor como output. Si bien haciendo uso de nuestro ingenio podemos concebir algo como:
def mayor(x,y):
return((x + y + abs(x-y))/2)
Suele ser más intuitivo una solución del tipo:
def mayor(x,y):
if x>y:
return(x)
else:
return(y)
Podemos ver que la función anterior hace uso de dos palabras nuevas, if
y else
.
Instrucción if
La expresión if
permite ejecutar un bloque de código se se cumple una condición dada, mientras que else
ejecuta un bloque de código si no se cumple esta condición. De modo que nuestro ejemplo anterior se podría leer como:
Si x es mayor que y, retornar
x
. Y sino, retornary
Y la semántica de esta instrucción es:
if condicion:
instrucciones1
else:
instrucciones2
En dondecondicion
está compuesta por dos expresiones (e.g a
, b
, c
, a+b
, etc.) y un operador-de-relación (e.g <
, >
, <=
, >=
, ==
, !=
). Una condición evalúa las expresiones, las compara sus resultados y entrega un bool
dependiendo si se cumple o no (True
o False
). Luego en una expresión if
se ejecutará el primer bloque cuya condición retorne True
. Cabe mencionar que los bloques dentro de un if
deben seguir las reglas de indentación y que haciendo esto podemos agregar instrucciones if
en un bloque de código dentro de otra instrucción if
. Por ejemplo, si deseamos recibir 3 números como input y retornar el mayor como output:
def mayor(x,y,z):
if x >= y:
if x >= z:
return x
else:
return z
else:
if y >= z :
return y
else:
return z
Esto puede escribirse de una forma más generalizada como una selección múltiple, utilizando la palabra elif
:
def mayor(x,y,z):
if x >= y and x >= z :
return x elif y >= z :
return y else:
return z
En este ejemplo, podemos ver el uso del operador lógico and
, el cual cumple la misma función de su operador en lógica booleana:
True
andTrue
: RetornaTrue
True
andFalse
: RetornaFalse
False
andTrue
: RetornaFalse
False
andFalse
: RetornaFalse
Otros operadores lógicos que pueden ir en nuestras condiciones son or
o not
.
Con lo visto en este capitulo hemos aprendido a programar código con condiciones y a utilizar la lógica booleana dentro de Python. Espero que te haya servido, nos vemos en la próxima entrega.
Un saludo!