Manejo de errores de sintaxis y excepciones en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Bienvenido al laboratorio de Errores de Sintaxis y Excepciones en Python. En este laboratorio, aprenderá a identificar y corregir los errores de sintaxis en su código Python, así como a manejar las excepciones que pueden surgir durante la ejecución de su código.

Logros

  • Errores de Sintaxis
  • Excepciones

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") python/ErrorandExceptionHandlingGroup -.-> python/raising_exceptions("Raising Exceptions") python/ErrorandExceptionHandlingGroup -.-> python/finally_block("Finally Block") subgraph Lab Skills python/python_shell -.-> lab-80{{"Manejo de errores de sintaxis y excepciones en Python"}} python/conditional_statements -.-> lab-80{{"Manejo de errores de sintaxis y excepciones en Python"}} python/for_loops -.-> lab-80{{"Manejo de errores de sintaxis y excepciones en Python"}} python/catching_exceptions -.-> lab-80{{"Manejo de errores de sintaxis y excepciones en Python"}} python/raising_exceptions -.-> lab-80{{"Manejo de errores de sintaxis y excepciones en Python"}} python/finally_block -.-> lab-80{{"Manejo de errores de sintaxis y excepciones en Python"}} end

Comprendiendo los Errores de Sintaxis

Un error de sintaxis ocurre cuando el intérprete de Python no puede entender la estructura de su código. Esto puede ser debido a una variedad de problemas, como paréntesis faltantes o sangría incorrecta.

Abra un nuevo intérprete de Python.

python3

Aquí hay un ejemplo de un error de sintaxis causado por la falta de dos puntos al final de un bucle for:

for i in range(10)
  print(i)

El intérprete generará un error de sintaxis y nos dirá dónde se produjo el error:

File "<stdin>", line 1
    for i in range(10)
                      ^
SyntaxError: sintaxis no válida

El símbolo de circunflejo (^) indica la ubicación del error de sintaxis y el mensaje de error nos dice que la sintaxis no es válida.

Para corregir este error de sintaxis, simplemente necesitamos agregar los dos puntos al final del bucle for:

for i in range(10):
  print(i)

Ahora, probemos un ejemplo con sangría incorrecta:

if True:
print("Hello, World!")

En este ejemplo, la instrucción print no está correctamente sangrada debajo de la instrucción if. Para corregir este error de sintaxis, necesitamos sangrar correctamente la instrucción print:

if True:
  print("Hello, World!")

Manejo de Excepciones

Una excepción es un error que ocurre durante la ejecución de un programa. En Python, podemos manejar las excepciones utilizando las declaraciones try y except.

Aquí hay un ejemplo de cómo manejar una excepción ZeroDivisionError:

try:
  x = 10 / 0
except ZeroDivisionError:
  print("No se puede dividir por cero!")

En este ejemplo, el bloque try contiene código que puede generar una excepción ZeroDivisionError. Si se produce la excepción, el control se pasa al bloque except, que maneja la excepción imprimiendo un mensaje de error.

También podemos manejar múltiples excepciones en el mismo bloque try utilizando la declaración except con múltiples excepciones:

try:
  x = 10 / 0
  y = int('abc')
except ZeroDivisionError:
  print("No se puede dividir por cero!")
except ValueError:
  print("Entrada no válida!")

En este ejemplo, el bloque try contiene código que puede generar una ZeroDivisionError o una ValueError. Si se produce una ZeroDivisionError, el bloque except con la ZeroDivisionError la manejará. Si se produce una ValueError, el bloque except con la ValueError la manejará.

Lanzamiento de Excepciones

Además de manejar excepciones, también podemos lanzar excepciones en nuestro código utilizando la declaración raise.

Aquí hay un ejemplo de cómo lanzar una excepción ValueError:

def validate_age(age):
  if age < 0:
    raise ValueError("La edad no puede ser negativa.")

try:
  validate_age(-1)
except ValueError as e:
  print(e)

En este ejemplo, la función validate_age lanza una excepción ValueError si la edad es negativa. El bloque try llama a la función validate_age con una edad negativa, lo que hace que se lance la excepción ValueError. El bloque except maneja la excepción e imprime el mensaje de error.

Capturando Todas las Excepciones

A veces, puede que queramos capturar todas las excepciones que se pueden generar en un bloque try. Podemos hacer esto utilizando la declaración except sin especificar ninguna excepción:

try:
  x = 10 / 0
  y = int('abc')
except:
  print("Se produjo un error!")

En este ejemplo, el bloque try contiene código que puede generar una ZeroDivisionError o una ValueError. Si se produce cualquiera de las excepciones, será capturada por el bloque except, que imprime un mensaje de error.

La cláusula else

Podemos utilizar la cláusula else en una declaración try para especificar un bloque de código que debe ejecutarse solo si no se generan excepciones en el bloque try:

try:
  x = int(input("Ingrese un número: "))
except ValueError:
  print("Entrada no válida!")
else:
  print("El número es", x)

En este ejemplo, el bloque try contiene código que puede generar una excepción ValueError si el usuario ingresa un valor no válido. Si no se generan excepciones, se ejecuta el bloque else y se imprime el número.

La cláusula finally

Podemos utilizar la cláusula finally en una declaración try para especificar un bloque de código que siempre debe ejecutarse, haya o no una excepción:

try:
  x = int(input("Ingrese un número: "))
except ValueError:
  print("Entrada no válida!")
finally:
  print("Saliendo del programa.")

En este ejemplo, el bloque try contiene código que puede generar una excepción ValueError si el usuario ingresa un valor no válido. Haya o no una excepción, el bloque finally siempre se ejecuta y el programa sale.

Resumen

En este laboratorio, aprendiste a identificar y corregir errores de sintaxis en tu código de Python, así como a manejar excepciones utilizando las declaraciones try y except. También aprendiste a lanzar excepciones en tu código utilizando la declaración raise, y a utilizar las cláusulas else y finally en una declaración try.

Espero que este laboratorio haya sido útil y que te sientas más seguro trabajando con errores de sintaxis y excepciones de Python.