Answer:
See Explaination
Step-by-step explanation:
def print_menu(usr_str):
menu_op = ' '
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')
print()
print('Choose an option:')
menu_op = input()
return menu_op, usr_str
def get_num_of_non_WS_characters(user_input):
count=0
for i in user_input:
if i!= ' ':
count=count+1
return count
def get_num_of_words(user_input):
word_count = len(user_input.split())
return word_count
def fix_capitalization(user_input):
char_count=0
output_string = ''
line_terminator = ['.', '!']
end_of_line = False
for i in user_input:
if output_string == '':
char_count += 1
output_string += i.upper()
elif end_of_line == False and i not in line_terminator:
output_string = output_string + i
elif i in line_terminator:
end_of_line = True
output_string = output_string + i
elif end_of_line == True and i == ' ':
output_string = output_string + i
elif end_of_line == True and i != ' ':
output_string = output_string + i.upper()
char_count += 1
end_of_line = False
return output_string, char_count
def replace_punctuation(user_input, exclamation_count, semicolon_count):
list = ['!', ';']
exclamation_count = 0
semicolon_count = 0
output = ''
for i in user_input:
if i in list:
if i == list[0]:
output += '.'
exclamation_count += 1
elif i == list[1]:
output += ','
semicolon_count += 1
elif i not in list:
output += i
return output, exclamation_count, semicolon_count
def shorten_space(user_input):
import re
output = re.sub(' +', ' ', user_input).strip()
return output
if __name__ == '__main__':
import re
valid_choices = ['c', 'w', 'f', 'r', 's', 'q']
input_str = input('Enter a sample text:\\')
print()
print('You entered:', input_str)
print()
choice, user_input = print_menu(input_str)
while choice not in valid_choices:
choice, user_input = print_menu(input_str)
if choice == 'c':
print('Number of non-whitespace characters:', get_num_of_non_WS_characters(user_input))
print()
choice, user_input = print_menu(input_str)
elif choice == 'w':
print('Number of words:', get_num_of_words(user_input))
print()
choice, user_input = print_menu(input_str)
elif choice == 'f':
edit_txt, num_letters = fix_capitalization(user_input)
print('Number of letters capitalized:', num_letters)
print('Edited text:', edit_txt)
print()
choice, user_input = print_menu(input_str)
elif choice == 'r':
output, exc_count, semi_count = replace_punctuation(user_input, exclamation_count = 0, semicolon_count = 0)
print('Punctuation replaced')
print('exclamation_count:', exc_count)
print('semicolon_count:', semi_count)
print('Edited text:', output)
print()
choice, user_input = print_menu(input_str)
elif choice == 's':
print('Edited text:', shorten_space(user_input))
print()
choice, user_input = print_menu(input_str)
elif choice == 'q':
pass