Clase 5 - Controladores de Flujo 2
Clase 5 - Controladores de Flujo 2
Clase 5 - Controladores de Flujo 2
Python
Controladores de Flujo 2
RECUERDA PONER A GRABAR LA
CLASE
● Identificar el proceso de iteración en
programación
● Diferenciar sentencia while de
sentencias while-else
● Implementar instrucción break
OBJETIVOS DE LA CLASE ● Diferenciar entre instrucción continue y
pass
● Implementar sentencia for, range y
for-else-break-continue-pass
CRONOGRAMA DEL CURSO
Clase 4 Clase 5 Clase 6
CONTROL DE FLUJO
SENTENCIAS ITERATIVAS
Repetir
Las computadoras se usan a menudo
para automatizar tareas repetitivas.
Realizar repetidamente tareas idénticas
o similares sin cometer errores es algo
que las computadoras hacen bien y
que los seres humanos hacemos
limitadamente.
Iterar
Como no existe una forma mágica para encontrar el dato directamente, el programa
deberá recorrer los datos uno a uno y compararlos hasta dar con el que buscamos
iterando o repitiendo el mismo proceso desde el inicio comparando a ver si es el que
queremos o no, así hasta que encuentre el que queremos.
Existen algoritmos que permiten ahorrarnos tiempo e iteraciones, pero en
esencia sigue recorriendo uno a uno, la diferencia es que nosotros
tardaríamos muchas horas, y el programa unos segundos.
¡Así que vamos a aprovecharnos de esto!
💪
WHILE (no sabes las la cantidad)
Sentencia While
Este tipo de flujo se llama bucle porque el tercer paso del bucle vuelve arriba.
��
Para escapar un bucle infinito generalmente se usa ctrl + c
WHILE- ELSE
Sentencia While-else
>>> while condicion: Algo interesante que tiene python
# instrucciones de while es que podemos encadenar un
>>> else:
# instrucciones de while-else else (si no) al final de un bucle
>>> si no se abortó con break: while.
# Instrucciones del while-else
Este else sirve para ejecutar un bloque de código cuando el bucle while tenga una
condición False o haya terminado y no haya sido forzado a salir mediante un
break.
¿Qué pasó?
>>> chance = 1
>>> while chance <= 3:
txt = input("Escribe SI: ")
if txt == "SI":
print("Ok, lo conseguiste en el intento", chance)
break
chance += 1
else:
print("Has agotado tus tres intentos")
Sentencia While-else
1. Declaramos una variable chance y le asignamos el valor int 1.
2. Usamos la sentencia while para indicar que mientras que chance sea menor a 3
entremos al bloque de código.
3. Le pedimos al usuario que ingrese una palabra con input
4. Si la palabra es “SI” ingresa al condicional if
5. Si ingresa, imprime que lo consiguió en el intento tal y rompe el bucle con break
6. Si la condicional es False vamos a sumar uno a las chances y repetir desde el paso
2
7. Sí chance es mayor a 3, entramos en el else e imprimimos
¡Números!
Mostrar la suma de los números ingresados
Tiempo estimado: 10 minutos
¡Números!
Tiempo estimado: 10 minutos
Cuando esto sucede, es posible que prefiramos que nuestro programa cierre un
bucle por completo, omita parte de un bucle antes de continuar o ignore ese
factor externo.
Para hacer estas acciones python nos brinda las instrucciones break, continue
y pass.
BREAK
Break
Comencemos por uno de los más sencillos y más utilizados: El break.
En Python, la instrucción break le proporciona la oportunidad de cerrar un bucle
cuando se activa una condición externa. Debe poner la instrucción break
dentro del bloque de código bajo la instrucción de su bucle, generalmente
después de una sentencia if condicional.
Ejemplo
>>> n = 5:
>>> while n < 10:
n -= 1 Analicemos qué pasó
if n == 2:
print(“ahora que n vale 2 salimos”)
break
print(“n vale “, n)
¿Qué pasó?
1. Declaramos una variable n y le asignamos el valor int 5.
2. Usamos la sentencia while para indicar que mientras que n sea menor a 10
entremos al bloque de código.
3. Le restamos 1 a n
4. Usamos una sentencia if condicional para igualar n a 2
5. Si da True imprime ahora que n vale 2 salimos y con break sale del bucle, ya
no se ejecuta el resto
6. Si da False imprime que n vale n y vuelve al paso 2.
SENTENCIA BREAK
Es hora de programar mentalmente.
TIEMPO: 10 MIN
SENTENCIA BREAK
Tiempo: 10 minutos
Consigna: Explica qué sucedió en este caso:
>>> c = -3:
>>> while True:
c += 1
if c == 2:
print(“ahora que c vale 2 salimos”)
break
print(“c vale “, c)
CONTINUE
Continue
La instrucción continue da la opción de omitir la parte de un bucle en la que se
activa una condición externa, pero continuar para completar el resto del bucle. Es
decir, la iteración actual del bucle se interrumpirá, pero el programa volverá
a la parte superior del bucle.
>>> n = 0:
Analicemos qué pasó
>>> while n < 10:
n += 1
if n == 2:
print(“Continuamos con la siguiente iteración”)
continue
print(“n vale “, n)
¿Qué pasó?
1. Declaramos una variable n y le asignamos el valor int 0.
2. Usamos la sentencia while para indicar que mientras que n sea menor a 10
entremos al bloque de código.
3. Le sumamos 1 a n
4. Usamos una sentencia if condicional para igualar n a 2
5. Si da True imprime Continuamos con la siguiente iteración y con continue
rompe la iteración, pero no de todo el bucle, sólo de esta iteración
6. Si da False imprime que n vale n y vuelve al paso 2.
PASS
Pass
Cuando se activa una condición externa, la instrucción pass permite manejar la
condición sin que el bucle se vea afectado de ninguna manera; todo el
código continuará leyéndose a menos que se produzca la instrucción break u
otra instrucción.
Debe poner la instrucción pass dentro del bloque de código bajo la instrucción
de su bucle, generalmente después de una sentencia if condicional.
Ejemplo
>>> n = 0:
>>> while n < 10:
n += 1
if n == 2:
pass
print(“n vale “, n)
¿Qué pasó?
1. Declaramos una variable n y le asignamos el valor int 0.
2. Usamos la sentencia while para indicar que mientras que n sea menor a 10
entremos al bloque de código.
3. Le sumamos 1 a n
4. Usamos una sentencia if condicional para igual n a 2
5. Si da True con la instrucción pass le indica al programa que continúe ejecutando
el bucle e ignore el hecho de que la variable n se evalúa como equivalente a 2
durante una de sus iteraciones
6. Si da False imprime que n vale n, le resta 1 y vuelve al paso 2.
PARA PENSAR
¿Qué pasó en este ejemplo?
>>> c = -3
>>> while c < 10:
c += 1
if c == 2:
pass
print(“c vale “, c)
FOR (repetir pero sabiendo la cant)
Sentencia For
Ahora seguiremos con la sentencia iterativa que podríamos decir es la más usada For
(para).
Se utiliza para recorrer los elementos de un objeto iterable (lista, tupla…) y ejecutar un
bloque de código, o sea, tiene un número predeterminado de veces que itera.
Sentencia For
En cada paso de la iteración se tiene en cuenta a un único elemento del objeto
iterable, sobre el cuál se pueden aplicar una serie de operaciones.
valor simplemente es
una copia local, no
afecta fuera del bucle
a menos que se
devuelva el valor
Ejemplo
>>> indice = 0
>>> numeros = [0,1,2,3,4,5,6,7,8,9,10]
>>> for numero in numeros:
numeros[indice] *= 5
indice += 1
# tambien se puede con indice = numero
>>> print(numeros)
ENUMERATE
Enumerate
La función incorporada enumerate(lista/tupla_de_valores) toma como argumento
un objeto iterable y retorna otro cuyos elementos son tuplas de dos objetos:
>>> texto2 = “”
>>> for letra in texto:
texto2 = letra * 2
>>> print(texto2)
RANGE
¿Qué es?
Como vimos, el for en python necesita una colección de datos para poder
utilizarlo, en otros lenguajes necesitamos solamente un número para indicar las
iteraciones a cumplir.
Para simular estos casos Python nos provee de una función denominada
range() (rango) el cual representa una colección de números inmutables.
Constructores para crear
objetos Range
1. range(fin): Crea una secuencia numérica que va desde 0 hasta fin - 1.
a. for numero in range(10)
2. range(inicio, fin): Crea una secuencia numérica que va desde inicio hasta fin - 1.
a. for numero in range(5, 10)
3. range(inicio, fin, [paso]): Crea una secuencia numérica que va desde inicio hasta fin -
1. Si además se indica el parámetro paso, la secuencia genera los números de paso
en paso.
a. for numero in range(0, 20, 2)
Ventajas
>>> range(0,10)
Parece ser exactamente una lista que va de 0 a 10, pero range interpreta el inicio
y fin en tiempo de ejecución y eso le da ventaja contra la lista.
Si tuviéramos una lista de 0 a 10000 estaría ocupando muchísimo espacio en
memoria.
Ventajas
>>> range(0,10000)
Nota:
Para imprimir por pantalla al reves se debe usar el mayor número, luego el menor,
y el paso sería con -1 range(mayor, menor, -1)
PUESTA EN COMÚN
¡Analicemos por última vez!
n=0
while n < 10:
if (n%2) == 0:
print(n, ‘es un número par’)
else:
print(n, ‘es un número impar’)
n += 1
¡Ahora podemos entender que hace este programa que vimos hace unas
clases!
3
¡CONTROL DE FLUJO!
Breve resumen de la consigna del desafío.
¡CONTROL DE FLUJO!
Formato: Documento que tiene el nombre de “Desafío entregable”, debe
tener el nombre “Idea+Apellido”.
📄 Desafío entregable 3