Obsługa błędów z try-except
Dobrą praktyką przy pisaniu własnych funkcji jest przewidywanie, w jaki sposób inni (albo ty sam, jeśli przypadkowo źle użyjesz własnej funkcji) mogą z niej korzystać.
Podobnie jak w poprzednim ćwiczeniu, przekonałeś się, że funkcja len() potrafi obsługiwać argumenty takie jak ciągi znaków, listy i krotki, ale nie liczby całkowite – w takim przypadku zgłasza odpowiedni błąd wraz z komunikatem. Jednym ze sposobów realizacji tego mechanizmu jest obsługa wyjątków za pomocą bloku try-except.
W tym ćwiczeniu zdefiniujesz funkcję i użyjesz bloku try-except do obsługi sytuacji, w których do funkcji zostaną przekazane nieprawidłowe argumenty.
Przypomnij sobie funkcję shout_echo() zdefiniowaną w poprzednich ćwiczeniach – jej częściowa definicja znajduje się już w przykładowym kodzie. Twoim zadaniem jest uzupełnienie kodu obsługi wyjątków w definicji funkcji oraz podanie odpowiedniego komunikatu błędu przy jego zgłaszaniu.
To ćwiczenie jest częścią kursu
Wprowadzenie do funkcji w Pythonie
Instrukcje do ćwiczenia
- Zainicjalizuj zmienne
echo_wordishout_wordsjako puste ciągi znaków. - Dodaj słowa kluczowe
tryiexceptwe właściwych miejscach bloku obsługi wyjątków. - Użyj operatora
*, aby połączyćechokopiiword1. Przypisz wynik doecho_word. - Połącz ciąg znaków
'!!!'zecho_word. Przypisz wynik doshout_words.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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")