Foutafhandeling met try-except
Een goede gewoonte bij het schrijven van je eigen functies is om al vooruit te denken over de manieren waarop anderen (of jijzelf, als je je eigen functie per ongeluk verkeerd gebruikt) de functie zouden kunnen gebruiken.
Zoals je in de vorige oefening zag, kan de functie len() invoerargumenten zoals strings, lijsten en tuples verwerken, maar geen int-typen; bij ongeldige invoer genereert ze een passende fout en foutmelding. Een manier om dit te doen is via exceptieafhandeling met een try-except-blok.
In deze oefening definieer je een functie en gebruik je een try-except-blok om gevallen af te handelen waarin onjuiste invoerargumenten aan de functie worden doorgegeven.
Denk terug aan de functie shout_echo() die je in eerdere oefeningen hebt gedefinieerd; delen van de functiedefinitie zijn meegegeven in de voorbeeldcode. Jouw doel is om de code voor exceptieafhandeling in de functiedefinitie aan te vullen en een passende foutmelding te geven wanneer je een fout opgewerkt.
Deze oefening maakt deel uit van de cursus
Introductie tot functies in Python
Oefeninstructies
- Initialiseer de variabelen
echo_wordenshout_wordsals lege strings. - Voeg de sleutelwoorden
tryenexcepttoe op de juiste plekken in het blok voor exceptieafhandeling. - Gebruik de operator
*omechokopieën vanword1te concatenëren. Ken het resultaat toe aanecho_word. - Concateneer de string
'!!!'metecho_word. Ken het resultaat toe aanshout_words.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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")