Saltar al contenido
Portada » Lenguajes » 3. Estructuras de Control

3. Estructuras de Control

Estructuras de Control. Las estructuras de control son fundamentales en la programación ya que permiten dirigir el flujo de ejecución de un programa basándose en condiciones y repeticiones. En este capítulo, aprenderás a utilizar las declaraciones condicionales (if, elif, else) para tomar decisiones dentro de tu código, y los bucles (for, while) para realizar tareas repetitivas de manera eficiente. Además, aprenderás técnicas como el uso de listas y el manejo de control de flujo con las sentencias break, continue y pass, que te permitirán gestionar situaciones especiales dentro de los bucles.

Empecemos por las sentencias condicionales.

Condicionales: if, elif, else

Los condicionales permiten que un programa ejecute diferentes bloques de código dependiendo del resultado de evaluar una condición lógica. En Python, las condiciones se escriben con las palabras clave if, elif (abreviatura de «else if») y else.

1. if (si)

Evalúa una condición y si es True (verdadera), ejecuta el bloque de código correspondiente.

  • Veamos un ejemplo en el que el programa mostrará por pantalla el mensaje «Eres mayor de edad» solo si la edad es mayor o igual que 18, en caso contrario no hará nada.
edad = 18
if edad >= 18:
    print("Eres mayor de edad")
2. elif (sino si)
  • Python permite realizar nuevas consultas condicionales si la primera condición (if) es falsa.
  • Ejemplo: En este caso, el ejemplo mostrará por pantalla «Casi eres mayor de edad», pues la primera condición es falsa, pero al segunda es correcta pues edad es mayor o igual que 16.
edad = 17
if edad >= 18:
    print("Eres mayor de edad")
elif edad >= 16:
    print("Casi eres mayor de edad")
3. else (sino)
  • Se ejecuta si todas las condiciones anteriores (if y elif) son falsas.
  • Ejemplo: En este caso el resultado será «Todavía eres un niño».
edad = 8
if edad >= 18:
    print("Eres mayor de edad")
elif edad >= 16:
    print("Casi eres mayor de edad")
elif edad >= 14:
    print("Ya eres adolescente")
else:
    print("Todavía eres un niño")
4. Uso de operadores lógicos en condicionales
  • Puedes combinar condiciones usando operadores lógicos como and (y), or (o), y not (no) con el fin de definir condiciones más complejas.
  • Ejemplo:
edad = 20
pais = "España"
if edad >= 18 and pais == "España":
    print("Puedes votar en España")
  • Es importante hacer uso de los (). Esto permite hacer el código más legible además evitar errores. El resultado de la condición puede variar según hayamos colocado los paréntesis. En el siguiente ejemplo, vemos como la salida por pantalla es diferente de la opción 1 a la opción 2 a pesar de tener las mismas condiciones.
a = 5
b = 10
c = 15

# Ejemplo sin paréntesis
resultado_1 = a < b and b > c or a > c
print("Resultado sin paréntesis:", resultado_1)  # True

# Ejemplo con paréntesis
resultado_2 = a < b and (b > c or a > c)
print("Resultado con paréntesis:", resultado_2)  # False

Bucles: for, while

Los bucles permiten ejecutar un bloque de código repetidamente. Python admite dos tipos de bucles: for y while.

1. Bucle for
  • Un bucle for se utiliza para iterar sobre una secuencia (como una lista, una cadena o un rango de números).
  • Ejemplo: Iterar sobre una lista. Este ejemplo mostrará por pantalla las frutas «manzana», «banana» y «cereza», que son los elementos que componen la lista «frutas».
frutas = ["manzana", "banana", "cereza"]
for fruta in frutas:
    print(fruta)
  • Ejemplo: Para iterar sobre un rango de números utilizamos la directiva range()
for i in range(5):  # Itera desde 0 hasta 4
    print(i)
Bucle while
  • Un bucle while repite un bloque de código siempre que una condición sea verdadera. Se usa cuando no se sabe de antemano cuántas veces debe repetirse el bucle.
  • Ejemplo: En este ejemplo imprimimos los números del 0 al 4
contador = 0
while contador < 5:
    print("Contador:", contador)
    contador += 1  # Incrementa el contador

Listas

Las listas son una estructuras de datos que almacenan un grupo de valores. Python, proporciona diferentes maneras de crear listas. que permite generar una lista nueva aplicando una operación o filtrado sobre una secuencia existente en una sola línea de código.

Sintaxis básica

Para crear una lísta se indica el nombre que queremos dar a la lista, después el símbolo = y a continuación entre [] el conjunto de valores separados por comas.

