CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Initialisez les variables echo_word et shout_words à des chaînes vides.
  • Ajoutez les mots-clés try et except aux bons endroits dans le bloc de traitement des exceptions.
  • Utilisez l'opérateur * pour concaténer echo copies de word1. 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")
Modifier et exécuter le code