Traitement des erreurs avec try-except
Une bonne pratique, lorsque vous écrivez vos propres fonctions, consiste à anticiper les façons dont d'autres personnes (ou vous-même, si vous utilisez votre fonction par erreur) pourraient utiliser la fonction que vous avez définie.
Comme dans l'exercice précédent, vous avez vu que la fonction len() peut traiter des arguments d'entrée comme les chaînes, les listes et les tuples, mais pas les entiers de type int; elle lève alors une erreur appropriée avec un message explicite lorsqu'elle rencontre des arguments invalides. Une façon d'y parvenir est d'utiliser le traitement des exceptions avec un bloc try-except.
Dans cet exercice, vous allez définir une fonction et utiliser un bloc try-except pour gérer les cas où des arguments d'entrée incorrects sont passés à la fonction.
Rappelez-vous la fonction shout_echo() que vous avez définie dans les exercices précédents; des parties de sa définition sont fournies dans l'exemple de code. Votre objectif est de compléter le code de traitement des exceptions dans la définition de la fonction et de fournir un message d'erreur approprié lors du déclenchement d'une erreur.
Cette activité fait partie du cours
Introduction aux fonctions en Python
Instructions de l’exercice
- Initialisez les variables
echo_wordetshout_wordsà des chaînes vides. - Ajoutez les mots-clés
tryetexceptaux bons endroits dans le bloc de traitement des exceptions. - Utilisez l'opérateur
*pour concaténerechocopies deword1. Assignez le résultat àecho_word. - Concaténez la chaîne
'!!!'àecho_word. Assignez le résultat àshout_words.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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")