Google+ Seguidores

miércoles, 4 de mayo de 2016

Cuenta regresiva..3..2..1.. (Iteraciones:For)

    1

¿Qué pasaría si tienes que hacer un conteo, imprimir números en un  orden?
Te imaginas, un código tipo:
“Tienes 10 segundos para morir”…
Para esto y más utilizaremos el último caso de iteraciones: for, el cual es un ciclo de repetición definida (finito).


for i in range(1,11):
    print(i)


Analizando el código...
Al ejecutar el algoritmo, te darás cuenta que imprime números del 1 al 10. Analizaremos paso a paso:
“i” es nuestra variable que va cambiando en el rango de (1,11) y a su vez va imprimiendo su valor. Este rango funciona como los intervalos en matemáticas [ num1, num2), esto quiere decir que el número dos no está dentro del intervalo, es por eso que si queremos hacer un conteo del uno al diez, lo correcto es poner 11.

*En el post anterior te dejé una buena herramienta para debuggear , en la cual entenderás mejor el proceso del algoritmo.

Si por otra parte, te habéis entusiasmado por esta nuevo lazo, de seguro tienes ganas de hacer el conteo de forma descendente. Esta es la ocasión para que lo intentes.


num=10
for i in range(1,num+1):
     print("     ",num-i)
print("Hasta la vista, Baby.")#un poco de humor

Como puedes ver, solo tuvimos que al número restarle “i”, pues “i” como el ejemplo anterior va aumentando según el rango, es como nuestro contador cuando empleamos while.
num=10
for i in range(1,num+1):
    print(num-i)

Cuenta Regresiva:for

Aquí te dejo el código algo modificado donde te muestra el proceso detrás del código anterior.


num=10
for i in range(1,num+1):
    print(num-i,"es: ",num,"-",i)

Definición
El lazo for en Python itera sobre una secuencia de elementos. Por ejemplo una lista de números. Para cada elemento de la secuencia, se ejecutarán todas las secentencias dentro del bloque del lazo. Un ejemplo de esto es en el conteo, el ciclo culminaba cuando se procesó todo el rango que añadimos.

Funcionamiento del Range

La sentencia range (inicio,fin-1) puede contener otro argumento esto permitirá manipular un intervalo específico de manera que la secuencia no será consecutiva.

for j in range(1,11,2):
    print("contando en 2 en 2: ",j)
>> 
contando en 2 en 2:  1
contando en 2 en 2:  3
contando en 2 en 2:  5
contando en 2 en 2:  7
contando en 2 en 2:  9
>> 
Como buena práctica de programación, es ley mejorar el código y analizar otra forma de construir un algoritmo. Y para nuestro conteo descendente existe otra solución:
for num in range(10,0,-1):
    print(num)

Más de for


El lazo for no solo permite la sentencia range, puede iterar sobre una sencuencia de elementos, nombrando por ejemplo: una cadena de caracteres, funciones, listas, etc. For también permite continue y break.

for letter in "JUNIOR":
    if letter=="I":
        print("i")
    else:
        print("Letra:", letter)
>> 
Letra: J
Letra: U
Letra: N
i
Letra: O
Letra: R
>> 

for anidado

Para fines prácticos usaremos el for anidado que contendrá un lazo externo (n iteraciones) que se ejecutará (n veces) y un lazo interno (m iteraciones), el cual se ejecutará por completo cada vez que se ejecute el lazo exteno (n*m).
El for interno va a tener identación.

1.-Liste todas las parejas de números con valores enteros del 1 al 3
for i in range(1,14):
    for j in range(1,14):


>> 

1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
>> 

Una prueba de escritorio… Por favor…



Ejercicio:
2.-Liste todas las parejas de números con valores enteros del 1 al 3, pero sin que existan parejas repetidas.
Desarrollo:
for i in range(1,4):
   for j in range(i,4):
 print(a,b)

¿Qué imprime este código? Recuerda que ya no será n*m, porque en el segundo for contiene la variable i que vale redundar, varía.

 

1 comentario:
Write comentarios
  1. Wowww... Que buenos tutoriales las que haces.
    Hice todos los ejercicios, es cierto que esto de la programación sí enseña a pensar.

    ¿Cuándo los próximos contenidos del tutorial ? La nro 9.
    :)

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

© 2014 Mi diario Python. Designed by Bloggertheme9 | Distributed By Gooyaabi Templates
Powered by Blogger.