Bucles y Control de Flujo – PyBásico
Posted on
Control de flujo es una de primeras cosas que aprendes en las ciencias de la computación, pero quiero presentar algunos mecanismos adicionales de control de flujo que no siempre se le enseña.
Supongo que sabes los dos bucles en Python: while
y for
.
Un ejemplo por doc.python.org.ar:
for n in range(2,10): for x in range(2,n): if n % x == 0: print(n, 'es igual a', x, '*', n/x) break else: print(n, 'es un numero primo')
Otro ejemplo:
temperatura = 1 while(temperatura < 100): for i in range(10): if i == 0: continue temperatura = i * temperatura print('la temperatura es', temperatura) if temperatura % 2 != 0: pass
Vamos a comenzar mirando el primer ejemplo.
break
for x in range(2,n): if n % x == 0: print(n, 'es igual a', x, '*', n/x) break
La sentencia break
le dice al algoritmo que parar todas iteraciones del bucle después este momento. En el caso del ejemplo, una vez que n se encuentra divisible por algún x entonces la computadora no verifica cualquier otro valor de x.
else
for x in range(2,n): if n % x == 0: print(n, 'es igual a', x, '*', n/x) break else: print(n, 'es un numero primo')
La sentencia else
se usa similar a la sintaxis con la sentencia try
. Básicamente, la sentencia else
está conectada al bucle y cuando el bucle no tiene interrupción (lo que significa que la sentencia break
no es usada) lo que estaba bajo la sentencia else
se ejecuta.
continue
for i in range(10): if i == 0: continue temperatura = i * temperatura print('la temperatura es', temperatura)
La sentencia continue
se usa para indicar a la computadora que debe comenzar el bucle de nuevo desde este punto. En el ejemplo, si i es igual a 0, entonces va a la siguiente iteración. El codigo también se puede formatear de esta manera:
for i in range(10): if i != 0: temperatura = i * temperatura print('la temperatura es', temperatura)
pass
if temperatura % 2 != 0: pass
La sentencia pass
se usa principalmente cuando la programa requiere una sentencia pero no quieres que pase nada. También, se usa para crear un class
vacío.
class vacio: pass
Perdón por la desaparición. Estaba perezosa.
Por más información:
(Me gusta el primero porque es la documentación)
http://docs.python.org.ar/tutorial/2/controlflow.html
http://librosweb.es/libro/python/capitulo_2/estructuras_de_control_de_flujo.html
http://mundogeek.net/archivos/2008/01/29/python-control-de-flujo/
Deja una respuesta