Keywords: easytut

Siguiente: Decisiones Arriba: Tutor de Python para No-programadores Anterior: ¿Quién vive? Contenido
Subsecciones

- Rizos While
- Ejemplos

# Cuente hasta 10

# Rizos While

Presentamos nuestra primera estructura de control. Normalmente la computadora empieza con el primer renglón y sigue hacia abajo. Las estructuras de control cambian el orden de ejecución de las declaraciones o deciden si una cierta declaración será ejecutada. Vea a continuación el código para un programa que utiliza la estructura de control while:

    a = 0
    while a < 10:
            a = a + 1
            print a

Y esta es la emocionante respuesta del programa:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

(¿Acaso pensó que transformar su computadora en una calculadora de cinco dólares era lo peor que podía pasar?) ¿Qué hace este programa? Primero ve la declaración `a = 0` y hace `a` igual a cero. Luego ve `while a < 10:` y la computadora revisa si `a < 10`. La primera vez la computadora ve que`a` es igual a cero así que es menor a 10. En otras palabras, mientras `a` sea menor a 10 la computadora ejecutará las declaraciones con sangría.

He aquí otro ejemplo del uso de `while`:

    a = 1
    s = 0
    print 'Escriba números para añadir a la suma.'
    print 'Escriba 0 para salir del programa.'
    while a != 0 :
            print 'Suma en este momento:',s
            a = input('Numero? ')
            s = s + a
    print 'Suma Total =',s

La primera vez que ejecuté este programa Python imprimió en la pantalla:

      File "suma.py", line 3
        while a != 0
                    ^
    SyntaxError: invalid syntax

Había olvidado poner `:` despues del while. El mensaje de error indicaba el problema y dónde pensaba que estaba el error.`` Después de arreglar el problema esto es lo que hice con el programa:

    Escriba números para añadir a la suma.
    Escriba 0 para salir del programa.
    Suma en este momento: 0
    Numero? 200
    Suma en este momento: 200
    Numero? -15.25
    Suma en este momento: 184.75
    Numero? -151.85
    Suma en este momento: 32.9
    Numero? 10.00
    Suma en este momento: 42.9
    Numero? 0
    Suma Total = 42.9

Note cómo `print 'Suma Total =',s` solamente es ejecutado al final. La declaración `while` afecta solamente los renglones con sangría (con margen izquierdo más al centro de la página). El símbolo `!=` significa "no es igual" así que `while a != 0 :` significa "ejecuta las declaraciones con sangría hasta que el valor de `a` sea cero.

Ahora que tenemos rizos while, es posible tener programas en ejecución para siempre. Un modo muy fácil de hacerlo es escribiendo un programa como siguiente:

    while 1 == 1:
         print "Auxilio, estoy atrapado en un rizo."

Este programa imprimirá en la pantalla `Auxilio, estoy atrapado en un rizo.` hasta la muerte térmica del universo o hasta que usted mismo lo pare. El modo para detenerlo es oprimir las teclas Control (or Ctrl) y `c' (la letra) simultáneamente. Esto matará el programa (Nota: a veces será necesario usar la tecla Enter después de Control-C.)

# Ejemplos

Fibonnacci.py

    #Este programa calcula la serie de Fibonacci
    a = 0
    b = 1
    conteo = 0
    conteo_max = 20
    while conteo < conteo_max:
        conteo = conteo + 1
        #Necesitamos guardar 'a' desde que la cambiamos
        a_anterior = a
        b_anterior = b
        a = b_anterior
        b = a_anterior + b_anterior
        # Note que la , al final de la declaracion print evita
        # que comience un nuevo renglon
        print a_anterior,
    print

Respuesta del programa:

    0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181

Claveacceso.py

    # Espera a que capture la clave de acceso.  Use control-C para salir del programa
    # sin la clave de acceso

    # Note que esta no debe ser la clave de acceso de modo que
    # el rizo while sea ejecutado por lo menos una vez.
    clave = "fubar"

    #note que != significa 'no es igual'
    while clave != "unicornio":
        password = raw_input("Clave:")
    print "Bienvenido"

Muestra:

    Clave:auo
    Clave:y22
    Clave:password
    Clave:open sesame
    Clave:unicornio
    Bienvenido

Siguiente: Decisiones Arriba: Tutor de Python para No-programadores Anterior: ¿Quién vive? Contenido
Traducido por Victor M. Rosas-Garcia quimico69@yahoo.com