Ejercicio 6: Corrección de Errores Comunes en Python

Este ejercicio está diseñado para que los estudiantes experimenten y resuelvan los errores más frecuentes al programar en Python. A través de la corrección de estos errores, se busca mejorar la comprensión de los conceptos básicos y avanzados de Python.

Objetivos

  • Identificar y corregir errores comunes en Python.
  • Comprender la naturaleza de los errores y cómo evitarlos en el futuro.
  • Desarrollar habilidades de depuración y resolución de problemas.

Entrada de Datos

  • Código Python con errores predefinidos.

Código Base

A continuación se presenta el código base con errores comunes. Cada línea contiene un error que debe ser corregido. Las pistas están proporcionadas en los comentarios.

Nivel 1: Errores Básicos

# 1. Indentación Incorrecta (IndentationError)
def funcion():
print("Hola mundo")  

# 2. Error de Tipos (TypeError)
print("La edad es: " + 25)  

# 3. Variables No Definidas (NameError)
print(nombre)  

# 4. Índices Fuera de Rango (IndexError)
lista = [10, 20, 30]
print(lista[3])  

# 5. Uso Incorrecto de for y range()
lista = [1, 2, 3, 4]
for i in range(1, len(lista)):  
    print(lista[i])

# 6. Acceso Incorrecto a Diccionarios (KeyError)
persona = {"nombre": "Carlos", "edad": 30}
print(persona["direccion"])  

# 7. Asignación en Condiciones (SyntaxError)
x = 10
if x = 10:  
    print("X es 10")

# 8. Error de Alcance (UnboundLocalError)
x = 5
def incrementar():
    x += 1  
incrementar()

# 9. División por Cero (ZeroDivisionError)
print(10 / 0)  

# 10. Archivos No Encontrados (FileNotFoundError)
with open("archivo.txt", "r") as f:
    contenido = f.read()

Nivel 2: Errores Más Avanzados

# 11. Mutabilidad de Listas en Funciones
def agregar_elemento(lista=[]):
    lista.append("⚠")
    return lista
print(agregar_elemento())  
print(agregar_elemento())  

# 12. Confusión entre is y ==
a = [1, 2, 3]
b = [1, 2, 3]
print(a is b)  

# 13. Iteración sobre un Diccionario sin .items()
diccionario = {"a": 1, "b": 2, "c": 3}
for clave, valor in diccionario:  
    print(clave, valor)

# 14. Error en el Uso de enumerate()
lista = ["a", "b", "c"]
for item in enumerate(lista):  
    print(item)

# 15. Olvidar el return en una Función
def suma(a, b):
    resultado = a + b  
print(suma(5, 3))  

# 16. Importar Mal un Módulo (ModuleNotFoundError)
import numpy  

# 17. Modificar una Lista Mientras se Itera
lista = [1, 2, 3, 4, 5]
for item in lista:
    if item % 2 == 0:
        lista.remove(item)  
print(lista)

# 18. Uso Incorrecto de zip()
nombres = ["Ana", "Luis", "Carlos"]
edades = [25, 30]
for nombre, edad in zip(nombres, edades):
    print(f"{nombre} tiene {edad} años.")  

# 19. Error al Usar open() sin with
f = open("datos.txt", "r")  
contenido = f.read()

# 20. Usar range() con len() Incorrectamente
lista = ["a", "b", "c"]
for i in range(len(lista)):
    if lista[i] == "b":
        lista.append("d")  
print(lista)

Tareas

  • Corregir cada error en el código proporcionado.
  • Asegurarse de que el código se ejecute sin errores y produzca una salida lógica.

Pruebas

Ejecute el código corregido y verifique que no se produzcan errores. Asegúrese de que la salida sea coherente con las expectativas lógicas de cada fragmento de código.

Conclusión

Al finalizar este ejercicio, el código debería ejecutarse sin errores. Este ejercicio ayuda a desarrollar habilidades críticas de depuración y mejora la comprensión de los errores comunes en Python.