Hasta ahora ya hemos visto como usar variables, las operaciones que podemos realizar y algunos tipos de datos. Los fragmentos de código que hemos utilizado han sido secuenciales, esto es que se ejecuta una instrucción y luego otra y así continuamos hasta que se termina el código. También existen otras estructuras de códigos en las que podemos hace repeticiones o selecciones en base a alguna condición. En esta entrada vamos a conocer cómo modificar el orden en el que se ejecutan de las acciones que realizan nuestros programas, aprenderemos sobre el control de flujo.
Antes de entrar de lleno es importante que conozcamos la indentación ya que la vamos a usar en las siguientes estructuras.
En Python se utiliza la indentación para dar orden al código. Esto consiste en dejar 4 espacios en blanco antes de cada línea que pertenezca a un bloque, si hay un bloque dentro de otro bloque se añaden 4 espacios mas a cada línea que pertenezca al segundo bloque. Es una convención utilizar 4 espacios en blanco, pero podrías dejar uno o cinco mientras seas consistente a lo largo del código.
La indentación no solo es útil para que los humanos podamos leer el código con facilidad sino también para el interprete. De esta forma le indicamos a Python en donde empieza un bloque y en que punto termina.
También es importante recordar los operadores de comparación porque nos serán muy útiles para hacer las evaluación de las condiciones.
Condiciones
Empecemos con la evaluación de condiciones, para ello se utiliza la palabra reservada if con la siguiente estructura:
if condición:
instrucción
Hagamos un ejemplo para ilustrar cada parte de la estructura. Vamos a escribir un código que evalúe la edad de una persona y nos diga si es mayor de 20 años.
condición: queremos saber si es mayor de 20 años, en Python sería edad > 20
instrucción: si es mayor de 20 años queremos que nos muestre el mensaje «Mayor»
Pongamos todo junto para que el interprete lo pueda entender:
edad = 34
if edad > 20:
print("Mayor")
>>> edad = 34
>>> if edad > 20:
… print(«Mayor»)
…
Mayor
Habrás notado que mientras escribías el código en el interprete aparecieron tres puntos (…) en lugar de los símbolos mayor que (>>>). Después de colocar los dos puntos (:) que siguen a la condición, Python reconoce que van a seguir instrucciones que pertenecen al bloque if. No olvides empezar con los 4 espacios en blanco. Cuando estén completas las instrucciones del bloque if debes dar doble Enter para indicar al interprete que el bloque está completo y se ejecute.
¿Y si ahora queremos que nos diga si es igual o mayor de 10? Podemos incluir una segunda evaluación con la palabra elif. La palabra if y elif están al mismo nivel de indentación, la estructura queda de la siguiente manera:
if condición:
instrucción
elif condición:
instrucción
Vamos a incluir la nueva condición en el código que teníamos y la instrucción para imprimir «Mayor o igual a 10».
edad = 14
if edad > 20:
print("Mayor")
elif edad >= 10:
print("Mayor o igual a 10")
>>> edad = 14
>>> if edad > 20:
… print(«Mayor»)
… elif edad >= 10:
… print(«Mayor o igual a 10»)
…
Mayor o igual a 10
Ahora hagamos que el código nos indique si es menor de 10 años. Para ello podemos usar la palabra else la cual se utiliza en caso de que las condiciones anteriores no se cumplieran. La estructura es la siguiente:
if condición:
instrucción
elif condición:
instrucción
else:
instrucción
En el caso de else ya no se evalúa una condición porque este bloque se ejecutará cuando las condiciones anteriores no se cumplan sea cual sea el caso. Al igual que if y elif, else está al mismo nivel de indentación. Siguiendo con el ejemplo, el código quedaría de la siguiente manera:
edad = 4
if edad > 20:
print("Mayor")
elif edad >= 10:
print("Mayor o igual a 10")
else:
print("Menor a 10")
>>> edad = 4
>>> if edad > 20:
… print(«Mayor»)
… elif edad >= 10:
… print(«Mayor o igual a 10»)
… else:
… print(«Menor a 10»)
…
Menor a 10
Ciclos
Es posible que queramos que al cumplirse cierta condición se repita un bloque de instrucciones. Para estos casos podemos usar las sentencias for o while. Empecemos con for.
La sentencia for itera sobre los elementos de una secuencia, puede ser una lista o un texto. También podemos usar la función range() para crear una secuencia. La estructura de la sentencia for es la siguiente:
for elemento in secuencia:
instrucción
Hagamos un ejemplo en el que imprimamos letra por letra la palabra Python.
for letra in "Python":
print(letra)
>>> for letra in «Python»:
… print(letra)
…
P
y
t
h
o
n
Veamos ahora la sentencia while. En este caso si hay una condición que se debe evaluar y las instrucciones que están dentro del bloque while se ejecutarán mientras la condición sea cierta. La estructura es la siguiente:
while condición:
instrucción
Hagamos en ejemplo de una cuenta regresiva empezando en 10 y que se detenga cuando lleguemos a 3. Imprimiremos en pantalla el numero hasta llegar a 3.
x = 10
while x != 3 :
print(x)
x -= 1
>>> x = 10
>>> while x != 3 :
… print(x)
… x -= 1
…
10
9
8
7
6
5
4
Ahora tenemos mas opciones para crear los programas que necesitamos al saber como modificar el orden en el que se deben ejecutar las instrucciones de nuestros programas. Espero que que te sea de mucha utilidad esta entrada. En la siguiente veremos cómo definir funciones. Cuéntame que te pareció esta entrada.
No olvides darte una vuelta por la sección de Retos con Python para repasar lo que vamos aprendiendo.