Please carefully read the specs word file. Other supporting files are also included in the attachments.
Name:EXAMPLE Date:EXAMPLE Assignment Title: Individual Programming 1 Part 2 Summary of how the program should run:The current program starts by asking the user for a category of this. If the user enters a term that ends in an “s”, the program will remove the ending ‘s’. The program will then ask how many items he/she would like to enter. The program will then ask for the items. The rest of the program should run as usual. It will ask for a number between 1 and n (the user-inputted number). It will print a sorted list. It will also ask for a character and check if that character exists in each of the user-inputted items. List of changes made to the original assignment:· Does not automatically generate a list of 5. Instead the user chooses how many items to put in the list · Removes ‘s’ from the user-input “category of things” if it ends with an ‘s’. Examples of the program (please also upload any attachments necessary):##### Example 1 ##### Let's create a list of things. Think of a general category. What category of things should we store? Animals How many are there? 6 Animal 1: fish Animal 2: cat Animal 3: dog Animal 4: bird Animal 5: snake Animal 6: hamster Pick a number between 1 and 6: 2 You picked cat! The sorted list is: ['bird', 'cat', 'dog', 'fish', 'hamster', 'snake'] Pick a character: a [False, True, False, False, True, True] Errors that will crash the program or cause illogical problems:The program will crash if the user does not enter an integer between 1 and n when prompted to “Pick a number…”. The program will also crash if the user does not enter an integer when asked “How many are there?” I removed the “s” from the user-input category since the user might enter plural versions of words. However, this does not correctly account for “-es” endings or nouns that end in ‘s’ without pluralization. See example 2. Additional examples or other comments/notes:##### Example 2 ##### Let's create a list of things. Think of a general category. What category of things should we store? Bus How many are there? 3 Bu 1: Big Blue Bus Bu 2: LA Metro Bu 3: Culver CityBus Pick a number between 1 and 6: 2 You picked Culver CityBus! The sorted list is: ['Big Blue Bus', 'Culver CityBus', 'LA Metro'] Pick a character: u [True, True, False] Name:EXAMPLE Date:EXAMPLE Assignment Title: Individual Programming _____ Summary of how the program should run: List of changes made to the original assignment: Examples of the program (please also upload any attachments necessary): Errors that will crash the program or cause illogical problems: Additional examples or other comments/notes: Python Final Programming Assignment For the final programming assignment, you will be working individually to scrape information from the classicshorts.com (Links to an external site.) website. Part 1 Your program should start by asking the user to name a short story by path on the classicshorts.com (Links to an external site.) website. For example, if the user enters 'aos' then the program will access the website http://classicshorts.com/stories/aos.html (Links to an external site.). If the user enters an invalid short story (path, such as 'aps'--note the typo), the program will say "Short story not found" and quit. (Hint: try-except) If a story is found, state that the story was found and how many vocabulary terms there are. Part 2 The program will store the vocabulary words in such a way that the user can optionally update the word's definition. Eliminate duplicates. By default, the definition should be an empty string (''). It will ask the user if he/she would like to update any definitions. If the user enters 'Y' (for yes), then program will ask for the term and definition. Afterwards, the program will ask the user if he/she would like to update additional definitions. If the user answers 'Y' again, then the program will repeat this step until the user enters 'N' (for no). Note, for words that already have definitions, the program MUST warn the user and state what the current definition is. For words not in the vocabulary list, the program will simply state that the word was not found and ask if the user would like to update additional definitions until 'N' is encountered. Part 3 As a final step, the program will ask the user for a file name to save the vocabulary words. The text must be saved using format() such that there are enough spaces for the longest vocabulary word, followed by a space, a dash, and a space before the definition. The vocabulary words should be left aligned. See below for an example. Here is an example of what the program should look like to the user, with red as the user-input: What's the short story path? araby Short story found. There are 20 unique vocabulary words. Would you like to update a definition (Y/N)? Y Term: sombre Definition: gloomily dark Would you like to update a definition (Y/N)? Y Term: gauntlet Definition: glove Would you like to update a definition (Y/N)? Y Term: gauntlet WARNING! gauntlet is currently defined as 'glove' Definition: a glove Would you like to update a definition (Y/N)? Y Term: proffer ERROR! Term not found. Would you like to update a definition (Y/N)? N What would you like to save the file as? myvocab1.txt File saved! Here is an example of the corresponding output file: myvocab1.txt (see attachment) Note that even though there are many instances of 'bazaar' in Araby, it is only counted once in the unique vocabulary words list. Here is another example of the program: What's the short story path? araby Short story found. There are 20 unique vocabulary words. Would you like to update a definition (Y/N)? N What would you like to save the file as? myvocab2.txt File saved! Here is an example of a short story with no vocabulary words: What's the short story path? souls Short story found. There are no vocabulary words. Here is an example of a short story that could not be located: What's the short story path? python Short story not found. Hints: · All vocabulary words are associated with a dictionary.com hyperlink. Use the dictionary.com hyperlink to extract the vocabulary work when you first go through the original classicshorts.com (Links to an external site.) page. · Not all key terms refer to dictionary.com. For example, "Hongkong" in Beyond the Wall (Links to an external site.) links to a Wikipedia page. It does not need to be added to our vocabulary list. · DO NOT TRY TO ACCESS ALL OF THE SHORT STORIES AS YOU COULD GET LOCKED OUT OF THE WEBPAGE · KEEP IT SIMPLE! Code Hints: The following code may serve as a helpful example for this assignment, but is not intended to be included in the assignment. In other words, you'll need to modify it. (use BeautifulSoup4) from bs4 import BeautifulSoup from urllib.request import urlopen response = urlopen('https://www.classicshorts.com/stories/aos.html') soup = BeautifulSoup(response, 'html.parser') atag = soup.findAll('a') for tag in atag: if "dictionary" in tag.get('href'): print(tag.get('href')) print(tag.get('href').replace("http://dictionary.reference.com/browse/", "")) EXTENSION (5 points): This is your own customization of the original assignment. Think of 3+ that you can make the current program more flexible or user-friendly. These changes cannot be coding efficiency improvements (as your original program should already be at its best). The changes are open-ended and MUST be visible to someone using your program. For some improvements, it might help to look in the upcoming chapters. For the "extension" portion of this assignment, you will need to download and complete this "Programming Extension Form": extension_template.docx In all, you should submit three files: 1. Original assignment exactly as prompted above (.py file) 2. Programming Extension Form (.docx file) 3. Modified .py file with changes as listed in the Extension Form imperturbable - sombre - gloomily dark career - gauntlet - a glove ashpits - litany - chalice - throng - impinge - incessant - sodden - bazaar - convent - petticoat - chafed - garrulous - florin - turnstile - salver - fib -