Diario de un programador día 87
Estructuras repetitivas. While, Do, For.
En esta clase (que es casi un
copy/paste de la anterior), se mostrará la sintaxis de esas estructuras en python.
Si se fijan, he tachado la instrucción DO y eso es porque en python no existe
esta instrucción. Más abajo se enseñará cómo escribir una estructura similar
utilizando la estructura while.
La explicación de esas estructuras
fue mostrada en su momento, durante los capítulos 9, 10 y 11, por lo que
solamente mostraré su sintaxis, con la finalidad de avanzar rápidamente para llegar a estudiar lo nuevo que nos
ofrece este lenguaje y ver sus
posibilidades.
1.- WHILE
La sintaxis es:
while condicion verdadera:
instrucciones
Como se puede ver, su construcción es similar a la instrucción IF. Se
deben respetar los dos puntos (:) y la indentación, ya que de otra forma, todo
lo que está fuera de la indentación se considera fuera de la instrucción.
Ejemplo:
num = 0
while num != 5:
num = int(input("Ingresa un 5 para continuar: "))
if num != 5:
print("Debes ingresar un 5")
print("Numero 5 ingresado,
gracias!!!")
Nunca olvidar dejar sangrías o
indentación.
Otro
ejemplo:
continuar =
1
while continuar == 1:
edad = int(input("Ingresa tu edad:
"))
if edad >= 18:
print("Eres mayor de edad")
else:
print("Eres menor de edad")
continuar = int(input("Otro
ingreso??\n1 = Si\nOtro numero = No: "))
print("Hasta
luego!!!")
2.- DO
Como dije antes, en python no existe esta instrucción, pero hay una forma
de obtener el mismo resultado, utilizando la estructura while, mezclado con un
if y un break.
Como se ha dicho en clases anteriores, la gracia de esta instrucción, es
que siempre se ejecute al menos una vez. Aquí un ejemplo de cómo lograr esto
(también hay otras formas):
Ejemplo:
while True :
num = int(input("Ingresa un 5 para
continuar: "))
if num != 5:
print("Debes ingresar un 5")
if num == 5:
break
print("Numero
5 ingresado, gracias!!!")
La primera línea, "while True:" hace que el
bucle siempre se ejecute (al igual que la estructura do). Una vez dentro del
bucle, se necesita de una condición que lo haga finalizar. Esa condición se
encuentra al final de la estructura (al igual que la estructura do). Para
lograr esto, se utiliza una condición IF que contenga la condición para
finalizar y dentro de esa instrucción, se coloca la palabra clave
"break", la cual permite salir de un bucle (que también puede ser un
bucle for)
En este ejemplo, el programa solicita al usuario que ingrese un número 5,
si el usuario no ingresa ese número, entonces el bucle se vuelve a iniciar. Si
el usuario ingresa un 5, entonces se ejecuta el break y se sale del bucle
while. Ya fuera del bucle, ejecuta la siguiente línea, que es una instrucción
print "Numero 5 ingresado, gracias!!!"
A continuación mostraré el programa "la maldición del 13" para
mostrar el uso en ambos casos:
while True :
print("Si ingresas un 13, algo malo
puede ocurrir")
num = int(input("Yo recomiendo
ingresar cualquier otro numero: "))
if num != 13:
print("Estamos a salvo del
13")
if num == 13:
while
num == 13:
print("Has caido en la
trampa Ja ja ja")
print("Has salido sano y salvo de la
maldicion del 13")
continuar = int(input("Quieres
continuar?\n1 = Si\nOtro numero = No: "))
if continuar != 1:
break
print("Hasta
luego!!!")
Este programa muestra ambas casos, si el usuario ingresa el número 13, caerá en un ciclo infinito XD, pero aquí la
gran diferencia. Puede que el usuario jamás ingrese el número 13 y por lo
tanto, esa estructura nunca se ejecute, lo que hace la diferencia entre ambos
casos.
3.- FOR
La sintaxis es:
for variable in range(N):
instrucciones
Al igual
que las otras instrucciones, esta también ejecutará todo lo que esté dentro de
la indentación o sangría y como siempre, no olvidar los dos puntos (:)
Esta
instrucción FOR, ejecuta una serie de ciclos dentro de un rango
"range" Ese rango está determinado por el número representado por la
N. Con esta instrucción, el primer número de la variable será siempre un cero y
el número final será N - 1. Por ejemplo si N es igual a 10, entonces el último
número será N - 1, o sea 9. Un ejemplo sencillo:
for i in range(10):
print(i)
Esto muestra lo siguiente:
10 ciclos partiendo desde 0
y terminando en 9
Si por algún motivo se necesita que el primer
valor de la variable sea un número distinto de cero, entonces se puede colocar
en el paréntesis el valor inicial con el cual se desea iniciar y seguidamente,
separado por una coma, el número final. Ejemplo.
for i in range(1,11):
print(i)
Esto imprime lo siguiente:
Adicionalmente
se puede agregar un número más, el cual indica el incremento o decremento del
valor de la variable. En el ejemplo anterior, la variable fue incrementando su
valor de uno en uno hasta llegar a 10. Si adicionalmente se agrega un dos por
ejemplo, el incremento irá de dos en dos. Ejemplo:
for i in range(1,11,2):
print(i)
Esto imprime lo siguiente:
El siguiente ejemplo, muestra una tabla de multiplicar según el número
que ingrese el usuario:
num = int(input("Ingresa un numero: "))
for i in range(1,11):
print(num, " x ", i, " =
", num * i)
Esto imprime algo como
esto:
Hasta la próxima lección!!!
Gustavo J. Cerda Nilo
Excelente como enseñan
ResponderEliminar