Обработка ошибок с помощью try-except
Хорошая практика при написании собственных функций — заранее предусматривать ситуации, в которых другие пользователи (или вы сами, если случайно передадите неверные аргументы) могут использовать функцию не так, как задумано.
Как вы видели в предыдущем упражнении, функция len() умеет работать со строками, списками и кортежами, но не принимает значения типа int — и в этом случае она генерирует соответствующую ошибку с поясняющим сообщением. Один из способов реализовать такое поведение — обработка исключений с помощью блока try-except.
В этом упражнении вы определите функцию и добавите блок try-except для обработки ситуаций, когда в функцию передаются некорректные аргументы.
Вспомните функцию shout_echo(), которую вы определяли в предыдущих упражнениях: часть её определения уже есть в примере кода. Ваша задача — завершить код обработки исключений в определении функции и добавить подходящее сообщение об ошибке при её возникновении.
Это упражнение является частью курса
Введение в функции Python
Инструкции к упражнению
- Инициализируйте переменные
echo_wordиshout_wordsпустыми строками. - Добавьте ключевые слова
tryиexceptв нужные места блока обработки исключений. - Используйте оператор
*, чтобы повторить строкуword1указанное вechoколичество раз. Присвойте результат переменнойecho_word. - Присоедините строку
'!!!'кecho_word. Присвойте результат переменнойshout_words.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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")