mad lib file exercise write madlib pya small modification of madlib pyrequiring only modification to the main function of madlib py (even better is to start from madlib py if you did the exercise in unique list exercise (page )also create file mymadlib txtas described below your madlib py should prompt the user for the name of file that should contain madlib format string as text (with no quotes around itread in this file and use it as the format string in the tellstory function this is unlike in madlib pywhere the story is literal string coded directly into the programassigned to the variable originalstory the tellstory function and particularly the getkeys function were developed and described in detail in this tutorialbut for this exercise there is no need to follow their inner workings you are just user of the tellstory function (and the functions that it callsyou do not need to mess with the code for the definition of tellstory or any of the earlier supporting functions just keep them from the copy you made of madlib py for your madlib py the original madlib string is already placed in file jungle txt as an example of the story file format expected with the idle editorwrite another madlib format string into file mymadlib txt if you earlier created program mymadlib pythen you can easily extract the story from there (without the quotes around ittest your program madlib py twiceusing jungle txt and then your new madlib story file mymadlib txt summary the same typographical conventions will be used as in the summary (page object notation (awhen the name of type of object is used as function callit is called constructorand new object of that type is constructed and implicitly returned (no return statementthe meanings of any parameters to the constructor depend on the type [constructors (page )(bobject methodnameparameters objects have special operations associated with themcalled methods they are functions automatically applied to the object before the dot further parameters may be expecteddepending on the particular method [object orientation (page ) string (strindexing and methods see the summary (page for string literals and symbolic string operations (astring indexing [string indices (page )stringreference intexpression individual characters in string may be chosen if the string has length lthen the indices start from for the initial character and go to - for the rightmost character negative indices may also be used to count from the right end- for the rightmost character through - for the leftmost character strings are immutableso individual characters may be readbut not set (bstring slices [string slices (page )stringreference start pastend stringreference pastend stringreference start stringreference summary