Bucles e Iteración Capítulo 5 Python para Todos

Slides:



Advertisements
Presentaciones similares
Estructuras de control
Advertisements

Pippy (Python para niños)‏ 1.
Te presento a Python Qué es Python? Lenguaje interpretado
Estructuras de Repetición
Fundamentos de Programación
Tema 4: Sentencias de control
Programación de Computadores
1002 JM while not detener: adivina = int(raw_input('Ingrese un entero : ')) if adivina == numero: print 'Felicitaciones, haz adivinado!.' detener = True.
Sesión 14: Python (5) – Aplicaciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
Sesión 13: Python (4) – Estructura Repetición. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
Estructuras de Decisión
Applications Development I 6.1 Foro Tomas Anzalotta Alvarado.
ESTRUCTURAS DE DATOS Y ALGORITMOS Samuel Peñaló
CICLOS CONDICIONALES DINÁMICOS Y CICLOS CONDICIONALES FIJOS Aixa Sosa Colón NE: Programación 2250 – 3240 ONL Profesora. Rebecca Acevedo Rivera.
Asignación 6.1 Foro. Ciclos condicionales dinámicos  Estos ciclos deben ser del tipo booleano, es decir que se evaluara una expresión con un resultado.
Ciclos Condicionales Joel R. Almodóvar Rivera Tarea 6-1 PROG2310L.
Ciclos en Visual Basic Elena Lopez National University College Online Agosto 3, 2010.
Curso de Python Clase 4 Dpto. Telemática CUJAE Curso
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
Unidad 1 Principios de electrónica digital
PROGRAMACION.
Paul Leger Repaso While y FOR Paul Leger
Tema 6: Elementos de programación adicionales
Estructuras de Control en Visual Basic.net
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
Estructuras Repetitivas Estructuras Repetitivas
WORD.
Ciclos condicionales y exactos Estructura de control de ciclos
Introducción a Base de Datos
Paul Leger CICLOS: For Paul Leger
Introducción a C Parte 1 Aurelio Sanabria Estructuras de datos
Estructuras de control iterativas
Estructuras de Control en Visual Basic.net
Sincronización de vigas en paralelo
While... End While Jerónimo Jesica Oropeza William Montes Cesar
PSEUDOCÓDIGO Prof. Rafael Mourglia.
TUTORIAL PSeint.
Estructuras de control repetitivas
Comprueba si una u otra condición se cumple o no.
Fundamentos de programación en TIG 4. Aptana y Arcpy
Hipervínculos scratch
Fundamentos de Programación. Estructuras de Control
ESTRUCTURAS DE CONTROL EN VISUAL BASIC.NET Prof.: Rafael Mourglia.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
HERRAMIENTAS DE PROGRAMACIÓN
Estructuras de Repetición Pseudocodigo1 Estructuras de Repetición Algoritmos Mientras Hacer-Mientras Para.
Introducción práctica la uso de la tarjeta Arduino.
CURSO PROGRAMACIÓN BÁSICA SEMANA 3 ¿Qué es un programa?
PROGRAMACIÓN (2).
CICLOS EN JAVA FOR, WHILE, DO WHILE Un ciclo en Java o bucle en Java (como prefieras llamarlo) permite repetir una o varias instrucciones cuantas veces.
Informática Ingeniería en Electrónica y Automática Industrial
Estructuras de Repetición Algoritmos
Sentencias de Control Repetitivas
¿Por qué programar? Capítulo 1 Python para Todos
Construyendo Nuestras Propias Funciones
Bucles e Iteración – Parte 2
Bucles e Iteración – Parte 4
Expresiones– Parte 2 PYTHON PARA TODOS Expresiones.
Funciones Capítulo 4 Python para Todos PYTHON PARA TODOS
Ejecución Condicional
Variables, Expresiones y Enunciados
Introducción – Parte 4 PYTHON PARA TODOS Hablemos con Python.
Más Patrones de Ejecución Condicional
Bucles e Iteración Capítulo 5 Python para Todos
Expresiones– Parte 3 PYTHON PARA TODOS Crear un Programa.
Lenguajes de Bucle: Lo Que Hacemos en los Bucles
¿Por qué programar? Capítulo 1 Python para Todos
Funciones Capítulo 4 Python para Todos
Variables, Expresiones y Enunciados
Ejecución Condicional
Transcripción de la presentación:

Bucles e Iteración Capítulo 5 Python para Todos www.py4e.com Nota de Chuck. Si está usando estos materiales, puede retirar el logotipo de UM y reemplazarlo por el suyo pero, por favor, conserve el logo de CC-BY en la primera página así como también retenga la(s) página(s) de agradecimientos al final. Python para Todos www.py4e.com

