Ošetření chyb pomocí try-except
Dobrý zvyk při psaní vlastních funkcí je také předvídat, jak by je mohli používat ostatní (nebo ty sám/sama, pokud funkci omylem použiješ nesprávně).
V předchozím cvičení jsi viděl/a, že funkce len() dokáže pracovat se vstupními argumenty jako jsou řetězce, seznamy a n-tice, ale ne s argumenty typu int — a v takovém případě vyvolá odpovídající chybu i chybovou zprávu. Jedním ze způsobů, jak toho dosáhnout, je ošetření výjimek pomocí bloku try-except.
V tomto cvičení si nadefinuješ funkci a použiješ blok try-except k ošetření případů, kdy jsou funkci předány nesprávné vstupní argumenty.
Vzpomeň si na funkci shout_echo(), kterou jsi definoval/a v předchozích cvičeních — části její definice jsou už připraveny v ukázkovém kódu. Tvým cílem je doplnit kód pro ošetření výjimek v definici funkce a poskytnout vhodnou chybovou zprávu při vyvolání chyby.
Toto cvičení je součástí kurzu
Úvod do funkcí v Pythonu
Pokyny k cvičení
- Inicializuj proměnné
echo_wordashout_wordsjako prázdné řetězce. - Doplň klíčová slova
tryaexceptna správná místa v bloku pro ošetření výjimek. - Pomocí operátoru
*zřetězechokopií řetězceword1. Výsledek přiřaď do proměnnéecho_word. - K proměnné
echo_wordpřipoj řetězec'!!!'. Výsledek přiřaď do proměnnéshout_words.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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")