Hablemos de los conceptos básicos que cubriremos hoy...
Lo primero es lo primero, Flujo de Ejecución. Lo que esto significa es que hay un orden para la ejecución del código. Probablemente notaste esto en el último cuaderno donde las cosas no funcionaron de la manera que esperabas hasta que sucedieron otras cosas primero. Comencemos con un pequeño ejemplo para mostrar cómo se ve esto con el código. Ejecuta la siguiente celda para ver en qué orden se imprimirá el código:
print("¡Hola,")
print("qué tal!")
print("¡Es un placer conocerte!")
¡Hola, qué tal! ¡Es un placer conocerte!
En el ejemplo anterior, las declaraciones están ordenadas. print("¡Hola,")
se imprimirá antes de print("qué tal!")
y print("¡Es un placer conocerte!")
se imprimirá en último lugar. Ejecuta el siguiente código para ver qué sucede cuando se reorganizan las instrucciones de impresión:
print("¡Hola,")
print("qué tal!")
print("¡Es un placer conocerte!")
¡Hola, qué tal! ¡Es un placer conocerte!
Saber qué declaraciones se ejecutarán primero no solo es extremadamente importante para conocer el resultado de tus programas, sino también porque puede cambiar el flujo de ejecución para producir diferentes resultados en función de ciertas condiciones. Una forma de cambiar el flujo de ejecución de un programa es mediante las sentencias if
(si), elif
(de lo contrario si) y else
(de otro caso). Estas declaraciones también se conocen como condicionales.
Un condicional permite la ejecución condicional de una sola declaración o un grupo de declaraciones.
El primer condicional que cubriremos es la declaración if
. Esta es una de las herramientas más importantes en la caja de herramientas de un científico informático y, después de un poco de práctica, verá lo útil que puede ser. Ejecute la siguiente celda de código para ver cómo funciona una declaración if
básica:
isTrue = True # ¡Cámbiame a Falso para ver qué cambia!
print("Encima del if")
if isTrue:
print("Dentro del if")
print("Debajo del if")
Encima del if Dentro del if Debajo del if
isTrue
(esVerdad) a False
(falso) para ver qué sucede con la salida.Nota importante: La instrucción if
se ejecuta condicionalmente en función del valor de isTrue
.
Lo siguiente que necesitamos aprender es algo llamado else
. El funcionamiento de else
es que cuando la condición en la instrucción if
es False
, entonces se ejecuta el bloque else
en su lugar.
Importante: cuando el bloque if
se ejecuta, el bloque else
no lo hace.
Veamos un ejemplo en el código a continuación:
isTrue = True
print("Encima del if")
if isTrue:
print("Dentro del if")
else:
print("Dentro del else")
print("Debajo del if")
Encima del if Dentro del if Debajo del if
Observa que se ejecutó la declaración de impresión dentro del bloque if
, pero no el código dentro de else
.
else
para ejecutar.isTrue = True # Pista: tal vez empezar aquí...
print("Encima del if")
if isTrue:
print("Dentro del if")
else:
print("Dentro del else")
print("Debajo del if")
Encima del if Dentro del if Debajo del if
La pieza final del rompecabezas condicional es algo llamado elif
, pero antes de que expliquemos la importancia de elif
y cuándo querrías usarlo, necesitamos hablar sobre los booleanos.
Los booleanos son un tipo de variable que puede ser Verdadero o Falso, eso es todo. Un booleano es lo que usamos dentro de una sentencia if
, o en otras palabras, es la condición que se verifica para ver si el código dentro del if se ejecutará. ¡En el código anterior, la variable isTrue
era un valor booleano!
Hay otras formas en que podemos representar True
o False
además de usar las palabras True
o False
y la forma en que lo hacemos es usando Operadores de Comparación.
Aquí está la lista de operadores de comparación:
Operador | Qué hace |
---|---|
== | Comprueba si 2 cosas son iguales. |
!= | Comprueba si 2 cosas no son iguales |
< | Comprueba si un valor es menos que otro valor. |
> | Comprueba si un valor es mayor que otro valor. |
<= | Comprueba si un valor es menor que o igual a otro valor. |
>= | Comprueba si un valor es mayor o igual a otro valor. |
var = 1
if var > 0: # ¡Comprueba la condición para ver si esto es True (Verdadero) y lo es!
print("¡Oye esto se imprimpió!")
¡Oye esto se imprimpió!
Ahora reanudemos nuestra discusión sobre elif
. elif
es una forma de decir "si las condiciones anteriores no fueran ciertas, entonces prueba esta condición".
Veamos un ejemplo con algo de código:
var = 1
if var > 2:
print("Oye, esto no se imprimió porque var no es mayor que 1")
elif var == 1:
print("¡Oye, esto se imprimió porque 1 es igual a 1!")
¡Oye, esto se imprimió porque 1 es igual a 1!
if
sea True (verdadero).Por qué necesitamos elif
:
var = 2
if var == 2:
print("Oye, esto se imprime porque var es igual a 2")
elif var > 1:
print("Oye, esto no se imprimió aunque var es mayor que 1")
print("esto es porque usamos un elif")
Oye, esto se imprime porque var es igual a 2
elif
a if
para ver qué es diferente con la salida.var = 6
if var == 6: # ¿Qué necesita ir aquí?
print("¡Oye! ¡Pasó la condición!")
¡Oye! ¡Pasó la condición!
# Escribe el código aquí...
if var >= 9:
print("¡Oye! ¡Pasó la condición dentro del if!")
elif var <= 7:
print("¡Oye! ¡Pasó la condición dentro del elif!")
else:
print("Supongo que var es algo menor que 9 pero mayor que 7...")
¡Oye! ¡Pasó la condición dentro del elif!
if
como en la condición elif
. Haz esto declarando y configurando una variable llamada var
.# Escribe el código aquí...
if var >= 10:
print("¡Var debe ser algo mayor que 10!")
elif var <= 7:
print("¡Var debe ser inferior a 7!")
elif :
print("¡Hazme imprimir!")
else:
print("Supongo que var es algo menor que 10 pero mayor que 7...")
File "<ipython-input-12-0e4a01403495>", line 8 elif: ^ SyntaxError: invalid syntax
Agrega código para obtener el código dentro de segundo elif
para ejecutar
pista: vas a tener que añadir 2 cosas...
# ¡en esta celda escribe algo de código!
if
que generará c si la condición var == 42 es True
.# ¡Escribe un poco más de código!
Arriba, copia y pega (pide ayuda si no sabes cómo) el código que acabas de escribir que imprimía ¿La respuesta al Universo?!?!?
si la condición var == 42 era True
.
A continuación, agrega un else
que imprima ¡supongo que todavía no sabemos la respuesta del universo!
y cambia la variable para que if
no se ejecute.
mi_número = 42
if mi_número = 42 > 10 and mi_número = 42 < 60:
print("¡¿Podemos tener 2 condiciones?!?!")
Nota: En el código anterior pudimos probar nuestra variable contra 2 condiciones en una sola instrucción if
usando and
(y). Cuando usamos and
ambas condiciones deben ser True
para que se ejecute el código dentro del if
.
# Agrega algo de código aquí
# pista: puedes hacer esto usando 'y'
número_favorito =
and
80. Si está entre 40 and
80, imprime tu número favorito. De lo contrario, imprime ups, mejor suerte la próxima vez
.# ¡¡ejecútame!!
var = 30
if var < 0 or var >= 30:
print("var no es menor que 0, pero es mayor o igual a 30")
Importante: Para or
(o), solo una de las condiciones debe evaluarse como True
para que se ejecute el bloque if
.
# Poniéndolo todo junto...
mi_número_favorito = 0 # ¡Cámbiame!
año_en_que_nací = 0 # ¡Cámbiame!
# usando una instrucción `if, else`, imprime el que sea mayor: mi_número_favorito contra año_en_que_nací
# tu código aquí...
# usando una instrucción `if, else` con un booleano `and`, imprime si mi_número_favorito está entre 12 y 30 o no
# tu código aquí...
# usando una declaración `if, else` con un booleano `or`, imprime si el año_en_que_nací_es o no en 2010 o 2011
# tu código aquí...
# utilizando una declaración `if, elif, else` con un operador booleano, imprime si mi_número_favorito es o no menor que 8, entre 8 y 24, o mayor que 24
# tu código aquí...
Estás conduciendo demasiado rápido y un oficial de policía te detiene. Escribe el código para imprimir el resultado 'sin multa', 'multa pequeña' o 'multa grande'. Si tu velocidad es 60 o menos, el resultado es 'sin multa'. Si la velocidad está entre 61 o, inclusive, entre 80, el resultado es 'multa pequeña'. Si la velocidad es 81 o más, el resultado es 'multa grande'. A menos que sea tu cumpleaños, ese día, tu velocidad puede ser 5 veces mayor en todos los casos. Luego cambia los valores de mi_velocidad_de_conducción y es_mi_cumpleaños para ver cómo cambia el resultado.
mi_velocidad_de_conducción = 61
es_mi_cumpleaños = False
# Tu código aquí...
Cuando las ardillas se reúnen para una fiesta les gusta comer bocadillos. Una fiesta de ardillas tiene éxito cuando el número de bocadillos está entre 40 o, inclusive, entre 60. A menos que sea el fin de semana, en cuyo caso no hay límite superior en el número de sándwiches. Imprime '¡Qué gran fiesta!' si la fiesta tiene éxito, de lo contrario imprime 'La fiesta podría haber sido mejor...'
número_de_bocadillos = 50
el fin de semana = True
# Tu código aquí...