En esta sección, exploraremos estructuras de control avanzadas que permiten manejar el flujo de un programa de manera más eficiente y flexible. Estas estructuras incluyen el uso de switch/case, bucles anidados, y el manejo de excepciones. Al final de esta sección, deberías ser capaz de implementar estas estructuras en tus programas para resolver problemas más complejos.
Contenido
switch/case- Bucles anidados
- Manejo de excepciones
switch/case
switch/caseEl switch/case es una estructura de control que permite seleccionar una de varias alternativas basadas en el valor de una expresión. Es una alternativa más legible y eficiente que múltiples sentencias if-else cuando se trata de comparar una variable con varios valores posibles.
Sintaxis
# Ejemplo en Python usando diccionario para simular switch/case
def switch_case_example(value):
switcher = {
1: "Opción 1",
2: "Opción 2",
3: "Opción 3"
}
return switcher.get(value, "Opción no válida")
# Uso
print(switch_case_example(1)) # Salida: Opción 1
print(switch_case_example(4)) # Salida: Opción no válidaEjercicio
Escribe una función que utilice un switch/case para convertir una calificación numérica (0-10) en una letra (A-F).
def calificacion_a_letra(calificacion):
switcher = {
10: 'A',
9: 'A',
8: 'B',
7: 'C',
6: 'D',
5: 'E',
4: 'F',
3: 'F',
2: 'F',
1: 'F',
0: 'F'
}
return switcher.get(calificacion, "Calificación no válida")
# Prueba la función
print(calificacion_a_letra(9)) # Salida: A
print(calificacion_a_letra(4)) # Salida: F
- Bucles Anidados
Los bucles anidados son bucles dentro de otros bucles. Son útiles para trabajar con estructuras de datos multidimensionales, como matrices.
Ejemplo
# Imprimir una matriz de 3x3
for i in range(3):
for j in range(3):
print(f"({i},{j})", end=" ")
print()Ejercicio
Escribe un programa que imprima una tabla de multiplicar del 1 al 5.
- Manejo de Excepciones
El manejo de excepciones permite gestionar errores en tiempo de ejecución de manera controlada, evitando que el programa se detenga abruptamente.
Sintaxis
try:
# Código que puede causar una excepción
resultado = 10 / 0
except ZeroDivisionError:
# Código que se ejecuta si ocurre una excepción
print("Error: División por cero")
finally:
# Código que se ejecuta siempre, ocurra o no una excepción
print("Operación finalizada")Ejercicio
Escribe una función que divida dos números y maneje la excepción de división por cero.
def dividir(a, b):
try:
resultado = a / b
except ZeroDivisionError:
return "Error: División por cero"
else:
return resultado
finally:
print("Operación finalizada")
# Prueba la función
print(dividir(10, 2)) # Salida: 5.0
print(dividir(10, 0)) # Salida: Error: División por ceroConclusión
En esta sección, hemos explorado estructuras de control avanzadas como switch/case, bucles anidados y el manejo de excepciones. Estas herramientas te permitirán escribir programas más robustos y eficientes. Asegúrate de practicar estos conceptos con los ejercicios proporcionados para reforzar tu comprensión. En el próximo módulo, profundizaremos en funciones y procedimientos, lo que te permitirá modularizar y organizar mejor tu código.
Fundamentos de la Programación
Módulo 1: Introducción a la Programación
- ¿Qué es la programación?
- Historia de la programación
- Lenguajes de programación
- Entornos de desarrollo
