In: Computer Science
*******************In Python please*******************
(1) Prompt the user to enter a string of their choosing. Store the text in a string. Output the string. (1 pt)
Enter a sample text:
we'll continue our quest in space. there will be more shuttle
flights and more shuttle crews and, yes; more volunteers, more
civilians, more teachers in space. nothing ends here; our hopes and
our journeys continue!
You entered: we'll continue our quest in space. there will be more shuttle flights and more shuttle crews and, yes; more volunteers, more civilians, more teachers in space. nothing ends here; our hopes and our journeys continue!
(2) Implement a print_menu() function, which has a string as a parameter, outputs a menu of user options for analyzing/editing the string, and returns the user's entered menu option and the sample text string (which can be edited inside the print_menu() function). Each option is represented by a single character.
If an invalid character is entered, continue to prompt for a valid choice. Hint: Implement the Quit menu option before implementing other options. Call print_menu() in the main section of your code. Continue to call print_menu() until the user enters q to Quit. (3 pts)
Ex:
MENU
c - Number of non-whitespace characters
w - Number of words
f - Fix capitalization
r - Replace punctuation
s - Shorten spaces
q - Quit
Choose an option:
(3) Implement the get_num_of_non_WS_characters() function. get_num_of_non_WS_characters() has a string parameter and returns the number of characters in the string, excluding all whitespace. Call get_num_of_non_WS_characters() in the print_menu() function. (4 pts)
Ex:
Number of non-whitespace characters: 181
(4) Implement the get_num_of_words() function. get_num_of_words() has a string parameter and returns the number of words in the string. Hint: Words end when a space is reached except for the last word in a sentence. Call get_num_of_words() in the print_menu() function. (3 pts)
Ex:
Number of words: 35
(5) Implement the fix_capitalization() function. fix_capitalization() has a string parameter and returns an updated string, where lowercase letters at the beginning of sentences are replaced with uppercase letters. fix_capitalization() also returns the number of letters that have been capitalized. Call fix_capitalization() in the print_menu() function, and then output the the edited string followed by the number of letters capitalized. Hint 1: Look up and use Python functions .islower() and .upper() to complete this task. Hint 2: Create an empty string and use string concatenation to make edits to the string. (3 pts)
Ex:
Number of letters capitalized: 3
Edited text: We'll continue our quest in space. There will be more
shuttle flights and more shuttle crews and, yes; more volunteers,
more civilians, more teachers in space. Nothing ends here; our
hopes and our journeys continue!
(6) Implement the replace_punctuation() function. replace_punctuation() has a string parameter and two keyword argument parameters exclamation_count and semicolon_count. replace_punctuation() updates the string by replacing each exclamation point (!) character with a period (.) and each semicolon (;) character with a comma (,). replace_punctuation() also counts the number of times each character is replaced and outputs those counts. Lastly, replace_punctuation() returns the updated string. Call replace_punctuation() in the print_menu() function, and then output the edited string. (3 pts)
Ex: Punctuation replaced
exclamation_count: 1
semicolon_count: 2
Edited text: we'll continue our quest in space. there will be more
shuttle flights and more shuttle crews and, yes, more volunteers,
more civilians, more teachers in space. nothing ends here, our
hopes and our journeys continue.
(7) Implement the shorten_space() function. shorten_space() has a string parameter and updates the string by replacing all sequences of 2 or more spaces with a single space. shorten_space() returns the string. Call shorten_space() in the print_menu() function, and then output the edited string. Hint: Look up and use Python function .isspace(). (3 pt)
Ex:
Edited text: we'll continue our quest in space. there will be more shuttle flights and more shuttle crews and, yes, more volunteers, more civilians, more teachers in space. nothing ends here; our hopes and our journeys continue!
# function for counting the chars that are not whitspace def get_num_of_non_WS_characters(text): word_list = text.split() count = 0 for word in word_list: count += len(word) return count # function for counting the number of words def get_num_of_words(text): word_list = text.split() return len(word_list) # function for fixing the capitalization of the words def fix_capitalization(text): newText = '' fixed = 0 sentences = text.split('.') for line in sentences: if line == '': continue if line[0] == ' ': new_line = line[0] + line[1].upper() + line[2:] + '.' fixed += 1 newText += new_line else: new_line = line[0].upper() + line[1:] + '.' fixed += 1 newText += new_line return newText, fixed # function for removing he extra spaces def shorten_space(text): words = text.split() newText = '' count = 0 for letter in words: count += 1 if count == len(words) -1: newText += letter newText += letter + ' ' return newText # function for replacing the ! and ; symbols def replace_punctuation(text): exclamation, semicolon = 0, 0 newText = '' for char in text: if char == '!': newText += '.' exclamation += 1 if char == ';': newText += ',' semicolon += 1 else: newText += char return newText, exclamation, semicolon # menu function to display menu and read user response and further proceed def print_menu(text): # loop to read till user quits while True: print() print('MENU') print('c - Number of non-whitespace characters') print('w - Number of words') print('f - Fix capitalization') print('r - Replace punctuation') print('s - Shorten spaces') print('q - Quit') # read option options = ['c', 'w', 'r', 's', 'q', 'f'] option = input('Choose an option: ') # validate option while option not in options: option = input('Choose an option: ') # if-else-if block to call the further functions according to the option entered by user if option == 'c': nwChars = get_num_of_non_WS_characters(text) print() print('Number of non-whitespace characters:', nwChars) elif option == 'w': numWords = get_num_of_words(text) print() print('Number of words:', numWords) elif option == 'f': fixedText, numFixed = fix_capitalization(text) print() print('Number of letters capitalized:', numFixed) print('Edited text:', fixedText) elif option == 'r': updatedText, exclamation_count, semicolon_count = replace_punctuation(text) print() print('Punctuations replaced') print('exclamation_count:', exclamation_count) print('semicolon_count:', semicolon_count) print('Edited text:', updatedText) elif option == 's': shorten_text = shorten_space(text) print() print('Edited text:', shorten_text) # if user wants to quit else: return # driver function def main(): # read and display the text text = input('Enter a sample text:\n') print() print('Text:\n{}'.format(text)) print() # call menu function print_menu(text)
FOR HELP PLEASE COMMENT.
THANK YOU/