Напишите программу, которая принимает из стандартного

Напишите программу, которая принимает из стандартного потока заранее неизвестное количество строк, в каждой из которых записано одно слово. Для каждого слова выведите (в том порядке, в котором слова идут в стандартном потоке ввода) фразу «Живое» или «Не живое» в зависимости от того, является ли существительное одушевлённым по мнению библиотеки pymorphy3. Фраза должна быть согласована по роду и числу с анализируемым словом. Если анализируемое слово не является существительным, выведите фразу «Не существительное». Формат ввода Слова в стандартном потоке ввода, по одному на каждой строке. Формат вывода Результаты анализа каждого слова. Каждый результат с новой строки. Пример 1 Ввод Вывод Кот Кошка Стол Окно Пила Люди Столы Пилить Живой Живая Не живой Не живое Не живая Живые Не живые Не существительное Пример 2 Ввод Вывод Конь Улица Фонарь Аптека Тусклый Свет Живой Не живая Не живой Не живая Не существительное Не живой
Дополнительные параметры: codeFlowType: codeWrite codeFlowLang: Python
Создано: 13.03.2025 14:59

Напишите программу, которая принимает из стандартного потока заранее неизвестное количество строк, в каждой из которых записано одно слово. Для каждого слова выведите (в том порядке, в котором слова идут в стандартном потоке ввода) фразу «Живое» или «Не живое» в зависимости от того, является ли существительное одушевлённым по мнению библиотеки pymorphy3. Фраза должна быть согласована по роду и числу с анализируемым словом.

Если анализируемое слово не является существительным, выведите фразу «Не существительное». Формат ввода

Слова в стандартном потоке ввода, по одному на каждой строке. Формат вывода

Результаты анализа каждого слова. Каждый результат с новой строки. Пример 1 Ввод Вывод

Кот Кошка Стол Окно Пила Люди Столы Пилить

Живой Живая Не живой Не живое Не живая Живые Не живые Не существительное

Пример 2 Ввод Вывод

Конь Улица Фонарь Аптека Тусклый Свет

Живой Не живая Не живой Не живая Не существительное Не живой

Ниже представлен код на языке Python, который решает данную задачу с использованием библиотеки pymorphy3.

import sys
import pymorphy3

def analyze_words():
    morph = pymorphy3.MorphAnalyzer()
    
    for line in sys.stdin:
        word = line.strip()
        parsed_word = morph.parse(word)

        # Проверяем, что слово правильно распознано
        if parsed_word:
            best_parse = parsed_word[0]
            
            # Проверяем, является ли слово существительным
            if 'NOUN' in best_parse.tag:
                # Определяем одушевленность
                if 'anim' in best_parse.tag:
                    result = "Живой" if best_parse.gender == 'masc' else "Живая"
                else:
                    result = "Не живое" if best_parse.gender == 'neut' else "Не живая"
                # Обрабатываем число
                if best_parse.number == 'plur':
                    result += "е" if 'живое' not in result else "ы"
                print(result)
            else:
                print("Не существительное")
        else:
            print("Не существительное")

if __name__ == "__main__":
    analyze_words()

Описание

  1. Программа использует стандартный ввод, чтобы считывать слова построчно.
  2. Для каждого слова с помощью библиотеки pymorphy3 происходит разбор слова и получение его морфологических характеристик.
  3. Если слово является существительным, программа проверяет, является ли оно одушевленным или неодушевленным, и выводит соответствующий результат с учетом рода и числа.
  4. Если слово не является существительным, программа выводит "Не существительное".

Установка pymorphy3

Для работы программы необходимо установить библиотеку pymorphy3, если она еще не установлена. Это можно сделать командой:

pip install pymorphy3

Запуск программы

Программу можно запустить и передать слова через стандартный ввод, записывая каждое слово на новой строке. Например:

python your_script.py

После этого введите слова, а программа выведет соответствующие результаты анализа.