Exercise 7:
Create a fill in the blank word game. Prompt the user to enter a noun, verb, and an adjective.
Use those responses to fill in the blanks and display the story.
Write a short story. Remove a noun, verb, and an adjective.
Create a function to get the input from the user.
Create a function that fills in the blanks in the story you created.
Ensure each function contains a docstring.
After the noun, verb, and adjective have been collected from the user, display the story using
their input.
Solution:
#!/usr/bin/env python3
def get_word(word_type):
"""Get a word from a user and return that word."""
# The lower() function converts the string to lowercase before testing it
if word_type.lower() == 'adjective':
# Use 'an' in front of 'adjective'
a_or_an = 'an'
else:
# Otherwise, use 'a' in front of 'noun' or 'verb'
a_or_an = 'a'
return input('Enter a word that is {0} {1}: '.format(a_or_an, word_type))
def fill_in_the_blanks(noun, verb, adjective):
"""Fills in the blanks and returns a completed story."""
# The \ lets the string continue on the next line to make the code easier to read
story = "In this course you will learn how to {1}. " \
"It's so easy even a {0} can do it. " \
"Trust me, it will be very {2}.".format(noun, verb, adjective)
return story
def display_story(story):
"""Displays a story."""
print()
print('Here is the story you created. Enjoy!')
print()
print(story)
def create_story():
"""Creates a story by capturing the input and displaying a finished story."""
noun = get_word('noun')
verb = get_word('verb')
adjective = get_word('adjective')
the_story = fill_in_the_blanks(noun, verb, adjective)
display_story(the_story)
create_story()