Ubunlog Diego Germán González  

Curso de programación en Python usando Linux. Duodécima parte.

Programación en Python usando Linux

Como dijimos en el post anterior de este curso de programación en Python usando Linux, cuando necesitemos que un programa se ejecute sin detenerse, podemos usar los bucles.  Estos repiten la ejecución de un código mientras se cumplan una o más condiciones.

Habíamos dejado el artículo anterior explicando la utilidad de las instrucciones break y continue.

Curso de programación en Python usando Linux

Uso de las instrucciones break y continue dentro de un bucle

Usando las instrucciones break y continue dentro de un bucle while podemos detener total o parcialmente la ejecución del código dentro del bucle.

Veamos de manera detallada lo que hace este código:

intentos = 0

Crea la variable intentos que permitirá llevar el control de cuantos ingresos válidos hizo el usuario. Establece el valor en 0.

while intentos = 5

Establece que el bucle debe ejecutarse 5 veces a menos que se encuentre con la instrucción break.

distro = input(f"Intento {intentos + 1}/5 - Escribí una distro: ")

Le pide al usuario que ingrese el nombre de una distribución y lo asigna a la variable a distro. Para no confundir al usuario hace que lo que para el contador sea el intento 0 se muestre como el intento 1.

if distro == ""

Comprueba si el usuario pulsó Enter sin escribir nada.

print("No escribiste nada, no cuenta como intento.")

Le avisa al usuario que no escribió nada

continue

Vueve a iniciar el bucle sin sumar ningún intento.

intentos += 1

Si el usuario escribió algo suma un intento al contador.

if distro == "Ubuntu"

Comprueba si el usuario escribió «Ubuntu»

print(f"¡Correcto! Adivinaste en {intentos} intento(s).")

Indica que la respuesta es correcta y cuantos intentos se necesitaron.

break

Como el usuario acertó, detiene el bucle.

else:

Dado que ya no se cumple la condición de menos de 5 intentos se aplica la alternativa.

print("¡Se acabaron los intentos! Era Ubuntu.")

Se imprime el mensaje de que se acabaron los intentos y que la distro era Ubuntu.

El bucle for

El bucle while es útil cuando queremos que un programa se repita hasta que se cumpla una determinada condición. Pero si queremos ejecutar un bucle, por ejemplo haciendo que se muestren todos los elementos de una lista y, esa lista tiene un número de elementos variables, nos resultará más útil la instrucción for.

La sintaxis es la siguiente:

for variable in secuencia

El bucle for trabaja con  una secuencia que puede ser una lista, una cadena de texto o un rango numérico
 y la recorre en su totalidad , ejecutando el mismo bloque de código para cada uno de los elementos de la secuencia.

Este es un ejemplo:

Uso del bucle for en Python 3

En este ejemplo se muestra el mensaje establecido con cada uno de los elementos de la lista.

Break

La instrucción break detiene la ejecución del bucle antes de que se llegue al final de la secuencia.

La instrucción break en un bucle for

En este caso la instrucción break detiene al bloque for cuando se encuentra el resultado deseado


distribuciones = ["Ubuntu", "Debian", "Linux Mint", "Arch Linux", "Fedora"]

Crea una lista de distribuciones

distro_a_buscar = "Debian"

Establece que se va a busca la distribución Debian.

for distro in distribuciones

Va asignando de manera secuencial cada elemento de la lista a la variable distro.

print("Buscando...")

Muestra el mensaje de búsqueda al principio de cada intento.

if distro == distro_a_buscar

Comprueba si encontró la distribución que buscaba.

print("Distribución encontrada:", distro)

Da el mensaje que se encontró la distribución buscada e imprime cuál es el nombre.

break

Detiene el bucle.

print("Fin de la búsqueda.")

Muestra el mensaje de fin de la búsqueda, cosa que también haría aunque no se encontrara la distribución buscada.

Continue

La instrucción continue funciona de una manera parecida que en el bucle while. Cuando la encuentra Python salta el siguiente elemento de la lista ignorando el resto del código que queda por ejecutar. Esto nos sirve cuando el elemento actual no cumple una condición pero queremos que el bucle se siga ejecutando.

Esto es un ejemplo:

Uso de la instrucción continue en un bucle for.

La instrucción continue, en un bucle for, al igual que sucede en un bucle while, detiene la ejecuciń del código actual pasa al siguiente elementonde la lista.

distros = ["Ubuntu", "Debian", "arch linux", "Fedora", "Linux Mint"]

Crea una lista con 5 distribuciones Linux. Lo de poner arch linux con minúscula es intencional.

for distro in distros

Recorre cada uno de los elementos de la lista asignándoselo por turnos a la variable distro.

if distro[0].islower():

Comprueba que la primera letra de la distribución sea mayúscula.

print(f»‘{distro}’ no empieza con mayúscula,»)

Le avisa al usuario que la distro no cumple con la condición de empezar con mayúsculas y que va a seguir con la siguiente:

continue

Como no se cumple la condición pasa al siguiente elemento del bucle.

print(f"* {distro}")

Imprime las distribuciones que si cumplen con la condición de empezar con mayuscula.

Range

La función range se usa junto al bucle for para generar secuencias de números.

range(inicio, fin, paso)

Donde:

  • Inicio: Número donde se inicia la secuencia. Por defecto 0
  • Fin: Es el número donde termina la secuencia sin incluir este valor.
  • Paso:  Es el intervalo entre cada número de la secuencia. Por defecto es 1.

Supongamo que tenemos esta instrucción:

for i in range(4):

Dado que por defecto se comienza desde el 0 y se usa el intervalo 1, la instrucción :

print(i)

Imprimirá los números de 0 a 3.

Mientras que si definimos el bucle:

for i in range(4, 10):

print(i)

Mostrará todos los números de 4 al 9

Mientras que el bucle:

for i in range(3, 21, 3):

Al hacer:

print(i)

Mostrará

3

6

9

12

15

18

También podemos generar la secuencia de números en forma decreciente:

for i in range(21, 3,- 3):

Es posible usar range para enumerar los elementos de una lista. Sería algo como esto:

Uso de range para enumerar elementos de una lista

Range se puede usar para enumerar los elementos de una lista aunque Python 3 tiene un comando propio para eso.

Veamos el programa en forma detallada

distros = ["Ubuntu", "Debian", "Fedora"]

Crea una lista de tres distribuciones.

len(distros)

Determina la cantidad de elementos de la lista.

range(len(distros))

Pone la cantidad de elementos de la lista como límite superior para range.

for i in range(len(distros)):

Comienza a recorrer cada uno de los elementos de la lista.

print(f"{i} - {distros[i]}")

Imprime el índice y el elemento de la lista.

De todas maneras esto puede hacerse en forma más fácil con:

for i, distro in enumerate(distros)

En el próximo articulo continuaremos con las características de Python

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.