Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAna Belén Hernández Mendoza Modificado hace 7 años
1
Paul Leger http://pleger.cl
Repaso While y FOR Paul Leger
2
FOR For i in range(0,10): #puede ser simplemente range(10) print «Hola 1» + str(i) print «Se viene otro hola» print «Chao» Un for siempre tiene un variable asociada. Generalmente es i, puede ser cualquier otra variable Esa variable puede ser usada dentro del for, dependiendo del problema. Podría no ser necesaria Cada vez que desee un cambio incremental o decremental (ej, 1, 2, 3, …) use la instrucción for. Use for cuando conozca un inicio y un fin
3
WHILE respUsuario = 0 while respUsuario != -1:
respUsuario = int(raw_input(«Deme un número»)) print « Respuesta es » + str(respUsuario) print «Pulso -1, gracias» No hay ninguna variable asociada que siempre incremente, por ejemplo i. Esto lo hace diferente a for Hay una condición que en algún momento DEBERÍA VOLVERSE FALSA. Cuidado con ello, tu computador se puede quedar PEGADO Cuando necesite algo que se repita infinita veces hasta que algo ya no se cumpla, use while Si necesita una variable que cambie en cada ciclo, use for
4
Diferencia de Código entre While y For (1/2): USAR UNA VARIABLE QUE INCREMENTA
FOR: For i in range(0,5) #Esto puede ser range(5) print i WHILE: i = 0 While i < 5: print i i = i + 1
5
Diferencia de Código entre While y For (2/2): INFINITO CICLO
WHILE: resp = 0 While resp != -1: resp = int(raw_input(«Dame un numero»)) print resp FOR: import sys For i in range(0, sys.maxint) #No es un verdadero infinito resp = int(raw_input(«Dame un numero»)) print resp if resp == -1: break
6
Patrones típicos en ciclos: SUMA/MULTIPLICACIÓN ACUMULADA
Cuando se conoce un FIN s = 0 for i in range(0,numero): s = s + ALGO p = 1 for i in range(0,numero): p = p * ALGO Cuando NO se conoce un FIN S = 0 while s < 1000: s = s + ALGO p = 1 while p < 1000: p = p * ALGO S = S + ALGO La misma variable (S) en ambos lados del ‘=‘ S = 0 La variable debe ser inicializada con su neutro (0)
7
Patrones típicos en ciclos: VERIFICAR SI UN CICLO TERMINO PORQUE LLEGO A FINAL O PORQUE UNA CONDICIÓN SE CUMPLIÓ (1/2) condicion = 0 num = int(raw_input(«Deme un numero:»)) s = 0 for i in range (0, num): s = s + i if s > 200: print «Su suma se paso de 200» + str(s) condicion = break if condicion == 0: #SI NUNCA CAMBIO SU VALOR print «Felicidades, su suma nunca se paso de 200 » + str(s)
8
Patrones típicos en ciclos: VERIFICAR SI UN CICLO TERMINO PORQUE LLEGO A FINAL O PORQUE UNA CONDICIÓN SE CUMPLIÓ (2/2) condicion = 0 for i in range (0, 20): x = int(input_raw(«Deme su valor opuesto neutral a » +str(i))) if x + i == 0: print «Felicidades diste su valor opuesto neutral» condicion = break if condicion == 0: #SI NUNCA CAMBIO SU VALOR print «nunca diste un valor opuesto neutral»
9
Ejemplo Complejo: VERIFICAR SI UN NÚMERO ES PRIMO O NO (versión 1)
n = int(raw_input(«Deme un número:»)) condicion = 0 For i in range(2,n): #llega hasta un numero antes de n if n%i == 0: #si la division es exacta print «no es primo» condicion = break If condicion == 0: print «es primo»
10
Ejemplo Complejo: VERIFICAR SI UN NÚMERO ES PRIMO O NO (versión 2)
n = int(raw_input(«Deme un número:»)) condicion = True For i in range(2,n): #llega hasta un numero antes de n if n%i == 0: #si la division es exacta condicion = False break If condicion == True: # ‘==True’ puede ser simplificado print «es primo» else: print «no es primo»
11
Ejemplo Complejo: VERIFICAR SI UN NÚMERO ES PERFECTO
n = int(raw_input(«Deme un número:»)) s = 0 For i in range(1,n): #llega hasta un numero antes de n if n%i == 0: s = s + i #si la division es exacta sumamos su divisor If s == n: print «Es perfecto» else: print «No es perfecto»
12
Modifique los dos ejemplos complejos para que usen WHILE
Ejercicios Modifique los dos ejemplos complejos para que usen WHILE Modifique el programa de numeros primos para que muestre el ńumero culpable de ser primo NIVEL NINJA: Cree un programa que muestre todos los primos desde 2 a n, donde n es ingresado por el usuario. AYUDA: Se necesita dos for anidados
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.