Lathack

Uso de bucles en Python

Uso de bucles en Python

Introducción

Muchas veces, en cualquier lenguaje de programación, surge la necesidad de repetir líneas y, mayor aún, bloques de código. Lo que genera mayor tiempo de escritura y dificultad en cuanto a la legibilidad del código, por tal caso es que surgieron los bucles. En este apartado estaremos analizando los tipos y uso de bucles en Python.

¿Cómo funcionan los bucles en Python?

La función de los bucles es la de cambiar un valor de una variable a través de una iteración (Como sucede en lenguajes C y Java) una n cantidad de veces hasta que se cumpla una condición. Y de esta forma acceder a los elementos de un arreglo (array). Una iteración es un contador o “recorrido”, que el lenguaje realiza a través de ciertos datos hasta que se cumpla una orden impartida. Es importante que los bucles cuenten con un interador, de otro modo, el bucle sería infinito.

Python, a diferencia de otros lenguajes, usa bucles para iterar sobre una lista de elementos. Es decir, este lenguaje los utiliza para iterar sobre estructuras de datos basadas en colecciones, como pueden ser una lista, tupla y/o diccionarios.

En Python también es imprescindible el uso de iteradores y, en muchos casos, el uso de “break” el cual veremos más adelante.

Bucle While

Este bucle sirve para ejecutar varias sentencias de código dependiendo una condición. A su vez, dichas sentencias se repetirán las veces necesarias hasta que la condicón se cumple. Por lo tanto, es un bucle del tipo “Mientras pase esto, realiza aquello”.

La sintaxis del mismo es la siguiente:

whilecondición”:
instrucciones de código
incrementar o decrementar el contador
funcion_opcional

Primer ejemplo:

n = 5

while n > 0:
    print(n)
    n -= 1

print(“¡Despegue!”)

Out:

5
4
3
2
1
¡Despegue!

Como vemos, le hemos especificado a nuestro bucle que:

  • Siempre que n>0 se cumplirá y ejecutará el código.
  • Imprima en pantalla el valor de n.
  • Al valor de n le reste una unidad. Lo que hacemos aquí es realizar una iteración con respecto al valor de n. Es decir, en cuanto vuelva a ejecutarse la primera condición n será igual a 4, y así sucesivamente.

Es muy importante que tengamos en cuenta que en cualquier lenguaje de programación, incluido Python, el orden de los factores SI altera el producto.

Segundo ejemplo:

Veamos lo que imprime en pantalla el siguiente código con respecto al anterior:

n = 5

while n > 0:
    n -= 1
    print(n)

print(“¡Despegue!”)

Out:

4
3
2
1
0
¡Despegue!

Prácticas

A continuación veremos algunos ejercicios como ejemplos y práctica de while con respecto al uso de bucles en Python.

Realizar una Tabla de multiplicación:

entrada = 2
n = 0
total = 0

while n <= 10:
    total = entrada * n
    print(entrada, «X», n, «=», total)
    n += 1

Out:

2X0=0
2X1=2
(…)
2X10=20

En el siguiente ejemplo utilizaremos un bucle para que, en base a nuestra a edad, nos imprima en pantalla los años que hemos cumplido:

edad = 10
n = 1
total = 0

while n < edad:
    if n <=1:
    print(«Has cumplido 1 año»)
    n += 1
    print(«Has cumplido:»,n,»años»)

Out:

Has cumplido 1 año
Has cumplido: 2 años
(…)

El uso del condicional IF es para especificar el primer año, ya que de no estar, quedaría mal redactado o de formal plural cuando la cantidad es uno. Por tanto, hacemos uso del condicional solo para especificar el primer año. Luego se ejecutan los otros de acuerdo a la iteración.

Bucle for

Podemos deducir que este bucle tiene dos funciones:

  1. Recorrer elementos iterables.
  2. Recorrer rangos desde m hasta n-1.

La sintaxis del mismo es la siguiente:

forContadorinNombre_de_lista”:
Segmento de código

Entonces, ¿Qué es un elemento iterable?

Se lo llama de esta manera a todo elemento que, por medio de un iterador, permite recorrer cada dato perteneciente a dicho elemento. Por ejemplo, uno de los más usados es la lista. Sin embargo, también podemos hacer uso con tuplas y diccionarios.
Veamos el siguiente ejemplo:

lista = [«uno»,»dos»,»tres»]
tupla = (1,2,3,4)
diccionario = {«a»:1, «b»:2, «c»:3}

for i in lista:
    print(i)

for j in tupla:
    print(j)

for n in diccionario:
    print(n,»:»,diccionario[n])

Out:

uno

dos

tres

1
2
3
4

a : 1
b : 2
c : 3