Pasos Repetidos Resultado: 5 4 3 2 1 ¡Blastoff! Programa: No Sí n = 5 Programa: n = 5 while n > 0 : print(n) n = n – 1 print('Blastoff') No Sí n > 0 ? print(n) n = n -1 Los bucles (pasos repetidos) tienen variables de iteración que cambian cada vez a través del bucle. A menudo, estas variables de iteración atraviesan una secuencia de números. print('Blastoff')

¿Qué es lo que está mal en este bucle? Un Bucle Infinito n = 5 No Sí n > 0 ? n = 5 while n > 0 : print('Enjabonar') print('Enjuagar') print('Secar') print('Enjabonar') print('Enjuagar') ¿Qué es lo que está mal en este bucle? print 'Secar'

¿Qué es lo que está haciendo este bucle? Otro Bucle n = 0 No Sí n > 0 ? n = 0 while n > 0 : print('Enjabonar') print('Enjuagar') print('Secar!') print('Enjabonar') print('Enjuagar') ¿Qué es lo que está haciendo este bucle? print 'Secar'

Romper un Bucle El enunciado break (romper) termina el bucle actual y salta al enunciado que le sigue inmediatamente al bucle Es como una prueba de bucle que puede suceder en cualquier lado en el cuerpo del bucle while True: línea = input('> ') if línea == 'terminado' : break print(línea) print('terminado') > hola hola > finished finalizado > done terminado

Romper un Bucle El enunciado break (romper) termina el bucle actual y salta al enunciado que le sigue inmediatamente al bucle Es como una prueba de bucle que puede suceder en cualquier lado en el cuerpo del bucle > hola hola > finished finalizado > done terminado while True: línea = input('> ') if línea == 'terminado' : break print(línea) print('Terminado')

No Sí .... Break ... while True: línea = input('> ') if línea == 'terminado' : break print(línea) print('terminado') No Sí ¿ Verdade-ro? .... Break ... http://en.wikipedia.org/wiki/Transporter_(Star_Trek) print('Terminado')

Finalizar una Iteración con Continue El enunciado continue (continuar) termina la iteración actual y salta a la parte superior del bucle y comienza la siguiente iteración while True: line = input('> ') if line[0] == '#' : continue if line == 'terminado' : break print(line) print('Terminado') > hola Hola > # no imprimir esto > Imprimir esto imprimir esto > terminado Terminado

Finalizar una Iteración con Continue El enunciado continue (continuar) termina la iteración actual y salta a la parte superior del bucle y comienza la siguiente iteración while True: línea = input('> ') if línea[0] == '#' : continue if línea == 'terminado' : break print(línea) print('Terminado') > hola hola > # no imprimir esto > Imprimir esto imprimir esto > terminado Terminado

No Sí .... continue ... ¿Verdadero? while True: línea = raw_input('> ') if línea[0] == '#' : continue if línea == 'terminado' : break print(línea) print('Terminado') .... continue ... print('Terminado')

Bucles Indefinidos Los bucles while se llaman “bucles indefinidos” porque continúan hasta que una condición lógica se vuelve False (Falsa) Los bucles que hemos visto hasta ahora son bastante fáciles de examinar para determinar si terminarán o si serán “bucles infinitos” A veces, es más difícil saber con seguridad si un bucle terminará

Bucles Definidos Nota de Chuck. Si está usando estos materiales, puede retirar el logotipo de UM y reemplazarlo por el suyo pero, por favor, conserve el logo de CC-BY en la primera página así como también retenga la(s) página(s) de agradecimientos al final.

Bucles Definidos Con bastante frecuencia tenemos una lista de los ítems de las líneas en un archivo, es decir un conjunto finito de cosas Podemos escribir un bucle para ejecutar el bucle una vez para cada uno de los ítems de un conjunto utilizando la secuencia for de Python Estos bucles se denominan “bucles definidos” porque se ejecutan una cantidad exacta de veces Decimos que los “bucles definidos iteran a través de los miembros de un conjunto”

Un Bucle Definido Simple 5 4 3 2 1 Blastoff for i in [5, 4, 3, 2, 1] : print(i) print('Blastoff')

Un Bucle Definido con Cadenas Feliz año nuevo: Joseph Feliz año nuevo: Glenn Feliz año nuevo: Sally ¡Terminado! amigos = ['Joseph', 'Glenn', 'Sally'] for amigos in amigos : print('Feliz año nuevo:', amigo) print('Terminado')

Un Bucle Definido Simple No Sí ¿Termi-nado? Avanzar i 5 4 3 2 1 Blastoff for i in [5, 4, 3, 2, 1] : print(i) print('Blastoff') imprimir(i) Los bucles definidos (bucles for) tienen variables de iteración explícitas que cambian cada vez a través del bucle. Estas variables de iteración se mueven a través del conjunto o secuencia. imprimir('Blastoff')

