Está en la página 1de 47

BUCLES

MG. ROLANDO JESÚS CÁRDENAS


BUCLES

• Sirven para repetir bloques de código mientras se evalúa una sentencia


condicional
• Python tiene dos formas primitivas de realizar bucles:
• Bucles WHILE
• Bucles FOR
WHILE
WHILE

• Se ejecuta mientras una expresión condicional sea verdadera

• WHILE <condición> :
• <Líneas de código identada>
• <Líneas de código identada>
• <Líneas de código identada>
WHILE Condición

• WHILE <condición> : i = 1
• <Líneas de código identada> while i < 6:
• <Líneas de código identada> print(i)
• <Líneas de código identada> i += 1
WHILE

i = 1 Imprime los números del 1 al 6:


while i < 6: 1
print(i) 2
i += 1 3
4
5
WHILE

i = 1 • No muestra nada en pantalla


while i < 6: • Internamente la variable i avanza
i += 1
hasta 6 y termina
WHILE

i = 1 • Itera indefinidamente
while i < 6: • El valor de la variables es siempre
print(i)
1
i = 1
• La condición siempre se cumplirá
WHILE

• Siempre tenemos que incluir un punto de salida de la condición


• De no existir, el código nunca saldrá de la condición
• Podemos incluir sentencias IF , ELIF o ELSE
WHILE
i = 1 i es menor que 4
while i < 6:
if i == 2: i es igual a 2
print("i es igual a 2")
elif i < 4: i es menor que 4
print("i es menor que 4")
else: i es mayor o igual a 4
print("i es mayor o igual a 4")
i += 1 i es mayor o igual a 4
WHILE

• Podemos incluir dentro de la sentencia WHILE, la sentencia BREAK


• BREAK nos ayuda a detener la sentencia WHILE a pesar de que la
condición aun sigue siendo verdadera
WHILE

i = 1 1
while i < 6:
if i == 2: Salida del WHILE
print("Salida del WHILE")
break Termino
print(i)
i += 1
print("Termino")
WHILE

• En el caso que no queremos detener toda la sentencia con BREAK,


tenemos la sentencia CONTINUE
• CONTINUE interrumpe la ejecución de las líneas de código interna y salta
a evaluar la condición WHILE
WHILE

1
i = 0
while i < 6: continue
i += 1 3
if i == 2: 4
print("continue")
continue 5
print(i) 6
print("Termino") Termino
WHILE

i = 0 1
while i < 6: continue
i += 1
3
if i == 2:
print("continue") 4
continue 5
if i == 2:
break 6
print(i) Termino
print("Termino")
WHILE

i = 0 1
while i < 6:
i += 1 continue
if i == 2:
print("continue") Termino
continue
if i == 3:
break
print(i)
print("Termino")
WHILE
i = 0 123456
txt = ""
while i < 6:
i += 1
txt += str(i)
print(txt)
WHILE
Ingrese un numero
Para terminar escriba salir

i = 0 : 12
txt = "" Ingreso : 12
while txt != "salir": Ingrese un numero
print("Ingrese un numero ") Para terminar escriba salir
print("Para terminar escriba salir") : 14
txt = input(": ")
Ingreso : 14
print("Ingreso : " + txt)
Ingrese un numero
print(txt)
Para terminar escriba salir
: salir
Ingreso : salir
salir

Process finished with exit code 0


WHILE

• Podemos usar la sentencia ELSE con WHILE


• Esta se va a ejecutar una vez que la condición del WHILE sea falsa
WHILE
Ingrese un numero
Para terminar escriba salir

i = 0 : 10
txt = "" Ingreso : 10
while txt != "salir":
print("Ingrese un numero ") Ingrese un numero
print("Para terminar escriba salir")
txt = input(": ") Para terminar escriba salir
print("Ingreso : " + txt)
else: : salir
print("Else")
Ingreso : salir
Else

Process finished with exit code 0


WHILE ANIDADO

• También podemos anidar las sentencias WHILE


• Podemos tener un Bucle dentro de otro Bucle
j:1

j:2

WHILE ANIDADO j:3

i:1

j:1

j:2

i = 1 j:3

while i < 6: i:2

j:1
j = 1 j:2

while j < 4: j:3

print("j : " + str(j)) i:3

j:1
j += 1 j:2
print("i : " + str(i)) j:3

i += 1 i:4

j:1
print("Termino") j:2

j:3

i:5

Termino
WHILE ANIDADO

1
i = 1
while i < 6: i es menor a 4
print(i)
while i < 4: i es menor a 4
print("i es menor a 4") i es menor a 4
i += 1
i += 1 5
print("Termino")
Termino
WHILE ANIDADO
j:1
j:2
i = 1
j = 1 j:3
while i < 6: i:1
while j < 4:
print("j : " + str(j)) i:2
j += 1 i:3
print("i : " + str(i)) i:4
i += 1
print("Termino") i:5
Termino
FOR
FOR

