Flujo de control en Python

Flujo de control en Python

Este artículo explica el flujo de control en Python.

YouTube Video

Declaración if en Python

La declaración if en Python es una sintaxis para la bifurcación condicional. Se utiliza para ejecutar un bloque de código si una condición específica se evalúa como True (verdadero).

Sintaxis Básica

La declaración if en Python básicamente sigue la estructura a continuación.

1x = 10
2
3if x > 5: # Check if the condition(x > 5) is True
4    # If the condition is True, execute this code block
5    print("x is greater than 5")

En este ejemplo, se imprime "x es mayor que 5" si la variable x es mayor que 5.

Declaración else

Usar else después de una declaración if te permite especificar el código a ejecutar cuando la condición es falsa.

1x = 3
2
3if x > 5:
4    print("x is greater than 5")
5else:
6    print("x is less than or equal to 5")

En este ejemplo, la salida será "x es menor o igual a 5".

Declaración elif

Si necesitas verificar múltiples condiciones, puedes usar elif, que significa "else if".

1x = 5
2
3if x > 5:
4    print("x is greater than 5")
5elif x == 5:
6    print("x is equal to 5")
7else:
8    print("x is less than 5")

En este ejemplo, se imprime "x es igual a 5".

Notas

  • Se requiere dos puntos (:) después de if, elif o else.
  • El bloque de código que se ejecuta cuando una condición es verdadera debe estar indentado. En Python, la indentación estándar suele ser de 4 espacios, pero otros números de espacios están bien siempre que seas consistente.
  • Puedes usar cualquier expresión que se evalúe como un valor booleano como condición. Esto significa que puedes usar expresiones condicionales combinadas con operadores de comparación o lógicos.

Dominar la declaración if en Python te permite controlar el flujo de ejecución del programa de manera flexible.

Bifurcación condicional múltiple en Python

Hay varias formas de implementar una funcionalidad similar a switch en Python, como en otros lenguajes. En Python, es común usar declaraciones if-elif-else o diccionarios para crear estructuras similares a una declaración switch.

Método 1: Declaración if-elif-else

La forma más sencilla es usar la declaración if-elif-else para realizar bifurcaciones condicionales.

 1def switch_example(value):
 2    if value == 1:
 3        return "Value is one"
 4    elif value == 2:
 5        return "Value is two"
 6    elif value == 3:
 7        return "Value is three"
 8    else:
 9        return "Unknown value"
10
11print(switch_example(1))  # Output: Value is one
12print(switch_example(4))  # Output: Unknown value

Método 2: Usar Diccionarios

Al mapear funciones o valores a un diccionario, es posible crear una estructura similar a una declaración switch. Esto es conveniente cuando deseas realizar operaciones diferentes para valores específicos.

 1def case_one():
 2    return "Value is one"
 3
 4def case_two():
 5    return "Value is two"
 6
 7def case_default():
 8    return "Unknown value"
 9
10def switch_example(value):
11    switch_dict = {
12        1: case_one,
13        2: case_two
14    }
15
16    # Use get() method to retrieve the corresponding function from the dictionary
17    # If the value is not found in the dictionary, use case_default as a fallback
18    return switch_dict.get(value, case_default)()
19
20print(switch_example(1))  # Output: Value is one
21print(switch_example(3))  # Output: Unknown value

Método 3: Declaración match (Python 3.10 y posteriores)

La declaración match se introdujo en Python 3.10. Es una sintaxis de coincidencia de patrones que proporciona una funcionalidad similar a una declaración switch.

 1def switch_example(value):
 2    match value:
 3        case 1:
 4            return "Value is one"
 5        case 2:
 6            return "Value is two"
 7        case 3:
 8            return "Value is three"
 9        case _:
10            return "Unknown value"
11
12print(switch_example(1))  # Output: Value is one
13print(switch_example(4))  # Output: Unknown value

Resumen

  • Declaración if-elif-else: Simple y adaptable a muchos casos.
  • Diccionarios: Usa mapeos de funciones o valores para permitir bifurcaciones eficientes.
  • Declaración match: Permite bifurcaciones más intuitivas en Python 3.10 y posteriores. Más parecido a una declaración switch.

Bucles For en Python

La sentencia for de Python se utiliza para iterar sobre cada elemento de un objeto iterable, como una lista, cadena o diccionario. La sintaxis básica de una declaración for es la siguiente:.