Secuencia de cinco elementos Observando a In... La variable de iteración “itera” a través de la secuencia (conjunto ordenado) El bloque (cuerpo) del código se ejecuta una vez para cada valor in de la secuencia La variable de iteración se mueve a través de todos los valores in de la secuencia Secuencia de cinco elementos Variable de iteración for i in [5, 4, 3, 2, 1] : print(i)

No Sí ¿Terminado? La variable de iteración “itera” a través de la secuencia (conjunto ordenado) El bloque (cuerpo) del código se ejecuta una vez para cada valor in de la secuencia La variable de iteración avanza a través de todos los valores in de la secuencia Avanzar i imprimir(i) for i in [5, 4, 3, 2, 1] : print(i)

No Sí Avanzar i imprimir(i) i = 5 print(i) i = 4 i = 3 i = 2 i = 1 ¿Termi-nado? Avanzar i imprimir(i) for i in [5, 4, 3, 2, 1] : print(i)

Bucles Definidos Con bastante frecuencia tenemos una lista de los ítems de las líneas en un archivo, es decir un conjunto finito de cosas Podemos escribir un bucle para ejecutar el bucle una vez para cada uno de los ítems de un conjunto utilizando la secuencia for de Python Estos bucles se denominan “bucles definidos” porque se ejecutan una cantidad exacta de veces Decimos que los “bucles definidos iteran a través de los miembros de un conjunto”

Lenguajes de Bucle: Lo Que Hacemos en los Bucles Nota: Aunque estos ejemplos sean simples, los patrones se aplican a todos los tipos de bucles

Creando Bucles “inteligentes” El truco consiste en “conocer” algo acerca del bucle entero cuando está estancado escribiendo código que solo ve una entrada por vez Configure algunas variables con los valores iniciales para objeto en los datos: Buscar o hacer algo para cada entrada por separado, que actualice una variable Observe las variables

Iteración de un conjunto $ python basicloop.py Antes 9 41 12 3 74 15 Después print('Antes') for objeto in [9, 41, 12, 3, 74, 15] : print(objeto) print('Después')

¿Cuál es el número mayor?

¿Cuál es el número mayor? 3

¿Cuál es el número mayor? 41

¿Cuál es el número mayor? 12

¿Cuál es el número mayor? 9

¿Cuál es el número mayor? 74

¿Cuál es el número mayor? 15

¿Cuál es el número mayor?

¿Cuál es el número mayor? 3 41 12 9 74 15

¿Cuál es el número mayor? -1 largest_so_far

¿Cuál es el número mayor? 3 3 largest_so_far

¿Cuál es el número mayor? 41 41 largest_so_far

¿Cuál es el número mayor? 12 41 largest_so_far

¿Cuál es el número mayor? 9 41 largest_so_far

¿Cuál es el número mayor? 74 74 largest_so_far

¿Cuál es el número mayor? Bucles e Iteración – Parte 3 PYTHON PARA TODOS ¿Cuál es el número mayor? 15 74

¿Cuál es el número mayor? 3 41 12 9 74 15 74

Para encontrar el mayor valor $ python largest.py Antes -1 9 9 41 41 41 12 41 3 74 74 74 15 Después 74 largest_so_far = -1 print('Antes', largest_so_far) for the_num in [9, 41, 12, 3, 74, 15] : if the_num > largest_so_far : largest_so_far = the_num print(largest_so_far, the_num) print('Después', largest_so_far) Creamos una variable que contenga el mayor valor que se haya visto hasta ahora (largest_so_far). Si el número actual que estamos buscando es más grande, entonces será el nuevo mayor valor que se haya visto hasta ahora (largest_so_far).

Más Lenguajes de Bucle Nota de Chuck. Si está usando estos materiales, puede retirar el logotipo de UM y reemplazarlo por el suyo pero, por favor, conserve el logo de CC-BY en la primera página así como también retenga la(s) página(s) de agradecimientos al final.

Conteo en un Bucle $ python countloop.py Antes 0 1 9 2 41 3 12 4 3 5 74 6 15 Después 6 zork = 0 print('Antes', zork) for objeto in [9, 41, 12, 3, 74, 15] : zork = zork + 1 print(zork, objeto) print('Después', zork) Para contar cuántas veces ejecutamos un bucle, introducimos una variable de conteo que comience en 0 y le sumamos uno cada vez a través del bucle.

Suma en un Bucle $ python countloop.py Antes 0 9 9 50 41 62 12 65 3 139 74 154 15 Después 154 zork = 0 print('Antes', zork) for objeto in [9, 41, 12, 3, 74, 15] : zork = zork + objeto print(zork, objeto) print('Después', zork) Para sumar un valor que encontramos en un bucle, introducimos una variable de suma que comience en 0 y le sumamos el valor a la suma cada vez a través del bucle.