• FOR puede ser usado de forma similar a WHILE


• A diferencia de WHILE, FOR puede recorrer listas (esta característica se
vera en las siguientes clases)
• La palabra FOR y WHILE son reservadas, es decir que no pueden ser
usadas como variables.
FOR

• FOR <variable> in <rango de valores>:


• <Líneas de código identada>
• <Líneas de código identada>
• <Líneas de código identada>
FOR

i = 1
while i < 6:
print(i) for i in range(1, 6):
i += 1 print(i)
FOR

• 𝑅𝑎𝑛𝑔𝑒() es una función en Python que nos retorna una secuencia de


números
• Por defecto este ira generando números aumentados en 1
• 𝑅𝑎𝑛𝑔𝑒(𝑛) -> genera la secuencia [0,1,2, … , 𝑛]
• 𝑅𝑎𝑛𝑔𝑒(𝑖, 𝑛) -> genera la secuencia [𝑖, 𝑖 + 1, 𝑖 + 2, … 𝑛]
FOR

1
2
for i in range(1, 6):
print(i) 3
4
5
FOR
0

for i in range(6): 1
print(i) 2
3
4
5
FOR

• Dentro de la sentencia FOR, podemos incluir sentencias IF , ELIF o ELSE


FOR

i es menor que 4
for i in range(1, 6):
if i == 2: i es igual a 2
print("i es igual a 2")
elif i < 4: i es menor que 4
print("i es menor que 4")
else: i es igual o mayor a 4
print("i es igual o mayor a 4") i es igual o mayor a 4
FOR

• Al igual que WHILE, se puede incluir la sentencia BREAK.


• BREAK terminará la ejecución de la sentencia FOR
FOR

for i in range(6): 0
if i == 2:
break 1
print(i)
FOR

• Al igual que WHILE, se puede incluir la sentencia CONTINUE.


• CONTINUE interrumpe la ejecución del bloque de código del FOR y
retorna el flujo del programa a la sentencia FOR
FOR

0
for i in range(6): 1
if i == 2:
continue 3
print(i) 4
5
FOR
for i in range(6): 0
if i == 2: 1
print("continue")
continue continue
elif i == 4: 3
print("break")
break break
print(i) Termino
print("Termino")
FOR

• Podemos usar ELSE con la sentencia FOR


• Esta se ejecutará al finalizar la sentencia FOR
FOR
0
for i in range(6):
1
if i == 2:
continue
print("continue")
continue 3
print(i) 4
else: 5
print("else") else
print("Termino") Termino
FOR
for i in range(6):
0
if i == 2:
1
print("continue")
continue continue
elif i == 4: 3
print("break")
break break
print(i) Termino
else:
print("else")
print("Termino")
FOR Ingrese numero: 3
3
Ingrese numero: 2
2
Ingrese numero: 4
for i in range(1,6): 4
txt = input("Ingrese numero: ") Ingrese numero: 5
print(txt)
5
print("Termino")
Ingrese numero: 6
6
Termino

Process finished with exit code 0


FOR

• Al utilizar la función 𝑅𝑎𝑛𝑔𝑒() , FOR no tiene el problema de ejecutarse


indefinidamente
• 𝑅𝑎𝑛𝑔𝑒() siempre tendrá un limite
FOR

2
2
for i in range(1,6):
i = 2 2
print(i) 2
print("Termino")
2
Termino
• j:0

• j:1

• j:2


FOR ANIDADO •
i:1

j:0

• j:1

• j:2

• i:2

for i in range(1,6): • j:0


for j in range(3): j:1

• j:2
print("j : " + str(j)) • i:3
print("i : " + str(i)) • j:0

print("Termino") • j:1
• j:2

• i:4

• j:0

• j:1

• j:2

• i:5

• Termino
EJERCICIOS

• Utilizando WHILE, programaran una calculadora simple:


• El usuario podrá ingresar el tipo de operación a realizar (suma +, resta - ,
multiplicación x, división /)
• El programa le mostrara el resultado de la operación
• Para terminar el programa, el usuario ingresara la palabra “cerrar”
EJERCICIOS

• Utilizando FOR, crearan un pequeño juego, en el que un usuario ingresara


un numero (entre 1 y 10),
• a continuación, un segundo usuario tratara de adivinar el numero en 4
intentos, para esto el programa le indicara si el numero ingresado es
menor o mayor, y de ser el numero le mostrara que lo ha encontrado.
• De pasar los 4 intentos, el programa mostrara el texto “perdió” seguido
del numero que no adivino.

También podría gustarte