Gestión de errores con try-except
Una buena práctica al escribir tus propias funciones es anticipar también las formas en que otras personas (o tú mismo, si accidentalmente utilizas mal tu propia función) podrían utilizar la función que has definido.
Como en el ejercicio anterior, has visto que la función len()
es capaz de manejar argumentos de entrada como cadenas, listas y tuplas, pero no de tipo int, y emite un error y un mensaje de error apropiados cuando encuentra argumentos de entrada no válidos. Una forma de hacerlo es mediante la gestión de excepciones con el bloque try-except
.
En este ejercicio, definirás una función y utilizarás un bloque try-except
para tratar los casos en que se pasen argumentos de entrada incorrectos a la función.
Recuerda la función shout_echo()
que definiste en ejercicios anteriores; partes de la definición de la función se proporcionan en el código de muestra. Tu objetivo es completar el código de gestión de excepciones en la definición de la función y proporcionar un mensaje de error adecuado cuando se produzca un error.
Este ejercicio forma parte del curso
Introducción a las funciones en Python
Instrucciones de ejercicio
- Inicializa las variables
echo_word
yshout_words
a cadenas vacías. - Añade las palabras clave
try
yexcept
en los lugares adecuados para el bloque de manejo de excepciones. - Utiliza el operador
*
para concatenarecho
copias deword1
. Asigna el resultado aecho_word
. - Concatena la cadena
'!!!'
conecho_word
. Asigna el resultado ashout_words
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Define shout_echo
def shout_echo(word1, echo=1):
"""Concatenate echo copies of word1 and three
exclamation marks at the end of the string."""
# Initialize empty strings: echo_word, shout_words
# Add exception handling with try-except
____:
# Concatenate echo copies of word1 using *: echo_word
echo_word = ____
# Concatenate '!!!' to echo_word: shout_words
shout_words = ____
____:
# Print error message
print("word1 must be a string and echo must be an integer.")
# Return shout_words
return shout_words
# Call shout_echo
shout_echo("particle", echo="accelerator")