CodeGym /Curso de Java /Python SELF ES /Un poco más sobre bucles e ifs

Un poco más sobre bucles e ifs

Python SELF ES
Nivel 4 , Lección 5
Disponible

11.1 Operador ternario

En Python existe un operador llamado ternario, que en esencia representa una versión modificada del operador if else.

Supongamos que tienes el código:


if a < b:
   min = a
else:
   min = b

Para que un código tan simple no ocupe mucho espacio, se ideó una forma compacta de escribirlo. Se verá así:


min = a if a < b else b

El formato general del operador ternario se puede describir de esta forma:


variable = valor1 if condición else valor2

Si condición es verdadera, se asigna valor1 a la variable, si es falsa — valor2.

Nota que aquí no se pone dos puntos (:) después de la condición.

11.2 Operador else en bucles

En Python, el operador else a menudo se asocia con operadores condicionales if. Sin embargo, su uso no se limita a eso, y else también se puede aplicar en bucles for y while.

Este aspecto no tan obvio de else en el contexto de los bucles puede confundir a los novatos, pero abre posibilidades interesantes para administrar el flujo de ejecución del programa.

Cómo funciona else en bucles

En los bucles, else se ejecuta después de que el bucle termina, pero solo si el bucle se completó normalmente (es decir, no fue interrumpido por el operador break). Esta característica hace que else sea útil para escenarios donde necesitas verificar si el bucle fue interrumpido prematuramente.

Ejemplo de uso en un bucle for:


for i in range(3):
    password = input('Introduce la contraseña: ')
    if password == 'secreto':
        print('Contraseña aceptada.')
        break
else:
    print('No hay intentos de entrada o todas las contraseñas introducidas son incorrectas.')               

Aquí, else se activa si el usuario introduce mal la contraseña tres veces. Si el usuario introduce la contraseña correcta, el bucle se interrumpe con break, y el bloque else no se ejecuta.

Ejemplo de uso en un bucle while:


n = 5
while n > 0:
    print(n)
    n -= 1
else:
    print('El bucle terminó normalmente.')               

En este caso, else se ejecuta después de que el bucle haya terminado de forma natural, ya que la condición se volvió falsa.

Valor práctico

Utilizar else en bucles puede ser especialmente útil en algoritmos de búsqueda, donde es necesario determinar si la búsqueda fue exitosa. Por ejemplo, al buscar un elemento en una lista que no existe, puedes usar else para mostrar un mensaje de fallo después de que el bucle termine.

Usa else en bucles de manera clara y coherente, para no confundir a quienes lean tu código. Recuerda que else en bucles no siempre es intuitivo, así que vale la pena añadir comentarios o elegir otras formas de implementar la lógica si eso hace el código más comprensible.

11.3 Bucles anidados

En Python se puede escribir lógica muy compleja de manera muy compacta. Para algunos casos necesitarás ifs anidados, y para otros, bucles anidados. Ahora vamos a hablar de algunos matices de su funcionamiento:

Un bucle anidado significa tener un bucle dentro de otro. Esto permite, por ejemplo, procesar arreglos multidimensionales, listas de listas u otras estructuras de datos anidadas.

Los bucles anidados consisten en un bucle externo y uno o varios bucles internos. Cada vez que el bucle externo realiza una iteración, el bucle interno se ejecuta por completo:


for i in range(3):  # Bucle externo
    for j in range(3):  # Bucle interno
        print(f"({i}, {j})")               

Desde el punto de vista del bucle externo, el bucle interno y su contenido son simplemente un bloque de comandos que se ejecutan para cada iteración del bucle externo. Al bucle externo realmente no le importa qué hay dentro de él, cuántos bucles hay, y así sucesivamente. Simplemente ejecuta su bloque de comandos interno cada vez para la variable de su lista.

Vamos a imprimir en pantalla la tabla de multiplicación: los bucles anidados son perfectos para esta tarea. Crear una tabla de multiplicación utilizando bucles anidados, donde un bucle es responsable del multiplicador y otro del multiplicando:


n = 5
for i in range(1, n + 1):
    for j in range(1, n + 1):
        print(f"{i} * {j} = {i * j}", end='\t')
    print()  # Salto a nueva línea para el siguiente multiplicador               

Este ejemplo imprimirá en pantalla la tabla:


1 * 1 = 1	1 * 2 = 2	1 * 3 = 3	1 * 4 = 4	1 * 5 = 5	
2 * 1 = 2	2 * 2 = 4	2 * 3 = 6	2 * 4 = 8	2 * 5 = 10	
3 * 1 = 3	3 * 2 = 6	3 * 3 = 9	3 * 4 = 12	3 * 5 = 15	
4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16	4 * 5 = 20	
5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25

Para entender mejor los bucles anidados, necesitas simplemente practicar más: esta es la forma más rápida de dominar prácticamente cualquier cosa no obvia en la programación.

1
Опрос
Bucles y ramificaciones,  4 уровень,  5 лекция
недоступен
Bucles y ramificaciones
Bucles y ramificaciones
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION