Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones...

13
22/04/20 Ing. Roberto Martínez Román - [email protected] 1 Ciclos Repitiendo instrucciones en Python Ing. Roberto Martínez Román - [email protected] 1 Ciclos controlados por contador El ciclo for se utiliza para hacer iteraciones (repeticiones). El ciclo for recorre cada uno de los elementos de una colección. Uno a la vez. Se repite tantas veces como datos tenga la colección. El número de veces que se repite el ciclo es conocido con anterioridad. Ing. Roberto Martínez Román - [email protected] Iteraciones Visita elementos de una colección Se puede conocer el número de 2

Transcript of Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones...

Page 1: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 1

Ciclos

RepitiendoinstruccionesenPython

Ing.RobertoMartínezRomá[email protected]

1

Ciclos controlados por contador

� Elciclofor seutilizaparahaceriteraciones(repeticiones).

� Elciclofor recorrecadaunodeloselementosdeunacolección.Unoalavez.

� Serepitetantasvecescomodatostengalacolección.

� Elnúmerodevecesqueserepiteelcicloesconocidoconanterioridad.

Ing.RobertoMartínezRomán- [email protected]

Iteraciones Visitaelementosdeunacolección

Sepuedeconocerelnúmerodeiteraciones

2

Page 2: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 2

for

for variable in colección:instrucciones

Normalmente,lacolección esunasecuenciadevaloresquegeneralafunciónrange.

range(4),generalasecuencia[0,1,2,3]range(10),generalasecuencia[0,1,2,3,4,5,6,7,8,9]range(n),generalasecuencia[0,1,2…..,n-1]

Ing.RobertoMartínezRomán- [email protected]

3

Demo

Ing.RobertoMartínezRomán- [email protected]

4

Page 3: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 3

Ejemplos

Pruebaenelshell dePython lassiguientesexpresiones

list(range(10))list(range(5))list(range(21))list(range(2))list(range(1))list(range(0))

Ing.RobertoMartínezRomán- [email protected]

5

La función range

� Estafuncióntienealgunasvariaciones.

� range(5) [0,1,2,3,4]

� range(3,6) [3,4,5]

� range(20,46,5) [20,25,30,35,40,45]

� range(20,50,5) [20,25,30,35,40,45]

Ing.RobertoMartínezRomán- [email protected]

6

Page 4: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 4

Demo

Ing.RobertoMartínezRomán- [email protected]

7

Ejercicio

� Escribeciclosfor enPython paragenerarlassiguientesseriesdevalores.

� 2,4,6,8,10,12� 1,3,5,7,9,11,13,15� 50,40,30,20,10� -5,-6,-7,-8,-9� -2,-1,0,1,2

Ing.RobertoMartínezRomán- [email protected]

8

Page 5: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 5

Ejercicio

� Escribeunprogramaquemuestraunalistadevaloresde1a20ylosclasificacomoparesoimpares.

01 impar02 par03 impar04 par… …20 par

Ing.RobertoMartínezRomán- [email protected]

9

Ejercicio

� Escribeunafunciónquedibujalasiguientecuadricula.UsaPIL.Laseparaciónentrelíneasesde20px.500x500

Ing.RobertoMartínezRomán- [email protected]

10

Page 6: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 6

Ejercicio

� Escribeunprogramaquemuestraunalistadevaloresde1alimite ylosclasificacomoparesoimpares.

� limite lotecleaelusuario.

Ing.RobertoMartínezRomán- [email protected]

11

Ejercicio

� Escribeunafunciónqueimprimelatablademultiplicardelnúmero7.

� Escribeunafunciónqueimprimelatablademultiplicardeunnúmeroquellegacomoparámetro.� Agregacódigoparapreguntarlealusuarioelnúmerodelatablaquequierevereimprímelaenpantalla.

� EscribeunafunciónqueimprimeTODASlastablasdemultiplicar,de1a10.

Ing.RobertoMartínezRomán- [email protected]

12

Page 7: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 7

Contadores

� Uncontador esunavariabledetipoenteroque"cuenta"oregistrasucesosqueocurrendentrodelprograma;lasoperacionesprincipalesson:

� Inicializar elcontador.Normalmentealiniciodelprogramaolafunción.• contador=0

� Contar.Generalmentedentrodeunacondiciónoenellugardondequeremosregistrarelsuceso.• contador=contador+1

Ing.RobertoMartínezRomán- [email protected]

13

