Ответы
import string
text = (
"Не следует, однако, забывать, что начало повседневной работы по формированию позиции однозначно фиксирует "
"необходимость переосмысления внешнеэкономических политик. но непосредственные участники технического прогресса и "
"по сей день остаются уделом либералов, которые жаждут быть смешаны с не уникальными данными до степени "
"совершенной неузнаваемости, из-за чего возрастает их статус бесполезности! Противоположная точка зрения "
"подразумевает, что представители современных социальных резервов неоднозначны и будут функционально разнесены на "
"независимые элементы."
)
MENU = """\
1 - Изменить текст таким образом, чтобы каждое предложение начиналось с большой буквы;
2 - Посчитайте сколько раз цифры встречаются в тексте;
3 - Посчитайте сколько раз знаки препинания встречаются в тексте;
4 - Посчитайте количество восклицательных знаков в тексте;
5 - Поиск целого слова в тексте;
6 - Разбитие и вывод текста по строкам."""
print(MENU)
action = int(input("Выберите пункт меню: "))
if action == 1:
sentences = []
sentence = ''
for letter in text:
sentence += letter
if letter in ".!?…":
sentence = sentence.strip() # strip, чтобы убрать лишние пробелы по бокам
# Предложение закончилось. Сделаем первую букву большой.
first_word, *other_words = sentence.split(' ')
# разделить предложение на слова (через пробел), первое в first_word, остальные в список слов other_words
# первую большой, остальные просто добавить
# добавим новое готовое предложение
sentences.append(f"{first_word[0].upper()}{first_word[1:]} {' '.join(other_words)}")
sentence = ''
text = ' '.join(sentences)
print(text)
elif action == 2:
digit_count = 0 # счётчик
for letter in text:
if letter in string.digits: # вместо string.digits можно просто написать '0123456789'
digit_count += 1
print('Всего', digit_count, 'чисел.') # Напишет эти слова через пробел
elif action == 3:
punctuation_count = 0
for letter in text:
# string.punctuation = r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""; Наиболее полный список знаков
# можно написать и поменьше, например if letter in ".,-:;/!?":
if letter in string.punctuation:
punctuation_count += 1
print('Всего', punctuation_count, 'знаков препинания.')
elif action == 4:
# Если вам нужно посчитать всего один символ (или их последовательность), у строк есть метод count
print('Всего', text.count('!'), 'восклицательных знаков.')
elif action == 5:
# спрашиваем искомое слово, убираем лишние знаки препинания (если они там почему-то есть)
# casefold - приведёт слово к нижнему регистру, чтобы поиск был не чувствителен к регистру (это необязательно)
search_word = input('Введите слово: ').strip(string.punctuation).casefold()
for word in text.split(): # пробегаемся по каждому слову текста
# также убираем пунктуацию по бокам
# если они равны - слово найдено,
if word.strip(string.punctuation).casefold() == search_word:
print('Слово найдено!')
break # принудительно выходит из цикла
elif action == 6:
for line in text.splitlines(): # разбиваем на строки; можно написать text.split('\n')
print(line)
else:
print('Не верный номер.')
# По поводу f-строк (f"{some} string"), просто красивая запись str(some)+' string'
# Смотрите https://peps.python.org/498 этот инструмент мощнее чем кажется.