始める無料で始める

try-except によるエラー処理

自作の関数を書くときは、他の人が(あるいは自分自身が誤って)その関数をどのように使うかを想定しておくことも大切です。

前の演習でも見たように、len() 関数は文字列、リスト、タプルなどの引数は処理できますが、int 型は扱えず、不正な引数に遭遇すると適切なエラーとエラーメッセージを出します。これを実現する 1 つの方法が、try-except ブロックによる例外処理です。

この演習では、関数を定義し、さらに try-except ブロックを使って、誤った引数が渡された場合を処理します。

以前の演習で定義した shout_echo() 関数を思い出してください。関数定義の一部はサンプルコードに用意されています。目的は、関数定義内の例外処理コードを完成させ、エラーを送出する際に適切なエラーメッセージを提供することです。

この演習はコースの一部です

Pythonの関数入門

コースを見る

演習の手順

  • 変数 echo_wordshout_words を空文字列で初期化します。
  • 例外処理ブロックの適切な位置にキーワード tryexcept を追加します。
  • 演算子 * を使って、word1echo 回だけ連結します。結果を 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")
コードを編集して実行