Nested Functions I
You've learned in the last video about nesting functions within functions. One reason why you'd like to do this is to avoid writing out the same computations within functions repeatedly. There's nothing new about defining nested functions: you simply define it as you would a regular function with def and embed it inside another function!
In this exercise, inside a function three_shouts(), you will define a nested function inner() that concatenates a string object with !!!. three_shouts() then returns a tuple of three elements, each a string concatenated with !!! using inner(). Go for it!
This exercise is part of the course
Introduction to Functions in Python
Exercise instructions
- Complete the function header of the nested function with the function name 
inner()and a single parameterword. - Complete the return value: each element of the tuple should be a call to 
inner(), passing in the parameters fromthree_shouts()as arguments to each call. 
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# 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'))