En muchos casos, los ciclos se deben
repetir una cantidad fija de veces. Cuando esto ocurre, es posible
utlizar otra instrucción en lugar de while, pensada específicamente para este tipo de ciclos. Veamos de vuelta el ejemplo anterior:
def factorial():
"""solicitar al usuario un número, e indicar el factorial de dicho número."""
n = int(input("Ingrese un número:"))
i = 1
fact = 1
while i<=n:
fact = fact * i
i = i+1
print ("El factorial es ",fact)
factorial()
Las instrucciones que controlan el ciclo están resaltadas en amarillo:
i = 1 indica el valor inicial de la variable i
while i <= n: indica la condición que se debe cumplir para seguir iterando dentro del ciclo
i = i+1
indica el cambio de la variable i en cada iteración (será en definitiva
la que haga finalizar el ciclo luego de n repeticiones).
La instrucción for permite agrupar estas tres instrucciones en una sola, facilitando la escritura de ciclos:
for variable in range (valor_inicial,valor_final):
Lo que hace esta instrucción es repetir el ciclo dándole cada vez a variable un valor dentro del rango (valor_inicial .... valor_final)
Así, el ejemplo queda re-escrito de la siguiente forma:
def factorial():
"""solicitar al usuario un número, e indicar el factorial de dicho número."""
n = int(input("Ingrese un número:"))
fact = 1
for i in range (1,n):
fact = fact * i
print ("El factorial es ",fact)
factorial()
Al llegar a la instrucción for, el programa le da a la variable el valor_inicial del rango (1) y ejecuta las instrucciones que están dentro del ciclo.
Una vez ejecutadas las
instrucciones, asigna a la variable (i), el valor siguiente (2). Si el valor asignado es inferior o igual al valor_final del rango, vuelve a ejecutar las instrucciones que están dentro del ciclo.
Así continuará ejecutando dichas instrucciones dentro del ciclo hasta que la variable supere el valor_final del ciclo.
Como se puede ver, el for hace exactamente lo mismo que el while en el ejemplo anterior.
Por la simplicidad con que los resuelve, es especialmente útil para ciclos que se deben ejecutar una cantidad fija de veces.
No hay comentarios:
Publicar un comentario