Прошу вас разобраться в PYTHON и решить следующую задачу по обработке текста: напишите программу, которая будет

  • 3
Прошу вас разобраться в PYTHON и решить следующую задачу по обработке текста: напишите программу, которая будет пронумеровывать слова во входном многострочном тексте, начиная с нуля, и выводить только те слова, которые начинаются с заглавной буквы. Перед каждым словом нужно указать номер его первого вхождения в тексте. Слова также необходимо отсортировать в лексикографическом порядке. Формат ввода: несколько строк текста. Формат вывода: номер первого вхождения слова в текст и само слово, разделенные дефисом.
Solnechnyy_Pirog
36
Конечно, я помогу вам решить данную задачу по обработке текста в Python. Давайте разобьем ее на несколько шагов.

Шаг 1: Получение ввода
Нам потребуется ввод текста со многострочным форматом. В Python мы можем получить такой ввод с помощью функции input(). Давайте добавим этот шаг в нашу программу:

python
text = ""
while True:
line = input()
if line:
text += line + "\n"
else:
break


Шаг 2: Разделение текста на слова
Теперь наш вводный текст хранится в переменной text. Мы можем разделить этот текст на слова, используя метод split(). Добавим этот шаг в нашу программу:

python
words = text.split()


Шаг 3: Нумерация слов и отбор необходимых слов
Теперь нам нужно нумеровать слова, начиная с нуля, и выбрать только те слова, которые начинаются с заглавной буквы. Мы создадим список, где каждый элемент будет содержать номер первого вхождения слова в тексте и само слово. Затем мы отсортируем этот список в лексикографическом порядке. Добавим этот шаг в нашу программу:

python
result = []
used_words = []
for word in words:
if word[0].isupper() and word not in used_words:
used_words.append(word)
result.append((words.index(word), word))
result.sort(key=lambda x: x[1])


Шаг 4: Вывод результатов
Наконец, мы можем вывести результаты в ожидаемом формате, где номер первого вхождения слова в тексте разделяется с самим словом дефисом. Добавим этот шаг в нашу программу:

python
for item in result:
print(f"{item[0]}-{item[1]}")


Вот полный код программы:

python
text = ""
while True:
line = input()
if line:
text += line + "\n"
else:
break

words = text.split()

result = []
used_words = []
for word in words:
if word[0].isupper() and word not in used_words:
used_words.append(word)
result.append((words.index(word), word))
result.sort(key=lambda x: x[1])

for item in result:
print(f"{item[0]}-{item[1]}")


Теперь вы можете запустить эту программу с вашим текстом в качестве ввода. Она пронумерует слова, начиная с нуля, и выведет только те слова, которые начинаются с заглавной буквы, с указанием номера и самого слова, разделенных дефисом.