Teniendo en cuenta los conceptos anteriores, a continuación especificaremos algunas funciones fundamentales para el uso de los bucles. Si bien, el apartado de funciones lo veremos más adelante, solo necesitamos saber el uso de las mismas con respecto a los bucles.

Función range()

Esta función genera una secuencia inmutable de n números enteros consecutivos que empiezan en 0 y acaba en n, siendo n = n – 1. Con dos argumentos se escribe range(m, n) y crea una secuencia inmutable de enteros consecutivos que empieza en m y acaba en n – 1. Con tres argumentos se escribe range(m, n, p) y crea una secuencia inmutable de enteros que empieza en m y acaba n-1, aumentando los valores de p en p. Si p es negativo, los valores van disminuyendo de p en p. El range() es fundamental para el uso de bucles en python, ya que es fácil de iterar o recorrer con un for y, agregado a esto, también sirve para crear listas con la función incorporada list().

Veamos un ejemplo:

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

Out:

1
2
3
4
5
6

Como vemos, al ser 1 la posición 0, el 6 termina siendo la posición 7 (n – 1).

Función break() y continue()

Estas funciones nos sirven para detener una iteración, es el caso de break(), y para saltarla en el caso de continue(). Por lo general, suelen usarse con el condicional IF. Ambas pueden ser utilizadas tanto con while, como con for. Estas funciones serán fundamentales para el uso de bucles en Python.

Veamos un ejemplo con break():

for i in range (1,11):
    print(i)
    if i == 5:
      break

Out:

1
2
3
4
5

En el caso de continue():

for i in range (1,11):
    if i == 6:
      continue
    print(i)

Out:

1
2
3
4
5
7
8
9
10

Como vemos, a diferencia de break(), no solo hemos omitido el número 6, sino que también hemos orden con respecto a print(). Recordemos que el orden y la sintaxis en programación son fundamental.

Ejercicios complementarios

Ejercicio 1

Pedir al usuario dos números m y n. Los mismos deben ser mostrados por pantalla, teniendo en cuenta que deben incluirse tanto m como n. Es decir, el usuario no debe observar que se ejecuta n – 1.

dato1 = int(input(«Coloque el primer númer: «))
dato2 = int(input(«Coloque el segundo número: «))
dato3 = dato2 + 1

if dato1 >= dato2:
    print(«El primer número no puede ser mayor o igual que el         segundo»)
else:
    print(«El rango entre ambos números es:»)
for i in range(dato1,dato3):
    print(i)

Out:

Coloque el primer númer: 1
Coloque el segundo número: 10
El rango entre ambos números es:
2
3
4
5
6

Podemos observar dos cosas fundamentales:

  1. Primero, hemos utilizado un condicional IF para aclarar que los número a colocar deben ser el segundo mayor que el primero.
  2. Y segundo, con dato = dato2 + 1 lo que hacemos es darle la posibilidad al range de ejecutar el último número que el usuario colocó. Ya que de no ponerlo, no se imprimirá en pantalla.
Ejercicio 2

Pedir al usuario que ingrese 2 numeros, luego, debe mostrarse el rango de esos 2 números, pero, solo imprimiendo aquellos que sean impares. Dado que la fórmula para saber los número impares es: 2*n+1 podríamos suponer que el código correcto sería:

dato1 = int(input(«Coloque el primer númer: «))
dato2 = int(input(«Coloque el segundo número: «))
dato3 = dato2 + 1

if dato1 >= dato2:
    print(«El primer número no puede ser mayor o igual que el segundo»)
else:
    print(«Los números impares del rango son:»)
for i in range(dato1,dato3):
    dato4 = 2*i + 1
    if dato4 > dato2:
      break
    print(dato4)

Out:

Coloque el primer númer: 1
Coloque el segundo número: 10
Los números impares del rango son:
3
5
7
9

Sin embargo, podemos notar que el primer número ingresado es 1 y no aparece dentro del rango. Para no agregar más líneas de código, podemos hacer uso de una forma más simple. Esto es, usando la fórmula: n%2=0.

dato1 = int(input(«Coloque el primer númer: «))
dato2 = int(input(«Coloque el segundo número: «))
dato3 = dato2 + 1

if dato1 >= dato2:
    print(«El primer número no puede ser mayor o igual que el segundo»)
else:
    print(«Los números impares del rango son:»)
for i in range(dato1,dato3):
    if i % 2 == 0:
      continue
    print(i)

Out:

Coloque el primer númer: 1
Coloque el segundo número: 10
Los números impares del rango son:
1
3
5
7
9

Lo que hace esta fórmula es, buscar el resto de i/2 y, en el caso de ser igual cero no se imprimirá en pantalla (ya que esto corresponde a los números pares). Caso contrario, si lo hará. Esto se debe gracias a la función del continue().

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

tres + 14 =

Lathack
Scroll al inicio