next up previous contents
Siguiente: Decisiones Arriba:Tutor de Python para No-programadores Anterior: ¿Quién vive?   Contenido

Subsecciones

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 quea 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


next up previous contents
Siguiente: Decisiones Arriba:Tutor de Python para No-programadoresAnterior: ¿Quién vive?   Contenido
Josh Cogliati jjc@honors.montana.edu
Traducido por Victor M. Rosas-Garcia quimico69@yahoo.com