Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Let's write a program that can handle any Madlib. To do that we will read the Madlib from a file. The MadLib will contain words
Let's write a program that can handle any Madlib. To do that we will read the Madlib from a file. The MadLib will contain words like_name or_a_place_ which identify the blanks that must be filled in. Your program should prompt the user for a substitution for each blank in the file before printing the resulting Madlib Some code is provided to get you started. There are also comments to guide you Sample Input There are four sample files for you to test your program. You can download these files below madlib1 madlib2 madlib3 madlib4 The contents of the madlib4 file are namo is too cool for oun class. Instead, they will be attending an event Note that there are spaces surrounding each_blank_ in the input file to simplify parsing them The same input for the program includes the filename, followed by the values for the_blanks_. Here is some sample input for madib4 madlib4 rank Python concert Sample Output The output for the madlib4 file should look like this when given the sample input above. MadLib Lilename? namo? noun? an event? Frank is too cool for Python class. Instead, they will be attending concert. Your solution should contain the following functions | 1. madlib-word (word) - n implementation of this tinction is already given. This tunction replaces the blanks in madlib with given word. | 2. madlib line (text) -This function shou I d ma ke a call to madlib word function for building a sentence/line constituting the words 3. madlib_filc(filenamc)-This function should make a call to madlib_line to build cach sentence | t the given madl ib and should write each line built in above step to the given madl ib tlename 4. madlib print(mad iib) -Shold print a completed mad iib trom the given madiib tiie madlib4 madlib2 madlib3 ,and madlibl Download madlib.py 1 # MadLibs from a file 3 def madlib_word(word): 4 "" "Returns a substitution for a fill-in-the-blank or the original word.""" if word [ --" "-word[-11: return input (word[1:-1].replace(" ", "")+? ') else: return word 9 10 11 def madlib_line (text): 12 13 14 15 16 17 18 def madlib_file(filename): """Returns a string containing the line with the fill-in-the-blanks substituted.""" words text. split() # try printing this to see what it does # process all the words in the line and return a string - hint use mad lib-word return 20 21 """Reads the madlib file and returns the completed madlib as a list of strings.""" # process all the lines in the file and return a list of strings - hint use madlib-line return 23 24 def madlib_print (madlib): 25 26 27 28 29 30 def main(): 31 32 """Prints a completed MadLib, line by line.""" # print the strings in the list return "" "Completes the user supplied madlib.""" filename input ("MadLib filename? ") madlib_print(madlib_file(filename)) 34 35 36 # Do not change the following lines or the tests will fail. 37 if name main 38 39 main()
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started