Felhantering med try-except
En god vana när du skriver egna funktioner är att också förutse hur andra – eller du själv, om du råkar använda din funktion fel – kan tänkas anropa den.
Som du såg i föregående övning kan funktionen len() hantera indataargument som strängar, listor och tupler, men inte heltal. Den kastar då ett lämpligt fel med ett beskrivande felmeddelande. Ett sätt att åstadkomma detta är via felhantering med ett try-except-block.
I den här övningen definierar du en funktion och använder ett try-except-block för att hantera fall då felaktiga indataargument skickas till funktionen.
Kom ihåg funktionen shout_echo() som du definierade i tidigare övningar – delar av funktionsdefinitionen finns redan i exempelkoden. Din uppgift är att färdigställa felhanteringskoden i funktionsdefinitionen och ange ett lämpligt felmeddelande när ett fel kastas.
Den här övningen är en del av kursen
Introduktion till funktioner i Python
Övningsinstruktioner
- Initiera variablerna
echo_wordochshout_wordstill tomma strängar. - Lägg till nyckelorden
tryochexceptpå rätt platser i felhanteringsblocket. - Använd operatorn
*för att konkateneraechokopior avword1. Tilldela resultatet tillecho_word. - Konkatenera strängen
'!!!'tillecho_word. Tilldela resultatet tillshout_words.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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")