Curso de programación en Python usando Linux. Duodécima parte.
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
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:
Break
La instrucción break detiene la ejecución del bucle antes de que se llegue al final de la secuencia.
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:
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:
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