Ejemplo de contador

� Escribeunprogramaquelea10valoresenterosdesdeelteclado,yqueimprimaelnúmerodevaloresnegativosleídos.

� Escribeunprogramaquelee5calificacioneseimprimeelnúmerodecalificacionesaprobatorias.

Ing.RobertoMartínezRomán- [email protected]

14

Page 8: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 8

Acumuladores

� Unacumuladoresunavariableespecialquealmacenasumasoproductostotales.Agregaaunvalorinicialotrosvalores.Lasoperacionesprincipalesson:� Inicializar elacumulador.• acumulador=0 #Cuandoalmacenasumas• acumulador=1 #Cuandoalmacenaproductos

� Acumular.Agregaunvaloraltotal• acumulador=acumulador+valor• acumulador=acumulador*valor

Ing.RobertoMartínezRomán- [email protected]

15

Ejemplo

� Escribeunprogramaquelee5calificacioneseimprimeelpromediosólodelascalificacionesaprobatorias.

Ing.RobertoMartínezRomán- [email protected]

16

Page 9: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 9

Comandos de ImageDraw

� Dibujarunalínea.� canvas.line( (50,50) + (450,450), "blue")

� canvas.line( [50, 50, 450, 450], (0,0,255))

� Dibujararcos.� canvas.arc( (200,200) + (300,300), 0, 180, "red")

� Dibujaelipses.� canvas.ellipse( (300,300) + (400,350), "red", "blue")

Ing.RobertoMartínezRomán- [email protected]

Puntoinicial

Puntofinal Color

RGB

Cuadroquecontieneelarco

Anguloinicial

Angulofnal

Color derelleno

Colorlínea

18

Comandos de ImageDraw

� Dibujarunrectángulo.� canvas.rectangle( (250,100) + (350,200), "blue")

� Dibujarmultilíneas.� canvas.line( (300,450) + (500,450) + (400, 300) + (300,450), "pink")

� Dibujarpolígonos.� canvas.polygon( (100,450) + (300,450) + (200, 300), "green")

Ing.RobertoMartínezRomán- [email protected]

Puedenagregarunparámetroparaindicarel

colordelalínea

19

Page 10: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 10

Comandos de ImageDraw

� Dibujarrebanadasdepastel.� canvas.pieslice( (50, 100) + (250, 300), 0, 90, "yellow")

� Dibujarpixeles(puntos).� canvas.point( (150,200), "black")

� Dibujartexto.� canvas.text( (50,100), "ImageDraw", "orange")

Ing.RobertoMartínezRomán- [email protected]

https://pillow.readthedocs.io/en/3.0.x/reference/ImageDraw.html

20

Ejercicios

Ing.RobertoMartínezRomán- [email protected]

21

Page 11: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 11

Ing.RobertoMartínezRomán- [email protected]

� Escribefuncionesquegenerenestasfiguras

22

Aproximando PI

� ExistendiferentesalgoritmosquenospermitenobtenerunabuenaaproximaciónalvalordelaconstantePI,unodeelloseselAlgoritmodeGottfriedWilhem vonLeibniz:

𝜋 𝑛 = 411−13+15−17+19−⋯

1𝑛

� Entremayorseaellímitedelaserie(n),esmáscercanalaaproximaciónqueseobtiene.

� ImplementalafunciónaproximarPI,querecibeellímiten delaserieparacalcularyregresarunaaproximacióndePI.

Ing.RobertoMartínezRomán- [email protected]

23

Page 12: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 12

Ciclos anidados

� Sonciclosqueestándentrodeotrosciclos.

for i in range(5):for j in range(3):

print("i=", i, ", j=", j)

Ing.RobertoMartínezRomán- [email protected]

Pruebaestecódigo en:www.pythontutor.com/

25

Ejercicio

Ing.RobertoMartínezRomán- [email protected]

Escribeunafunción querecibalaalturadelasiguienteescalerayladibujeusandopygame.Lalongituddecadacuadroes50.

26

Page 13: Ciclos€¦ · Ciclos controlados por contador El ciclo forse utiliza para hacer iteraciones (repeticiones). El ciclo forrecorre cada uno de los elementos de una colección. Uno a

22/04/20

Ing. Roberto Martínez Román [email protected] 13

Ejercicio

� Escribeciclosparagenerarlasiguienteimagen.Sololoqueestáenelrecuadro:

Ing.RobertoMartínezRomán- [email protected]

27