始める無料で始める

ネストされた関数 I

直前の動画で、関数の中に関数をネストできることを学びました。これを行う理由の1つは、同じ計算を関数内で何度も書かずに済ませるためです。ネストされた関数の定義方法自体は新しいものではありません。通常の関数と同じく def で定義し、別の関数の中に埋め込むだけです!

この演習では、関数 three_shouts() の中に、文字列オブジェクトに !!! を連結するネストされた関数 inner() を定義します。three_shouts() はその後、inner() を使って !!! が連結された3つの文字列からなるタプルを返します。やってみましょう!

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

Pythonの関数入門

コースを見る

演習の手順

  • ネストされた関数のヘッダーを、関数名 inner() と単一のパラメータ word で完成させてください。
  • 戻り値を完成させてください:タプルの各要素は inner() の呼び出しにし、各呼び出しに three_shouts() のパラメータを引数として渡します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define three_shouts
def three_shouts(word1, word2, word3):
    """Returns a tuple of strings
    concatenated with '!!!'."""

    # Define inner
    def ____(____):
        """Returns a string concatenated with '!!!'."""
        return word + '!!!'

    # Return a tuple of strings
    return (____, ____, ____)

# Call three_shouts() and print
print(three_shouts('a', 'b', 'c'))
コードを編集して実行