Estructuras de control
en Python
AED 2025
En la carpeta del módulo 2 encontrarás:
1. Guía Modulo 2 (presentación) 3. Guía teórica
En esta presentación te contamos Material teórico detallado de lo que
qué material hay disponible y necesitas saber de condicionales y
hacemos un repaso de los temas del bucles, como es la sintaxis y la
módulo. comparación con pseudocódigo
2. Colab con ejemplos 4. Cuestionario
Separados por bloques de temas, Cuestionario de auto-evaluación
puedes ejecutar online los ejemplos para medir si adquirieron los
que preparamos. conocimientos esperados para este
3_Condicionales e Iterativas Python módulo
Accede al cuestionario en este
link
Sobre Google Colab y su uso de IA para asistir en el desarrollo
Al ejecutar código que tiene un error da un mensaje de sugerencia
Si hacemos click en Fix Error propone una solución, asumiendo que es un mensaje y nos olvidamo
las comillas “
Estructuras de control
Señalan el orden en que tienen que sucederse los pasos de un algoritmo.
elif
Enfoque secuencial al programar
La estructura secuencial es aquella en
la que una acción
(instrucción) sigue a otra en
secuencia.
Las tareas se suceden de tal modo que
la salida de una es la entrada de
la siguiente y así sucesivamente
hasta el fin del proceso.
Secuencial
La estructura secuencial es aquella en
la que una acción
X=5 (instrucción) sigue a otra en
X=x*2 secuencia.
print( x + 6) Las tareas se suceden de tal modo que
la salida de una es la entrada de
X = “hola” la siguiente y así sucesivamente
print(x) hasta el fin del proceso.
Secuencial
Si un programa sólo ejecuta instrucciones planas unas tras otras no
servirían de mucho.
Que las acciones se ejecuten secuencialmente implica que
nunca se ejecutará más de una acción al mismo tiempo
Por suerte, ahí es donde aparecen las estructuras de control, las cuales
van a permitir que el flujo del programa se adapte y sepa cómo actuar
ante determinadas situaciones e incluso repetir una tarea si es
necesario.
Estructuras de control
Señalan el orden en que tienen que sucederse los pasos de un algoritmo.
elif
Condicionales
Cuando hay que tomar una decisión aparecen las estructuras
condicionales.
Estudio para En nuestra vida diaria se nos presentan
SI AED? NO situaciones donde debemos decidir.
True False • ¿Aprendo a programar en python o js?
Aprendo • ¿Me pongo este pantalón?
algoritmos • Para ir a la facu ¿elijo el camino A o el
No apruebo
camino B?
Aprendo la materia :(
• Al comenzar un curso ¿elijo el turno
python
mañana, tarde o noche?
Apruebo la Las acciones que haga despues varían
materia
del resultado de la decisión
Condicionales
Las estructuras selectivas se utilizan para
tomar decisiones lógicas; de ahí que se suelen
denominar también estructuras de decisión o
condicionales
En estas estructuras, se realiza una evaluación
de una condición y de acuerdo al resultado, el
algoritmo realiza una determinada acción. Las
condiciones son especificadas utilizando
expresiones lógicas.
Condicionales
False
True
Python If:
¿Como lo hago
en Python?
Sentencias if
if [condicion]:
Sentencias #INDENTACION
otrasSentencias
Condicionales en Python
Código
if True: # equivale a if not False
print("Se cumple la condición")
print("También se muestre este print")
Resultado
Se cumple la condición
También se muestre este print
● Si se verifica que una determinada condición se cumple, se puede ejecutar una serie de
instrucciones y luego seguir adelante.
● Si la condición NO se cumple, NO se ejecutan dichas instrucciones y se sigue adelante.
Condicionales en Python
Código
num = 3
if num > 0:
print(num, "Es un numero positivo.")
print("Esta linea siempre se imprime.")
num = -1
if num > 0:
print(num, "Es un numero positivo.")
print("Esta linea tambien siempre se imprime.")
Resultado
“Es un numero positivo”
“Esta linea siempre se imprime.”
“Esta linea tambien siempre se imprime.”
Condicional Alternativo Simple
● Si se verifica que una determinada condición se cumple, se puede
ejecutar una serie de instrucciones y luego seguir adelante.
● Si la condición NO se cumple, NO se ejecutan dichas instrucciones
y se ejecutan otras instrucciones
Anidar If - else en Python
Código
a = 5
b = 10
if a == 5:
print("a vale",a)
if b == 10:
print("y b vale",b)
Resultado
a vale 5
y b vale 10
Anidar condiciones
If en Python
Podemos anidar mas de una condición en el mismo
condicional con operadores lógicos (and - or - not)
Siempre deben devolver un valor lógico las condiciones
(True-False)
Código
if a==5 and b == 10:
print("a vale 5 y b vale 10")
Resultado
a vale 5 y b vale 10
Condicional alternativo
doble en Python
if [condicion]:
Sentencias #INDENTACION
else:
otrasSentencias
● Si se verifica que una determinada condición se cumple, se puede ejecutar una serie de instrucciones
● Si la condición NO se cumple, NO se ejecutan dichas instrucciones y se ejecutan otras instrucciones
If - else en Python
Código
a=5
if a == 2:
print("a vale 2")
if a == 5:
print("a vale 5")
Resultado
“A vale 5”
Si se verifica una determinada condición, ejecutar una serie de instrucciones
(bloque 1).
Si no, esto es, si la condición NO se verifica, ejecutar otra serie de instrucciones
(bloque 2).
If - else en Python
Código
n = 11
if n % 2 == 0:
print(n,"es un número par")
else:
print(n,"es un número impar")
Resultado
11 es un número impar
Si se verifica una determinada condición, ejecutar una serie de instrucciones
(bloque 1).
Si no, esto es, si la condición NO se verifica, ejecutar otra serie de instrucciones
(bloque 2).
A practicar!
Dados dos números enteros A y B generar un
algoritmo que permita determinar si A es
divisor de B o B es divisor de A. O ninguno
de los dos casos.
A practicar!
Para tributar un determinado impuesto se debe ser
mayor de 16 años y tener unos ingresos iguales o
superiores a $100.000 mensuales.
Escribir un programa que pregunte al usuario su edad
y sus ingresos mensuales y muestre por pantalla si
el usuario tiene que tributar o no.
Condicional Multiple
Con frecuencia es necesario que existan más de dos elecciones
posibles.
(!) Este problema se podría resolver por estructuras selectivas
simples o alternativas, anidadas o en cascada.(!)
Pero si el número de alternativas es grande puede plantear
serios problemas de escritura y de legibilidad.
estructura condicional alternativo múltiple:
permite evaluar una variable que puede tomar de 1 a n valores y
según ocurra uno de esos valores, se realizará una de las n
acciones; es decir, que el programa seguirá sólo un determinado
camino entre varios.
Condicional Multiple
Condicional alternativo
doble en Python
if test expression:
[Sentencias]
elif test expression:
[Sentencias]
else:
[Sentencias]
Condicional multiple
If-elif en Python
Código
nota = float(input("Ingresar una nota: "))
if nota >= 9:
print("Sobresaliente")
elif nota >= 7:
print("Notable")
elif nota >= 6:
print("Bien")
elif nota >= 5:
print("Suficiente")
else:
print("Insuficiente")
Resultado
Introduce una nota: 10
Sobresaliente
Ejercicios de condicionales
Código
Escribir un programa que solicite al usuario una letra y, si es una vocal, muestre el mensaje “es vocal”. Se debe validar que el usuario ingrese sólo
un carácter. Si ingresa un string de más de un carácter, informarle que no se puede procesar el dato.
letra = input("Ingrese letra")
vocales = {"a","e","i","o","u", "A", "E", "I", "O", "U"}
if len(letra) != 1:
print("Ingrese un solo caracter que sea una letra")
elif letra in vocales:
print(f" {letra} es vocal")
else:
print(f"{letra} no es vocal")
Resultado
Ingrese letra = L L no es una vocal
Leer errores
ERROR DE TIPO DE DATO → El tipo de dato del parámetro no es correcto
Leer errores
USAR FUNCIONES: funcion len()
¿QUE HACE? Determina la longitud de un string
¿QUE PARÁMETROS NECESITA () ? Tipo de dato: string
¿QUE RESULTADO TIENE? Tipo de dato: int
Resolver ejercicios
1. Entender que tengo que hacer
2. Definir mis entradas, datos, pueden ser ingresados por
usuario o no
3. Definir el resultado o salida, información
1: Ver si una letra es vocal
2: letra, string de longitud 1
3: definir si es una vocal o no
Resolver ejercicios
- Ver que el dato de entrada sea del tipo que necesito →
string
- Al comparar con ==, ver el tipo de dato de los operandos
- Ojo con el uso de los parentesis
- No olvidar indentación
Tipos de variables
especiales:
Contadores,
Acumuladores y
Banderas
Variables especiales
NO SON UN TIPO DE DATO O ESTRUCTURA DEFINIDA POR EL
INTÉRPRETE DE PYTHON
Son un Concepto → Una heurística para ayudarnos en la
solución de problemas
Contadores Acumuladores Bandera
Se incrementan o Sumo,resto,
decrementan de a 1. multiplico Valor booleano (True-False)
Cuento ocurrencias Un conjunto de Si esta True arriba la
elementos bandera deja pasar
Si es False no puedo pasar
Variables especiales
En muchos programas se necesitan variables que
cuenten cuántas veces ha ocurrido algo (contadores),
que indiquen si simplemente ha ocurrido un evento
(banderas) o que acumulen valores (acumuladores).
Contadores Acumuladores Bandera
Se incrementan o Sumo,resto,
decrementan de a 1. multiplico Valor booleano (True-False)
Cuento ocurrencias Un conjunto de Si esta True arriba la
elementos bandera deja pasar
Si es False no puedo pasar
CONTADORES
¿QUE ES? → Un contador es una variable cuyo valor se incrementa o decrementa en
una cantidad constante en cada repetición.
¿CUANDO USARLO? → Los procesos repetitivos requieren contar los sucesos y acciones
internas, una forma de hacerlo es mediante un contador.
¿QUE TIPO DE DATO ES? → int
Si queremos usarlo para contar (incrementar o decrementar) hay que inicializarlo
#Incializarlo
Cont = 0
#Incrementar o decrementar
Cont += 1 #es lo mismo que hacer cont = cont +1
ACUMULADORES
¿QUE ES? → Un acumulador o totalizador es una variable cuya función es almacenar
cantidades resultantes de operaciones sucesivas.
¿CUANDO USARLO? → Realiza la misma función que un contador con la diferencia de
que el incremento o decremento es variable en lugar de constante.
¿QUE TIPO DE DATO ES? → int
Si queremos usarlo para acumular (sumar, multiplicar, etc) hay que inicializarlo
#Incializarlo
Acumuladores = 0
#Incrementar o decrementar
Acumulador = Acumulador + x
# X puede ser cualquier cantidad
BANDERA
¿QUE ES? → Una bandera, es una variable que puede tomar uno de dos valores
(verdadero o falso) a lo largo de la ejecución del programa y permite comunicar
información de una parte a otra del mismo.
¿CUANDO USARLO? → Controlar si se dio una situación o no, y a partir de eso tomar
una decisión
¿QUE TIPO DE DATO ES? → booleano (True - False )
#Incializarlo
Band = True
#Incrementar o decrementar
If x >= 4:
Band = False
If Band:
print(“ el numero es menor a 4”)
Estructuras de control
REPETITIVAS
ALGORITMOS Y ESTRUCTURAS DE
DATOS
majo
“ Quiero un programa que me muestre
5 veces una abajo de la otra la frase
‘hello world’ ”
“ Quiero un programa que me muestre 100
veces una abajo de la otra la frase ‘hello world’ ”
“ Quiero un programa que me muestre una
abajo de la otra la frase ‘hello world’ tantas
veces como el usuario quiera ”
“ Quiero un programa que me muestre una
abajo de la otra la frase ‘hello world’ tantas
veces como el usuario quiera ”
“ Quiero un programa que me muestre una
abajo de la otra la frase ‘hello world’ tantas
veces como el usuario quiera ”
Cantidad =
999.999.999.999
USUARIOS
Repetitivas
Cuando necesitamos que sentencias se repitan mas de una vez
Mientras se de una CONDICIÓN
Si la condicion es cierta (True):
Ejecuta las sentencias
Al final de la ejecuccion, vuelve a
preguntar la condicion
Si la condicion es cierta(True):
Ejecuta las sentencias
Sino, se saltea las sentencias del bloque
y sigue con las otras (secuencial)
Repetitivas
Las estructuras que repiten una
secuencia de instrucciones un
número determinado de veces se
denominan BUCLES. Y cada
repetición del bucle se llama
iteración.
Todo bucle tiene que llevar
asociada una condición, que es la
que va a determinar cuándo se
repite el bucle y cuando deja de
repetirse.
Repetitivas
Hay que prestar especial
atención a los bucles
infinitos, hecho que
ocurre cuando la
condición de finalización
del bucle no se llega a
cumplir nunca.
Repetitivas en
Python
while for
Ejecuta un bloque de Ejecuta un bloque de
sentencias siempre que secuencias una
se cumpla una cantidad
condición pre-determinada de
Estructura Pre-Test veces.
1. Pregunta condicion Es un ciclo manejado
2. Ejecuta o termina por contador
Python while
Tiene una condición de
resultado lógico, al igual que
los condicionales (if-else)
Primero analiza que se cumpla la
condición
Si es True ejecuta una serie de
sentencias (marcadas por la
Puede seguir a
otra parte del
indentación)
programa Sino, saltea ese bloque de
sentencias
Python while
Queda en las manos de quien
escriba el programa decidir el
momento en que la condición
cambie a False para hacer que el
ciclo While finalice.
Pero debemos asegurarnos que
Puede seguir a
otra parte del
se de el caso en el que
programa termine!
sino…BUCLE INFINITO
Python while
While [condicion] :
[Sentencias]
Recuerden que Python usa la indentación para agrupar los bloques de sentencias de las estructuras de
control
Código
Dado un número entero N calcular la suma de todos los números entre 1 y N.
cont = 0
suma = 0
N = int(input('Ingrese tope màximo: '))
while cont <= N:
suma = suma + cont
cont = cont + 1
print('La suma total es: ', suma)
Resultado
Ingresa N = 3 suma vale 0
cont vale 0 suma vale 0
cont vale 1 suma vale 1
cont vale 2 suma vale 3
cont vale 3 suma vale 6
La suma total es 6
Código
c = 0
while c <= 5:
c+=1 # c = c +1
print("c vale", c)
else:
print("Se ha completado toda la iteración y c vale", c)
Resultado
c vale 1
c vale 2
c vale 3
c vale 4
c vale 5
c vale 6
Se ha completado toda la iteración y c vale 6
Python while
Es una estructura repetitiva del tipo
INDEFINIDA, pues no se conoce la cantidad de
X = 4 veces que se debe repetir el conjunto de
while X > 0: instrucciones del bucle.
X = X -1
El conjunto de acciones se ejecuta mientras la
evaluación de la condición devuelva un
resultado verdadero, el ciclo se puede ejecutar
¿Cuantas veces se
0 o más veces.
ejecuta? 4 veces
Esto ocurre porque si inicialmente la condición
no se cumple, el bucle no se ejecuta.
“ Quiero un programa que me muestre una
abajo de la otra la frase ‘hello world’ tantas
veces como el usuario quiera ”
“ Quiero un programa que me muestre una
abajo de la otra la frase ‘hello world’ tantas
veces como el usuario quiera ”
En el bucle while es que el número de iteraciones no está
definida antes de empezar el bucle, por ejemplo porque
los datos los proporciona el usuario.
el siguiente ejemplo pide un número positivo al usuario una y otra vez hasta que el
usuario lo haga correctamente:
Código
numero = int(input("Escriba un número positivo: "))
while numero < 0:
print("¡Ha escrito un número negativo! Inténtelo de nuevo")
numero = int(input("Escriba un número positivo: "))
print("Gracias por su colaboración")
Resultado
Escriba un número positivo: -4
¡Ha escrito un número negativo! Inténtelo de nuevo
Escriba un número positivo: -8
¡Ha escrito un número negativo! Inténtelo de nuevo
Escriba un número positivo: 9
Gracias por su colaboración
Python for
Se hacen una cantidad
predeterminada de veces
Es un ciclo manejado por índice
o contador.
Hay dos tipos:
→ for in range
Puede seguir a
otra parte del
→ for in
programa #(estructuras de datos de
secuencia)
Python for .. in
El cuerpo del bucle se ejecuta tantas veces como elementos tenga la estructura iterable
Código
for variable in elemento iterable (lista, cadena, range, etc.):
cuerpo del bucle
Es un poco diferente al for de ➔ Listas → [4,4,4,5, “hola”,
“informatorio”]
otros lenguajes.
➔ Tuplas → 4,6,9,3
En python lo podemos usar ➔ Conjunto → { 4, 5, “hola”,
para iterar sobre “informatorio}
secuencias ➔ Diccionarios → { "lenguaje": "Python"}
➔ Strings → “programar”
Python for .. in
Es un poco diferente al for de ➔ Listas → [4,4,4,5, “hola”,
“informatorio”]
otros lenguajes.
➔ Tuplas → 4,6,9,3
En python lo podemos usar ➔ Conjunto → { 4, 5, “hola”,
para iterar sobre “informatorio}
secuencias ➔ Diccionarios → { "lenguaje": "Python"}
➔ Strings → “programar”
Python for .. in
El cuerpo del bucle se ejecuta tantas veces como elementos tenga la estructura iterable
Código
for variable in elemento iterable (lista, cadena, range, etc.):
cuerpo del bucle
Es un poco diferente al for de ➔ Listas → [4,4,4,5, “hola”,
“informatorio”]
otros lenguajes.
➔ Tuplas → 4,6,9,3
En python lo podemos usar ➔ Conjunto → { 4, 5, “hola”,
para iterar sobre “informatorio}
secuencias ➔ Diccionarios → { "lenguaje": "Python"}
➔ Strings → “programar”
Python for in range
Se ejecuta el bloque de sentencias
tres (3) veces
¿Que pasa en cada iteración?
El índice i comienza en cero
(0)
Primero evalúa que no haya
igualado o se haya pasado del La proxima vez, i = 3, y al ser
igual al rango, no se ejecutan las
rango , en ese caso no ejecuta sentencias. Termina el bucle
Python for in range
Se ejecuta el bloque de sentencias
tres (3) veces
¿Que pasa en cada iteración?
El índice i comienza en cero
(0)
Primero evalúa que no haya
igualado o se haya pasado del La proxima vez, i = 3, y al ser
igual al rango, no se ejecutan las
rango , en ese caso no ejecuta sentencias. Termina el bucle
Python for .. in range
Python for .. in range
Una las ventajas de utilizar tipos range() es que el argumento del tipo range() controla el número de
veces que se ejecuta el bucle.
Sirve para generar una lista de números que podemos recorrer fácilmente, pero no ocupa memoria porque se
interpreta sobre la marcha:
Código
print("Comienzo")
for i in range(3):
print("Hola ", end="")
print("Final")
Resultado
Comienzo
Hola Hola Hola
Final
“ Quiero un programa que me muestre una
abajo de la otra la frase ‘hello world’ tantas
veces como el usuario quiera ”
En el bucle while es que el número de iteraciones no está definida
antes de empezar el bucle, por ejemplo porque los datos los
proporciona el usuario. Peeero podríamos hacerlo con un for también, al
estar en una variable numérica la cantidad es conocida para el programa
¿Cuando usarlos?
while for
El número de iteraciones es El número de iteraciones es
indeterminado, no lo conozco determinado y conocido.
Depende de muchas condiciones con O debo recorrer estructuras de
resultado lógico datos, y operar con cada elemento
No debe ejecutarse el bucle cuando (de una lista,tupla,string,
la condición es falsa la primera vez diccionario o conjunto)
Caracteristicas
while for
No se conoce la cantidad de veces a iterar o Ahora SI se conoce la cantidad de veces a
repetir el conjunto de acciones iterar o repetir el conjunto de acciones
El final del bucle está controlado con una El final de bucle está controlado por un
condición. contador (indica cantidad de iteraciones).
El conjunto de acciones se ejecutan mientras la La variable contador que maneja el bucle se
evaluación de la condición devuelva un incrementa automáticamente de acuerdo al
resultado verdadero incremento indicado.
El ciclo se puede ejecutar 0 o más veces. El indice o contador, NO necesita inicialización
while for
Se debe conocer anticipadamente el
número de iteraciones NO SI
En que momento se verifica la Antes de la ejecucion Antes de la ejecucion
condicion del cuerpo del bucle del cuerpo del bucle
Puede el bucle ejecutarse 0 veces Si. Si la condicion es Si el indice superior
falsa la primera vez es menor al indice
que pregunta inferior
Se debe modificar (escribir alguna Si. haciendo que el
sentencia) el valor de la condicion valor de la condicion No. Es automatico
para terminar el bucle sea falsa
SI NO
Un bucle puede ser infinito?
Dado un número entero N calcular la suma
de todos los números entre 1 y N.
Sentencias
loop control
Break, continue, pass
Sentencias loop control
Este tipo de sentencias cambian la ejecución de un bucle, rompen su secuencia normal.
break Corta la ejecución del bucle. Automáticamente pasan a ejecutarse
las sentencias debajo del bloque de código o cuerpo del while
continue Al llegar a la sentencia continue, termina esa iteracion, y vuelve
a la linea de preguntar la condición. NO corta toda la ejecución el
bucle como el break
pass
break dentro de un while
Se puede usar en bucles for y while y simplemente termina el bucle actual y sigue con
la ejecución de la próxima instrucción, por ejemplo:
Al llegar al break sale del bucle y no
se vuelve a analizar l condición
Continúa con las sentencias debajo
break dentro de un while
Entonces podemos controlar el fin de un bucle
break dentro de un while
también para terminar un ciclo aun cuando la evaluación de la condición no
devuelva False:
Al llegar a la letra “h” simplemente se
termina (rompe) el ciclo (bucle)
continue dentro de un while
Cuando llega a un continue, regresa al comienzo del bucle, ignorando todos las sentencias
que quedan en la iteración actual del bucle e inicia la siguiente iteración.
Cuando llega a la letra “h”, vuelve al inicio
del bucle, salteando las líneas debajo
Nested loops
Se refiere a anidar bucles de python uno dentro del otro, de manera jerarquica
Nested loops
Se refiere a anidar bucles de python uno dentro del otro,
de manera jerarquica
Primero se ejecuta completamente el bloque
más adentro, luego recien cambia el indice i
A practicar!
Nos han pedido desarrollar una aplicación móvil para
reducir comportamientos inadecuados para el ambiente.
a) Te toca escribir un programa que simule el proceso de Login.
Para ello el programa debe preguntar al usuario la contraseña,
y no le permita continuar hasta que la haya ingresado
correctamente.
b) Modificar el programa anterior para que solamente permita
una cantidad fija de intentos.
Aclaracion: a fines del ejercicio asumimos que la contraseña
correcta es “password”
FIN!
A practicar programas