lista_nombres = ["Juan", "Pedro", "Andrés"]
dias_semana = ["Lunes", "Martes, "Miércoles", "Jueves", "Virnes", "Sábado", "Domingo"]
  • Pero también podemos utilizar iteradores para crear listas:
[expresion for elemento in iterable]

Ejemplo: Crear una lista con los cuadrados de los números del 0 al 9

cuadrados = [x**2 for x in range(10)]
print(cuadrados) # Salida: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Creación de listas con condicionales (if)
  • También puedes añadir condiciones para filtrar elementos.
  • Ejemplo: Crear una lista con solo los números pares del 0 al 9
pares = [x for x in range(10) if x % 2 == 0]
print(pares)  # Salida: [0, 2, 4, 6, 8]
Anidación en la creación de listas
  • Otra manera de crear listas con operaciones más complejas es mediante bucles anidados.
  • Ejemplo: Crear una matriz (lista de listas) de 3×3
matriz = [[fila * columna for columna in range(3)] for fila in range(3)]
print(matriz)  # Salida: [[0, 0, 0], [0, 1, 2], [0, 2, 4]]

Control de flujo: break, continue, pass

Python ofrece ciertas instrucciones que permiten modificar el comportamiento normal de los bucles.

1. break
  • break se utiliza para terminar un bucle antes de que haya recorrido todos los elementos.
  • Ejemplo:
for i in range(10):
    if i == 5:
        break  # El bucle se interrumpe cuando i es igual a 5
    print(i)
# Salida: 0, 1, 2, 3, 4
2. continue
  • continue se utiliza para saltarse el resto del código dentro del bucle y volver al inicio de la siguiente iteración.
  • Ejemplo: Vamos a imprimir los número impares del 1 al 10.
for i in range(10):
    if i % 2 == 0:
        continue  # Salta el resto del código si i es par
    print(i)
# Salida: 1, 3, 5, 7, 9
3. pass
  • pass no hace nada, es una operación nula. Se utiliza como un marcador de posición cuando se requiere una instrucción, pero no se desea ejecutar ningún código.
  • Ejemplo:
for i in range(5):
    if i == 3:
        pass  # No hace nada cuando i es igual a 3
    else:
        print(i)
# Salida: 0, 1, 2, 4

Ejemplo Completo

Aquí tienes un ejemplo que combina condicionales, bucles y control de flujo:

numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for numero in numeros:
    if numero % 2 == 0:
        print(f"{numero} es par")
    else:
        print(f"{numero} es impar")

    if numero == 5:
        print("Encontré el número 5, saliendo del bucle.")
        break  # Termina el bucle cuando encuentra el número 5


# El resultado del script será:
1 es impar
2 es par
3 es impar
4 es par
5 es impar
Encontré el número 5, saliendo del bucle.


Este punto cubre las herramientas clave para controlar el flujo de un programa Python, desde la toma de decisiones hasta la ejecución repetitiva de bloques de código. La comprensión de estas estructuras es esencial para desarrollar programas eficientes y legibles.

A continuación te propongo unos ejercicios para que puedas ir practicando.

Ejercicio 1: Número Mayor

Escribe un programa que solicite tres números al usuario y determine cuál es el mayor de los tres. Si los números son iguales, indícalo también.
# Solicitar tres números al usuario
num1 = float(input("Ingresa el primer número: "))
num2 = float(input("Ingresa el segundo número: "))
num3 = float(input("Ingresa el tercer número: "))

# Usamos estructuras condicionales para comparar los números
if num1 > num2 and num1 > num3:
    print(f"El número mayor es: {num1}")
elif num2 > num1 and num2 > num3:
    print(f"El número mayor es: {num2}")
elif num3 > num1 and num3 > num2:
    print(f"El número mayor es: {num3}")
else:
    # Si todos son iguales
    print("Los tres números son iguales")

Explicación:

  1. Se solicitan tres números al usuario.
  2. Se usan condiciones if-elif-else para comparar los tres números y determinar cuál es el mayor.
  3. Si los tres números son iguales, el programa lo indica con la condición por defecto.
Ejercicio 2: Suma de Números Pares
Escribe un programa que solicite al usuario un número entero positivo y calcule la suma de todos los números pares desde 1 hasta ese número usando un bucle for.
# Solicitar un número entero positivo al usuario
numero = int(input("Ingresa un número entero positivo: "))

# Variable para almacenar la suma de los números pares
suma_pares = 0

# Usamos un bucle for para recorrer desde 1 hasta el número ingresado
for i in range(1, numero + 1):
    if i % 2 == 0:  # Verificamos si el número es par
        suma_pares += i  # Si es par, lo añadimos a la suma

# Mostramos el resultado final
print(f"La suma de los números pares desde 1 hasta {numero} es: {suma_pares}")

Explicación:

  1. Se solicita al usuario un número entero positivo.
  2. Un bucle for recorre todos los números desde 1 hasta el número dado.
  3. Dentro del bucle, usamos if para verificar si el número es par (condición i % 2 == 0).
  4. Si es par, se suma a la variable suma_pares, que almacena la suma total de los números pares.
Ejercicio 3: Contar Vocales en una Cadena
Escribe un programa que solicite al usuario una cadena de texto y cuente cuántas vocales (a, e, i, o, u) contiene usando un bucle while.
# Solicitar una cadena de texto al usuario
cadena = input("Ingresa una cadena de texto: ")

# Inicializamos un contador para las vocales
contador_vocales = 0

# Definimos un conjunto de vocales
vocales = "aeiouAEIOU"

# Inicializamos una variable índice para el bucle while
i = 0

# Usamos un bucle while para recorrer la cadena de texto
while i < len(cadena):
    if cadena[i] in vocales:  # Verificamos si el carácter actual es una vocal
        contador_vocales += 1  # Si es una vocal, incrementamos el contador
    i += 1  # Incrementamos el índice para movernos al siguiente carácter

# Mostramos el resultado final
print(f"La cadena contiene {contador_vocales} vocales.")

Explicación:

  1. Se solicita al usuario una cadena de texto.
  2. Usamos una variable contador_vocales para contar cuántas vocales hay en la cadena.
  3. Se define un conjunto de vocales (aeiouAEIOU) para tener en cuenta tanto minúsculas como mayúsculas.
  4. Un bucle while recorre la cadena carácter por carácter. Si el carácter está en el conjunto de vocales, incrementamos el contador.
  5. Finalmente, mostramos cuántas vocales contiene la cadena.

Bibliografía de Python de interés.

Logo Python. Estructuras de Control

Deja una respuesta

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

Disponible para Amazon Prime