try-except によるエラー処理
自作の関数を書くときは、他の人が(あるいは自分自身が誤って)その関数をどのように使うかを想定しておくことも大切です。
前の演習でも見たように、len() 関数は文字列、リスト、タプルなどの引数は処理できますが、int 型は扱えず、不正な引数に遭遇すると適切なエラーとエラーメッセージを出します。これを実現する 1 つの方法が、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")