codeFlowType:
codeWrite
codeFlowLang:
Python
Напишите программу, которая принимает из стандартного потока заранее неизвестное количество строк, в каждой из которых записано одно слово. Для каждого слова выведите (в том порядке, в котором слова идут в стандартном потоке ввода) фразу «Живое» или «Не живое» в зависимости от того, является ли существительное одушевлённым по мнению библиотеки 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()
pymorphy3
происходит разбор слова и получение его морфологических характеристик.pymorphy3
Для работы программы необходимо установить библиотеку pymorphy3
, если она еще не установлена. Это можно сделать командой:
pip install pymorphy3
Программу можно запустить и передать слова через стандартный ввод, записывая каждое слово на новой строке. Например:
python your_script.py
После этого введите слова, а программа выведет соответствующие результаты анализа.