Sacar el Promedio en un Bucle $ python averageloop.py Antes 0 0 1 9 9 2 50 41 3 62 12 4 65 3 5 139 74 6 154 15 Después 6 154 25 conteo = 0 suma = 0 print('Antes', conteo, suma) for valor in [9, 41, 12, 3, 74, 15] : conteo = conteo + 1 suma = suma + valor print(conteo, suma, valor) print('Después', conteo, suma, suma / conteo) Un promedio solo combina los patrones de conteo (count) y suma (sum) y divide cuando el bucle ha terminado.

Filtrar en un Bucle print('Antes') for valor in [9, 41, 12, 3, 74, 15] : if valor > 20: print 'Mayor Número',valor print('Después') $ python search1.py Antes Mayor número 41 Mayor número 74 Después Utilizamos un enunciado hipotético “if” en el bucle para captar / filtrar los valores que estamos buscando.

Búsqueda Utilizando una Variable Booleana $ python search1.py Antes False (Falsa) False (Falsa) 9 False (Falsa) 41 False (Falsa) 12 True (Falsa) 3 True (Falsa) 74 True (Falsa) 15 Después True (Verdadera) found = False print('Antes', found) for valor in [9, 41, 12, 3, 74, 15] : if valor == 3 : found = True print(found, valor) print('Después', found) Si solo deseamos buscar y saber si un valor fue hallado (found), utilizamos una variable que comience como False (Falsa) y se vuelva True (Verdadera) tan pronto como encontramos (find) lo que estamos buscando.

Cómo Encontrar el Menor Valor $ python largest.py Antes -1 9 9 41 41 41 12 41 3 74 74 74 15 Después 74 mayor_hasta_ahora = -1 print('Antes', mayor_hasta_ahora) for the_num in [9, 41, 12, 3, 74, 15] : if the_num > mayor_hasta_ahora : mayor_hasta_ahora = the_num print(mayor_hasta_ahora, the_num) print('Después', mayor_hasta_ahora) ¿Cómo cambiaríamos esto para hacer que encuentre el menor valor de la lista?

Cómo Encontrar el Menor Valor menor_hasta_ahora = -1 print('Antes', menor_hasta_ahora) for the_num in [9, 41, 12, 3, 74, 15] : if the_num < menor_hasta_ahora : menor_hasta_ahora = the_num print(menor_hasta_ahora, the_num) print('Después', menor_hasta_ahora) Cambiamos el nombre de la variable por menor valor hasta ahora (smallest_so_far) y cambiamos > por <

Cómo Encontrar el Menor Valor $ python smallbad.py Antes -1 -1 9 -1 41 -1 12 -1 3 -1 74 -1 15 Después -1 menor_hasta_ahora = -1 print('Antes', menor_hasta_ahora) for the_num in [9, 41, 12, 3, 74, 15] : if the_num < menor_hasta_ahora : menor_hasta_ahora = the_num print(menor_hasta_ahora, the_num) print('Después', menor_hasta_ahora) Cambiamos el nombre de la variable por menor valor hasta ahora (smallest_so_far) y cambiamos > por <

Cómo Encontrar el Menor Valor menor = Ninguno print('Antes') for valor in [9, 41, 12, 3, 74, 15] : if menor is Ninguno: menor = valor elif valor < menor : print(menor, valor) print('Después', menor) $ python smallest.py Antes 9 9 9 41 9 12 3 3 3 74 3 15 Después 3 Aún tenemos una variable que es menor valor (smallest) hasta ahora. La primera vez en el bucle menor valor es Ninguno, entonces tomamos el primer valor como menor valor.

Los Operadores “is” e “is not” Python tiene un operador is (es) que puede ser utilizado en expresiones lógicas Implica que “es el mismo que” Similar a, pero más fuerte que == is not (no es) también es un operador lógico menor = Ninguno print('Antes') for valor in [3, 41, 12, 9, 74, 15] : if menor is Ninguno: menor = valor elif valor < menor : print menor, valor print('Después', menor)

Síntesis Bucle For (definido) Bucle While (indefinido) Variables de iteración Lenguajes de bucle Mayor o menor Bucle While (indefinido) Bucles infinitos Uso de Break Uso de Continue

Agradecimientos / Colaboraciones Estas diapositivas están protegidas por derechos de autor 2010- Charles R. Severance (www.dr-chuck.com) de la Facultad de Información de la Universidad de Michigan y open.umich.edu, y se ponen a disposición bajo licencia de Creative Commons Attribution 4.0. Por favor, conserve esta última diapositiva en todas las copias del documento para cumplir con los requisitos de atribución de la licencia. Si realiza algún cambio, agregue su nombre y el de su organización a la lista de colaboradores en esta página cuando republique los materiales. Desarrollo inicial: Charles Severance, Facultad de Información de la Universidad de Michigan … Ingrese nuevos colaboradores y traductores aquí ...