Introducción
El flujo de control es el orden en el que se ejecutan o evalúan sentencias, instrucciones o llamadas a funciones individuales. El flujo de control de un programa Python se regula mediante sentencias condicionales, bucles y llamadas a funciones.
En este laboratorio, aprenderá los conceptos centrales para controlar la ejecución de programas en Python. Explorará la lógica condicional utilizando sentencias if, varios operadores, la nueva sentencia match-case e iteración mediante bucles while y for. Al finalizar este laboratorio, podrá escribir programas Python más dinámicos y potentes.
Operadores de Comparación y Booleanos
En este paso, aprenderás a usar los operadores de comparación y booleanos para formar expresiones lógicas. Estas expresiones son fundamentales para el control de flujo, ya que se evalúan como True o False, lo que determina cómo procede el programa.
Operadores de Comparación
Los operadores de comparación se utilizan para comparar dos valores. Aquí hay una tabla de los operadores de comparación comunes:
| Operador | Significado |
|---|---|
== |
Igual a |
!= |
Distinto de |
< |
Menor que |
> |
Mayor que |
<= |
Menor o igual que |
>= |
Mayor o igual que |
Estos operadores se evalúan como True o False. Por ejemplo, 42 == 42 es True, pero 42 == '42' es False porque los tipos (entero y cadena) son diferentes.
Operadores Booleanos
Hay tres operadores booleanos: and, or y not. Se utilizan para combinar o invertir valores booleanos. Su orden de precedencia es not, luego and, y finalmente or.
El operador and devuelve True solo si ambas expresiones son verdaderas.
El operador or devuelve True si al menos una de las expresiones es verdadera.
El operador not invierte el valor booleano (not True se convierte en False).
Mezcla de Operadores
Puedes combinar operadores de comparación y booleanos para crear expresiones lógicas más complejas.
Nota: Si no estás familiarizado con el uso de WebIDE (similar a VS Code), por favor, apréndelo primero en este laboratorio.
Por ejemplo:
(4 < 5) and (5 < 6)
Salida:
True
Ahora, vamos a practicar esto. Abre el archivo operators_example.py desde el explorador de archivos a la izquierda. Agrega el siguiente código al archivo. Este código combina múltiples operadores para evaluar un único resultado booleano.
## operators_example.py
result = 2 + 2 == 4 and not 2 + 2 == 5 and 2 * 2 == 2 + 2
print(result)
Para ejecutar el script, abre una terminal en el WebIDE y ejecuta el siguiente comando:
python3 operators_example.py
Deberías ver la siguiente salida, ya que la expresión se evalúa como True:
True
Sentencias If y Operador Ternario
En este paso, aprenderá a controlar el flujo del programa con las sentencias if, elif y else para ejecutar bloques de código basados en condiciones específicas. Este paso también introduce el operador condicional ternario para escribir expresiones condicionales concisas en una sola línea.
Las Sentencias if, elif y else
- La sentencia
ifejecuta un bloque de código si su condición esTrue. - La sentencia
elif(else if) comprueba otra condición si las condicionesifoelifprecedentes fueronFalse. - La sentencia
elseejecuta un bloque de código si todas las condicionesifyelifprecedentes fueronFalse.
Aquí está la estructura básica:
if condition1:
## código a ejecutar si condition1 es True
elif condition2:
## código a ejecutar si condition1 es False y condition2 es True
else:
## código a ejecutar si todas las condiciones son False
Operador Condicional Ternario
El operador ternario proporciona una forma abreviada de escribir sentencias simples de if-else en una sola línea. Su sintaxis es:
<expression1> if <condition> else <expression2>
Por ejemplo, print('kid' if age < 18 else 'adult') es una forma compacta de escribir un bloque if-else completo.
Ahora, vamos a practicar el uso de un bloque condicional completo. Abra el archivo if_example.py y agregue el siguiente código. Este script comprobará el valor de la variable name e imprimirá un mensaje diferente en consecuencia.
## if_example.py
name = 'Antony'
if name == 'Debora':
print('Hi Debora!')
elif name == 'George':
print('Hi George!')
else:
print('Who are you?')
Ejecute el script desde la terminal:
python3 if_example.py
Dado que name es 'Antony', ni la condición if ni la elif se cumplen, por lo que se ejecuta el bloque else.
Salida:
Who are you?
Sentencia Switch Case
En este paso, explorará el Coincidencia Estructural de Patrones (Structural Pattern Matching), el potente equivalente a switch-case de Python introducido en Python 3.10. Practicará la coincidencia de valores, el uso de patrones OR e implementará casos por defecto con las palabras clave match y case.
Una sentencia match toma una expresión y compara su valor con patrones sucesivos proporcionados como uno o más bloques case.
Coincidencia Básica
Puede hacer coincidir valores literales como números o cadenas.
Patrones OR
Puede combinar varios patrones literales en un solo case usando el operador | (or). Por ejemplo, case 200 | 201:.
Caso por Defecto
El símbolo de guion bajo (_) es un comodín y se utiliza para definir un caso por defecto que coincidirá si ningún otro caso ha coincidido.
Vamos a practicar esto. Abra el archivo match_example.py y agregue el siguiente código. Este script utiliza una sentencia match para determinar una acción basada en un código de respuesta HTTP.
## match_example.py
response_code = 800
match response_code:
case 200 | 201:
print("OK")
case 300 | 307:
print("Redirect")
case 400 | 401:
print("Bad Request")
case 500 | 502:
print("Internal Server Error")
case _:
print("Invalid Code")
Ejecute el script desde su terminal:
python3 match_example.py
Dado que response_code es 800, no coincide con ninguno de los casos específicos, por lo que se ejecuta el caso por defecto (_).
Salida:
Invalid Code
Bucles While y Control de Bucle
En este paso, dominará el bucle while para la ejecución repetida mientras una condición sea verdadera. También aprenderá a gestionar el comportamiento del bucle utilizando la sentencia break para salir del bucle y la sentencia continue para omitir la iteración actual.
El Bucle while
Un bucle while ejecuta repetidamente una sentencia objetivo mientras una condición dada sea True. Es crucial asegurarse de que la condición eventualmente se vuelva False para evitar un bucle infinito.
La Sentencia break
La sentencia break termina el bucle actual y reanuda la ejecución en la siguiente sentencia, al igual que el break tradicional en C.
La Sentencia continue
La sentencia continue rechaza todas las sentencias restantes en la iteración actual del bucle y devuelve el control a la parte superior del bucle.
Vamos a crear un bucle while simple. Abra el archivo while_example.py y agregue el siguiente código. Este script imprimirá un mensaje cinco veces.
## while_example.py
spam = 0
while spam < 5: ## Continuar mientras spam sea menor que 5
print('Hello, world.')
spam = spam + 1 ## Incrementar el contador para evitar un bucle infinito
Ahora, ejecute el script desde la terminal:
python3 while_example.py
El bucle se ejecutará mientras spam sea menor que 5. En cada iteración, spam se incrementa en 1.
Salida:
Hello, world.
Hello, world.
Hello, world.
Hello, world.
Hello, world.
Bucles For e Iteración
En este paso, utilizará el bucle for para iterar sobre elementos en una secuencia como una lista o una cadena. Este paso cubre el uso de la función range() para iterar un número específico de veces, el bloque else opcional en un bucle for, y cómo terminar un programa completamente con sys.exit().
El Bucle for
Un bucle for se utiliza para iterar sobre una secuencia (que puede ser una lista, una tupla, un diccionario, un conjunto o una cadena).
La Función range()
La función range() genera una secuencia de números, lo cual es útil para iterar un número específico de veces.
range(stop): Genera números desde 0 hastastop(sin incluirlo).range(start, stop): Genera números desdestarthastastop(sin incluirlo).range(start, stop, step): Genera números desdestarthastastop(sin incluirlo), incrementando enstep.
Finalizar un Programa con sys.exit()
Se puede llamar a la función sys.exit() para terminar el programa inmediatamente. Primero debe hacer import sys para poder usarla.
Vamos a practicar el uso de un bucle for con range(). Abra el archivo for_example.py y agregue el siguiente código. Este script imprimirá números pares desde 0 hasta 8.
## for_example.py
## range(start, stop, step)
for i in range(0, 10, 2):
print(i)
Ejecute el script desde la terminal:
python3 for_example.py
La función range(0, 10, 2) genera números comenzando en 0, hasta 10 (sin incluirlo), con un paso de 2.
Salida:
0
2
4
6
8
Resumen
¡Felicidades por completar el laboratorio! Ahora ha dominado los conceptos fundamentales del flujo de control en Python.
En este laboratorio:
- Aprendió a utilizar operadores de comparación y booleanos para formar condiciones lógicas.
- Practicó el control de la ejecución del programa con las sentencias
if,elifyelse, así como el conciso operador ternario. - Exploró la potente sentencia
match-casede Python 3.10 para la coincidencia de patrones estructurales. - Aprendió a crear bucles con
whileyfor, y a controlar su comportamiento usandobreakycontinue.
Con estas habilidades, ahora puede escribir programas Python más complejos e inteligentes que pueden tomar decisiones y repetir tareas.



