In: Computer Science
6.30 LAB*: Program: Authoring assistant (1) Prompt the user to enter a string of their choosing. Store the text in a string. Output the string. (1 pt) Ex: 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!
Python Please!
Code for the above program :-
def print_menu():
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")
def get_num_of_non_WS_characters(string):
char = 0
for i in string:
if i == ' ':
continue
else:
char+=1
print("Number of non-whitespace characters: ", char)
def get_num_of_words(string):
list = string.split()
words = len(list)
print("Number of words: ",words)
def fix_capitalization(string):
capital = 0
string = list(string)
if string[0].islower():
string[0] = string[0].upper()
capital+=1
for i in range(len(string)-1):
if string[i]=='.' and string[i+2].islower():
string[i+2] = string[i+2].upper()
capital+=1
print("Number of letters capitalized: {} Edited text: {}".format(capital,''.join(string)))
def replace_punctuation(string):
exclamation_count = 0
semicolon_count = 0
string = list(string)
for i in range(len(string)):
if string[i] == '!':
string[i]= '.'
exclamation_count+=1
if string[i]==';':
string[i]= ','
semicolon_count+=1
print("Punctuation replaced exclamation_count: {} semicolon_count: {}".format(exclamation_count,semicolon_count))
print("Edited text: ",''.join(string))
def shorten_space(string):
string = list(string)
for i in range(len(string)-1):
if string[i].isspace() and string[i+1].isspace():
string[i]= ''
print("Edited text: ",''.join(string))
string = input("Enter a string: ")
while True:
print_menu()
command = input("Choose a option: ")
if command == 'c':
get_num_of_non_WS_characters(string)
elif command == 'w':
get_num_of_words(string)
elif command == 'f':
fix_capitalization(string)
elif command == 'r':
replace_punctuation(string)
elif command == 's':
shorten_space(string)
elif command=='q':
break
else:
print("Invalid input Try again")
Screenshot for above code :-
Output of above code :-