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 un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *