Gestion des erreurs avec try-except
Une bonne pratique dans l’écriture de vos propres fonctions consiste également à anticiper les façons dont d’autres personnes (ou vous-même, si vous utilisez accidentellement mal votre propre fonction) pourraient utiliser la fonction que vous avez définie.
Comme dans l’exercice précédent, vous avez vu que la fonction len()
est capable de traiter des arguments d’entrée tels que des chaînes de caractères, des listes et des tuples, mais pas ceux de type int, et elle lève une erreur correspondante et un message d’erreur si elle reçoit des arguments non valides en entrée. Pour y parvenir, on peut notamment gérer les exceptions à l’aide du bloc try-except
.
Dans cet exercice, vous définirez une fonction et utiliserez un bloc try-except
pour traiter les cas où des arguments d’entrée incorrects sont transmis à la fonction.
Rappelez-vous la fonction shout_echo()
que vous avez définie dans les exercices précédents ; vous retrouverez des parties de la définition de la fonction dans l’exemple de code. Votre objectif est de compléter le code de gestion des exceptions dans la définition de la fonction et de fournir un message d’erreur approprié en cas d’erreur.
Cet exercice fait partie du cours
Introduction aux fonctions en Python
Instructions
- Initialisez les variables
echo_word
etshout_words
à des chaînes vides. - Ajoutez les mots-clés
try
etexcept
aux endroits appropriés pour le bloc de gestion des exceptions. - Utilisez l’opérateur
*
pour concaténer lesecho
copies deword1
. Affectez le résultat àecho_word
. - Concaténez la chaîne
'!!!'
àecho_word
. Affectez le résultat àshout_words
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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")