1# Loop through each item in the iterable
2for variable in iterable:
3    # Execute this block of code for each item in the iterable
4    code_to_execute

Aquí hay algunos ejemplos específicos:.

Ejemplo Usando una Lista

1fruits = ["apple", "banana", "cherry"]
2for fruit in fruits:
3    print(fruit)

Este código llama a la función print para cada elemento de la lista fruits, mostrando el nombre de cada fruta.

Ejemplo Usando range()

La función range() genera enteros dentro de un rango específico, lo que la hace útil para iteraciones numéricas.

1for i in range(5):
2    print(i)

range(5) genera enteros del 0 al 4. En este caso, 0, 1, 2, 3, 4 se mostrará secuencialmente.

Ejemplo Usando un Diccionario

En el caso de los diccionarios, las claves se iteran por defecto, pero también puedes obtener pares clave-valor.

1person = {"name": "Alice", "age": 25}
2for key in person:
3    print(key, person[key])

Alternativamente, use el método items() para recuperar simultáneamente claves y valores.

1person = {"name": "Alice", "age": 25}
2for key, value in person.items():
3    print(key, value)

Bucle for anidado

También es posible anidar bucles for para realizar procesos de iteración complejos.

1matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2for row in matrix:
3    for num in row:
4        print(num)

Este código itera a través de cada fila de la lista matrix y muestra secuencialmente los números de cada fila.

continue para omitir una iteración y break para terminar un bucle

Usar continue dentro de un bucle for omitirá la iteración actual y pasará a la siguiente. Además, usar break terminará completamente el bucle.

1for i in range(10):
2    if i == 5:
3        continue
4    if i == 8:
5        break
6    print(i)

En este ejemplo, el bucle se salta cuando i es 5 y termina cuando i es 8. Por lo tanto, la salida será 0, 1, 2, 3, 4, 6, 7.

El bucle for de Python es altamente flexible y puede usarse en una variedad de escenarios. Dependiendo del tipo de procesamiento iterativo que quieras realizar, se puede usar en combinación con listas, diccionarios, cadenas y range().

Bucle while en Python

En Python, el bucle while es una estructura de control utilizada para ejecutar repetidamente el código dentro del bloque mientras la condición sea True. La sintaxis básica del bucle while es la siguiente:.

1while condition:
2    # This block of code will be executed repeatedly as long as the condition is true
3    statement1
4    statement2
5    ...

Ejemplo:

En el siguiente ejemplo, se utiliza un bucle while para mostrar los números del 1 al 5.

1i = 1
2while i <= 5:
3    print(i)
4    i += 1

Este código funciona de la siguiente manera.

  • Comienza con i igual a 1, imprime i mientras sea menor o igual a 5, e incrementa i en 1 cada vez.

Nota:

Debes tener en cuenta los siguientes puntos al usar la sentencia while.

  1. Cuidado con los bucles infinitos

    • Si la condición en un bucle while es siempre True, esto dará lugar a un bucle infinito. Se deben realizar operaciones adecuadas para cambiar la condición; de lo contrario, el programa no se detendrá.
  2. Usando break y continue:

    • break se utiliza cuando deseas salir del bucle antes de tiempo.
    • continue omite la iteración actual y comienza la siguiente. Ten cuidado, porque condiciones incorrectas en el bucle pueden causar un bucle infinito.

Ejemplo de break:

1i = 1
2while i <= 5:
3    if i == 3:
4        break  # Exit the loop when i becomes 3
5    print(i)
6    i += 1
  • En este caso, después de que se imprimen 1 y 2, el bucle termina cuando i se convierte en 3.

Ejemplo de continue:

1i = 0
2while i < 5:
3    i += 1
4    if i == 3:
5        # Skip the print statement and move to the next loop iteration when i is 3
6        continue
7    print(i)
  • En este caso, la salida se omite solo para 3, lo que da como resultado 1, 2, 4, 5.
  • Al incrementar el valor de i al principio del bucle, el contador avanza incluso si se ejecuta continue, evitando así un bucle infinito.

Puedes seguir el artículo anterior utilizando Visual Studio Code en nuestro canal de YouTube. Por favor, también revisa nuestro canal de YouTube.

YouTube Video