Está en la página 1de 45
Algoritmos Iterativos por Jhonny Felipez Universidad Mayor de San Andrés
Algoritmos Iterativos
por
Jhonny Felipez
Universidad Mayor de San Andrés
Contenido O Iteración O Sentencia while O Sentencias break, continue, pass y while- else O
Contenido
O
Iteración
O
Sentencia while
O
Sentencias break, continue, pass y while-
else
O
Sentencia for
O
Sentencias break, continue, pass y for-else
O
Ciclos Anidados
O
Formato de impresión
2
Iteración O Las computadoras se utilizan a menudo para automatizar tareas repetitivas. O La ejecución
Iteración
O
Las computadoras se utilizan a menudo
para automatizar tareas repetitivas.
O
La ejecución repetida de una secuencia de
instrucciones se llama iteración.
O
Python proporciona varias características de
lenguaje para que sea más fácil.
3
Simple Repetición print("Hola!") print("Hola!") print("Hola!") print("Hola!")
Simple Repetición
print("Hola!")
print("Hola!")
print("Hola!")
print("Hola!")
print("Hola!")
Podemos hacer lo mismo de manera más
concisa con una declaración for.
for i in range(5):
print("Hola!")
4
while 5
while
5
While O Una instrucción while en el lenguaje de programación Python se ejecuta repetidamente una
While
O Una instrucción while en el lenguaje de
programación Python se ejecuta
repetidamente una bloque de instrucciones
siempre y cuando una condición sea
verdadera.
6
Sentencia while Formato General: while condición: sentencias if condición1: break # Condición del while #
Sentencia while
Formato General:
while condición:
sentencias
if condición1: break
# Condición del while
# Cuerpo del while
# Sale del bucle ahora, no toma
# en cuenta el else (si existe).
if condición2: continue
# Salta a la parte superior del while
# ahora.
else:
# else es opcional
sentencias
# Ejecuta si no salió del while
# con el break.
Ejemplo Imprime “Hola!” cinco veces con la sentencia while. i = 1 while i <=
Ejemplo
Imprime “Hola!” cinco veces con la sentencia
while.
i =
1
while i <= 5:
print("Hola!")
i =
i
+
1
print("La siguiente sentencia")
Hola!
Hola!
Hola!
Hola!
Hola!
La siguiente sentencia
8
Ejemplo Imprime los cuadrados del 1 al 5 con la sentencia while. i = 1
Ejemplo
Imprime los cuadrados del 1 al 5 con la
sentencia while.
i =
1
while i <= 5:
print(str(i) + "^2 = " + str(i ** 2))
i
= i
+
1
print("La siguiente sentencia")
1^2 = 1
2^2 = 4
3^2 = 9
4^2 = 16
5^2 = 25
La siguiente sentencia
9
break, continue, pass y while-else 10
break, continue, pass y
while-else
10
Sentencia break Imprime “Hola!” cinco veces con la sentencia while. Con la sentencia break se
Sentencia break
Imprime “Hola!” cinco veces con la sentencia
while. Con la sentencia break se finaliza la
ejecución del ciclo.
i =
1
while i <= 100:
print("Hola!")
if i == 5:
break
i =
i
+
1
Hola!
Hola!
Hola!
Hola!
Hola!
La siguiente sentencia
print("La siguiente sentencia")
11
Sentencia continue Imprime los números pares del 1 al 10 con la sentencia while. Con
Sentencia continue
Imprime los números pares del 1 al 10 con la
sentencia while. Con la sentencia continue se
salta al encabezado del ciclo.
i =
1
2
while i <= 10:
4
if i % 2 != 0:
6
i =
i +
1
8
continue
10
print(i)
La siguiente sentencia
i =
i
+
1
print("La siguiente sentencia")
12
Sentencia pass Imprime la suma de los números impares del 1 al 10, con la
Sentencia pass
Imprime la suma de los números impares del
1 al 10, con la sentencia while. pass es una
instrucción nula, es decir que no hace nada.
Es útil donde eventualmente irá algún código,
pero aún no se ha escrito este código.
s = 0
La suma es 25
i = 1
while i <= 10:
if i % 2 == 0:
pass
else:
s
= s
+ i
i =
i
+ 1
print("La suma es " + str(s))
13
Sentencia while-else Imprime los números 0, 1, 2, 3, 4 y ELSE con la sentencia
Sentencia while-else
Imprime los números 0, 1, 2, 3, 4 y ELSE con la
sentencia while-else. Se ejecutará la sentencia else,
porque el ciclo while finalizará sin que se ejecute la
sentencia break.
i =
0
0
while i < 5:
1
print(i)
2
if i == 7:
3
break
4
i =
i +
1
else:
ELSE
La siguiente sentencia
print("ELSE")
print("La siguiente sentencia")
14
Sentencia while-else Imprime los números 0, 1, 2 con la sentencia while- else. No se
Sentencia while-else
Imprime los números 0, 1, 2 con la sentencia while-
else. No se ejecutará la sentencia else, porque el
ciclo while finalizará con la ejecución de la
sentencia break.
i =
0
0
while i < 5:
1
print(i)
2
if i == 2:
La siguiente sentencia
break
i =
i +
1
else:
print("ELSE")
print("La siguiente sentencia")
15
for 16
for
16
El ciclo for O La instrucción for en Python difiere del C o el Java,
El ciclo for
O
La instrucción for en Python difiere del C o el
Java, porque en lugar de definir la condición
de fin de ciclo, itera sobre los elementos de
alguna secuencia (una lista, una tupla, un
diccionario, un conjunto o una cadena), en
el orden en que aparecen en la secuencia.
O
Para que el ciclo for pueda recorrer una
secuencia de números se utiliza la función
range.
17
Sentencia for Formato General: for destino in objeto: sentencias # Asigna los elementos del objeto
Sentencia for
Formato General:
for destino in objeto:
sentencias
# Asigna los elementos del objeto
# al destino.
# Cuerpo del for
if condición1: break
# Sale del ciclo ahora, salta el else.
if condición2: continue
else:
sentencias
# Salta a la parte superior del for ahora.
# else es opcional
# Ejecuta si no salió del for con el
# break.
Función range() O La función incorporada range() es la función que itera sobre una secuencia
Función range()
O La función incorporada range() es la función
que itera sobre una secuencia de números.
Genera un iterador de las progresiones
aritméticas:
19
Función range(n) O range (n): genera un iterador para avanzar los números enteros desde el
Función range(n)
O range (n): genera un iterador para avanzar
los números enteros desde el 0 y termina en
(n -1)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
20
Función range(inicio, final) O range (inicio, final): genera el iterador de la lista de números
Función range(inicio, final)
O range (inicio, final): genera el iterador de la
lista de números que comienza en inicio y
termina en (final-1).
>>> list(range(1,6))
[1, 2, 3, 4, 5]
>>> list(range(2,10))
[2, 3, 4, 5, 6, 7, 8, 9]
21
Función range(inicio, final, incremento) O range (inicio, final, incremento): genera el iterador de la lista
Función range(inicio, final, incremento)
O
range (inicio, final, incremento): genera el
iterador de la lista de números que
comienza en inicio y termina en (final-1) con
incremento dado.
O
Este incremento puede ser tanto positivo así
como negativo, pero no cero:
>>> list(range(1,11,2))
[1, 3, 5, 7, 9]
>>> list(range(11,1,-2))
[11, 9, 7, 5, 3]
22
Ejemplo Imprime “Hola!” cinco veces con la sentencia for. for i in range(5): # 0,1,2,3,4
Ejemplo
Imprime “Hola!” cinco veces con la sentencia
for.
for i in range(5): # 0,1,2,3,4
print("Hola!")
print("La siguiente sentencia")
Hola!
Hola!
Hola!
Hola!
Hola!
La siguiente sentencia
23
Ejemplo Imprime los cuadrados del 1 al 5 con la sentencia for. for i in
Ejemplo
Imprime los cuadrados del 1 al 5 con la
sentencia for.
for i in range(1,6): # 1,2,3,4,5
print(str(i) + "^2 = " + str(i ** 2))
print("La siguiente sentencia")
1^2 = 1
2^2 = 4
3^2 = 9
4^2 = 16
5^2 = 25
La siguiente sentencia
24
Ejemplo Imprime los números impares entre 1 y 10, con la sentencia for. for i
Ejemplo
Imprime los números impares entre 1 y 10,
con la sentencia for.
for i in range(1,11,2): # 1,3,5,7,9
print(i)
print("La siguiente sentencia")
1
3
5
7
9
La siguiente sentencia
25
Ejemplo Imprime los números impares entre el 11 y el 2, de forma decreciente con
Ejemplo
Imprime los números impares entre el 11 y el
2, de forma decreciente con la sentencia for.
for i in range(11,1,-2): # 11,9,7,5,3
print(i, end=" ")
print(“\nLa siguiente sentencia")
11 9 7
5 3
La siguiente sentencia
26
break, continue, pass y for-else 27
break, continue, pass y for-else
27
Sentencia break Imprime “Hola!” cinco veces con la sentencia for. Con la sentencia break se
Sentencia break
Imprime “Hola!” cinco veces con la sentencia
for. Con la sentencia break se finaliza la
ejecución del ciclo.
for i in range(1,100,1):
print("Hola!")
if i == 5:
break
print("La siguiente sentencia")
Hola!
Hola!
Hola!
Hola!
Hola!
La siguiente sentencia
28
Sentencia continue Imprime los números pares del 1 al 10 con la sentencia for. Con
Sentencia continue
Imprime los números pares del 1 al 10 con la
sentencia for. Con la sentencia continue se
salta al encabezado del ciclo.
for i in range(1,11,1):
2
if i % 2 != 0:
4
continue
print(i)
print("La siguiente sentencia")
6
8
10
La siguiente sentencia
29
Sentencia pass Imprime la suma de los números impares del 1 al 10, con la
Sentencia pass
Imprime la suma de los números impares del
1 al 10, con la sentencia for. pass es una
instrucción nula, es decir que no hace nada.
Es útil donde eventualmente irá algún código,
pero aún no se ha escrito este código.
s =
0
La suma es 25
for i in range(1,11,1):
if i % 2 == 0:
pass
else:
s
= s
+ i
print("La suma es " + str(s))
30
Sentencia for-else Imprime los números 0, 1, 2, 3, 4 y ELSE con la sentencia
Sentencia for-else
Imprime los números 0, 1, 2, 3, 4 y ELSE con la
sentencia for-else. Se ejecutará la sentencia else,
porque el ciclo for finalizará sin que se ejecute la
sentencia break.
for i in range(0,5,1):
0
print(i)
if i == 7:
1
2
break
3
else:
4
print("ELSE")
print("La siguiente sentencia")
ELSE
La siguiente sentencia
31
Sentencia while-else Imprime los números 0, 1, 2 con la sentencia for- else. No se
Sentencia while-else
Imprime los números 0, 1, 2 con la sentencia for-
else. No se ejecutará la sentencia else, porque el
ciclo for finalizará con la ejecución de la sentencia
break.
for i in range(0,5,1):
0
print(i)
if i == 2:
1
2
break
La siguiente sentencia
else:
print("ELSE")
print("La siguiente sentencia")
32
Ciclos Anidados 33
Ciclos Anidados
33
Ejemplo Se imprime 1, 2, 3, 4, 5 como en el ejemplo de salida. for
Ejemplo
Se imprime 1, 2, 3, 4, 5 como en el ejemplo
de salida.
for i in range(1, 6):
1
for j in range(i):
22
print(i, end="")
print()
333
4444
55555
34
Ejemplo Se imprime 1, 2, 3, 4, 5 como en el ejemplo de salida. for
Ejemplo
Se imprime 1, 2, 3, 4, 5 como en el ejemplo
de salida.
for i in range(1, 6):
1
for j in range(5-i):
22
print(end=" ")
for j in range(i):
333
4444
print(i, end="")
print()
55555
35
Ejemplo Imprime la tabla de multiplicación del 1 al 10. a while a <= 10:
Ejemplo
Imprime la tabla de multiplicación del 1 al 10.
a
while a <= 10:
= 1
for b in range(1, 11):
print("{:2d} * {:2d} = {:3d}".format(a, b, a*b))
a =
a +
1
1 *
1 =
1
1 *
2 =
2
10 *
1 =
10
1 *
3 =
3
10
*
2 =
20
1 *
4 =
4
10
*
3 =
30
1 *
5 =
5
10
*
4 =
40
1 *
6 =
6
10
*
5 =
50
1 *
7 =
7
10
*
6 =
60
1 *
8 =
8
10
*
7 =
70
1 *
9 =
9
10 *
8 =
80
1 * 10 =
10
10
*
9 =
90
36
10
* 10 = 100
Formato de impresión 37
Formato de impresión
37
El método format O El método str.format () de Python de la clase cadena le
El método format
O El método str.format () de Python de la clase
cadena le permite realizar reemplazos de
las variables y el formateo de los valores.
Esto le permite concatenar elementos juntos
dentro de una cadena a través del formato
posicional.
38
Marcadores O Los formateadores funcionan colocando uno o más marcadores ({}) de reemplazo, en una
Marcadores
O Los formateadores funcionan colocando uno
o más marcadores ({}) de reemplazo, en una
cadena y llamando al método str.format().
Se enviará al método el valor que se desea
concatenar en la cadena. Este valor se
ubicará en el mismo lugar donde se colocó
el marcador de posición cuando se ejecuta
el programa.
39
Ejemplo Imprimiendo cadenas que usan un formateador con marcadores de posición. print("Resultado =
Ejemplo
Imprimiendo cadenas que usan un
formateador con marcadores de posición.
print("Resultado = {}".format(5))
print("{} + {} = {}".format(2,3,5))
Resultado = 5
2 +
3 =
5
Marcador de
posición
40
Sintaxis del marcador de posición O Podemos incluir más parámetros dentro del marcador de posición.
Sintaxis del marcador de
posición
O Podemos incluir más parámetros dentro del
marcador de posición.
Sintaxis: {nombre_de_campo: conversión}
O
nombre_de_campo: especifica el número
del índice del argumento del método
str.format()
O
conversión: se refiere al código de
conversión de los datos.
41
Tipos de conversión O El tipo de conversión se refiere al código del tipo que
Tipos de conversión
O El tipo de conversión se refiere al código del
tipo que es de un solo carácter.
O s: para cadenas
O d: para enteros decimales (base-10)
O f: para números en punto flotante.
42
Ejemplo Imprimiendo cadenas que usan un formateador con tipo de conversión y tipo de alineación
Ejemplo
Imprimiendo cadenas que usan un
formateador con tipo de conversión y tipo de
alineación (izq, centro, der).
print("{2} + {1} = {0}".format(5,2,3))
3 +
2 =
5
print("{0:s}".format("hola"))
hola
print("{0:d} {1:f}".format(13, 75.76536))
print("{0:5d} {1:7.2f}".format(13, 75.7653))
13 75.765360
13
75.77
print("{0:^5d} {1:<7.2f}".format(13, 75.7653))
13
75.77
print("{:*^10s}".format("hola"))
***hola***
print("{0:5.0f}".format(75.7653))
76
43
Ejemplo Considerando los formatos de cadenas que se utilizan en la versión 3.7.2 del Python.
Ejemplo
Considerando los formatos de cadenas que se
utilizan en la versión 3.7.2 del Python.
a = "hola"
hola 13 75.76536
b = 13
hola
***hola*** 13
13
75.77
c = 75.76536
75.77
print(f"{a} {b} {c}")
print(f"{a:10s} {b:5d} {c:7.2f}")
print(f"{a:*^10s} {b:^5d} {c:<7.2f}")
44
Gracias
Gracias