def print_menu(usr_str: str): aamenu_options = ['c', 'w', 'f', 'r', 's', 'q'] print('\nMENU') 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\n') aachoice = input('Choose an option: ').lower() while aachoice not in aamenu_options: print('Invalid choice') aachoice = input('Choose an option:') if aachoice == 'c': print('Number of non-whitespace characters:', get_num_of_non_WS_characters(usr_str)) elif aachoice == 'w': print('Number of words:', get_num_of_words(usr_str)) elif aachoice == 'f': usr, count = fix_capitalization(usr_str) print('Number of letters capitalized:', count) print('Edited text:', usr_str) elif aachoice == 'r': usr_str = replace_punctuation(usr_str) print('Edited text:', usr_str) elif aachoice == 's': usr_str = shorten_space(usr_str) print('Edited text:', usr_str) return aachoice, usr_str def get_num_of_non_WS_characters(usr_str:str): count = 0 for i in usr_str: if not i.isspace(): count +=1 return count def get_num_of_words(usr_str: str): num_words = len(usr_str.split()) return num_words def fix_capitalization(usr_str): count = 0 edited_str = '' phrase = s.split('. ') for i in phrase: if i[0].islower(): count +=1 edited_str += i[0].upper() + i[1:] + '. ' else: edited_str += i + '. ' print('Number of letters capitalized:', caps) return count def replace_punctuation(usr_str: str, **kwargs): exclamation_count = 0 semicolon_count = 0 result = '' for i in usr_str: if i == '!': i = '.' exclamation_count += 1 elif i == ';': i = ',' semicolon_count += 1 result += i print('Punctuation replaced', exclamation_count) print('Exclamation Count:', semicolon_count) return result def shorten_space(usr_str:str): result = '' for i in range(len(usr_str) - 1): if not (usr_str[i].isspace() and usr_str[i + 1].isspace()): result += usr_str[i] return result def main(): usr_str = input('Enter a sample text: \n') print('\nYou entered:', usr_str) choice = '' while choice != 'q': choice, usr_str = print_menu(usr_str) if __name__ == '__main__': main() used input in the problem: 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! problem: my fix capitalization has a small problem that is shown in the photo, it says that s is not defined?
Python code:
Code I have so far:
def print_menu(usr_str: str):
aamenu_options = ['c', 'w', 'f', 'r', 's', 'q']
print('\nMENU')
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\n')
aachoice = input('Choose an option: ').lower()
while aachoice not in aamenu_options:
print('Invalid choice')
aachoice = input('Choose an option:')
if aachoice == 'c':
print('Number of non-whitespace characters:', get_num_of_non_WS_characters(usr_str))
elif aachoice == 'w':
print('Number of words:', get_num_of_words(usr_str))
elif aachoice == 'f':
usr, count = fix_capitalization(usr_str)
print('Number of letters capitalized:', count)
print('Edited text:', usr_str)
elif aachoice == 'r':
usr_str = replace_punctuation(usr_str)
print('Edited text:', usr_str)
elif aachoice == 's':
usr_str = shorten_space(usr_str)
print('Edited text:', usr_str)
return aachoice, usr_str
def get_num_of_non_WS_characters(usr_str:str):
count = 0
for i in usr_str:
if not i.isspace():
count +=1
return count
def get_num_of_words(usr_str: str):
num_words = len(usr_str.split())
return num_words
def fix_capitalization(usr_str):
count = 0
edited_str = ''
phrase = s.split('. ')
for i in phrase:
if i[0].islower():
count +=1
edited_str += i[0].upper() + i[1:] + '. '
else:
edited_str += i + '. '
print('Number of letters capitalized:', caps)
return count
def replace_punctuation(usr_str: str, **kwargs):
exclamation_count = 0
semicolon_count = 0
result = ''
for i in usr_str:
if i == '!':
i = '.'
exclamation_count += 1
elif i == ';':
i = ','
semicolon_count += 1
result += i
print('Punctuation replaced', exclamation_count)
print('Exclamation Count:', semicolon_count)
return result
def shorten_space(usr_str:str):
result = ''
for i in range(len(usr_str) - 1):
if not (usr_str[i].isspace() and usr_str[i + 1].isspace()):
result += usr_str[i]
return result
def main():
usr_str = input('Enter a sample text: \n')
print('\nYou entered:', usr_str)
choice = ''
while choice != 'q':
choice, usr_str = print_menu(usr_str)
if __name__ == '__main__':
main()
used input in the problem:
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!
problem:
my fix capitalization has a small problem that is shown in the photo, it says that s is not defined?
Thank you so much and have a great day.
Step by step
Solved in 4 steps with 3 images