control structures and functions the also covered the use of the assert statement this statement is very useful for specifying the preconditions and postconditions that we expect to be true on every use of functionand can be real aid to robust programming and bug hunting in this we covered all the fundamentals of creating functionsbut many other techniques are available to us these include creating dynamic functions (creating functions at runtimepossibly with implementations that differ depending on circumstances)covered in local (nestedfunctionscovered in and recursive functionsgenerator functionsand so oncovered in although python has considerable amount of built-in functionalityand very extensive standard libraryit is still likely that we will write some functions that would be useful in many of the programs we develop copying and pasting such functions would lead to maintenance nightmaresbut fortunately python provides clean easy-to-use solutioncustom modules in the next we will learn how to create our own modules with our own functions inside them we will also see how to import functionality from the standard library and from our own modulesand will briefly review what the standard library has to offer so that we can avoid reinventing the wheel exercise ||write an interactive program that maintains lists of strings in files when the program is run it should create list of all the files in the current directory that have the lst extension use os listdir("to get all the files and filter out those that don' have the lst extension if there are no matching files the program should prompt the user to enter filename--adding the lst extension if the user doesn' enter it if there are one or more lst files they should be printed as numbered list starting from the user should be asked to enter the number of the file they want to loador in which case they should be asked to give filename for new file if an existing file was specified its items should be read if the file is emptyor if new file was specifiedthe program should show message"no items are in the listif there are no itemstwo options should be offered"addand "quitonce the list has one or more itemsthe list should be shown with each item numbered from and the options offered should be "add""delete""save(unless already saved)and "quitif the user chooses "quitand there are unsaved changes they should be given the chance to save here is transcript of session with the program (with most blank lines removedand without the "list keepertitle shown above the list each time)