![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/f26/b72/f41/f26b72f41608f79a3bfb387b87075675.png)
В качестве повышения собственного уровня в программировании я решил написать бота в Телеграм, который проводит тестирование по 5-Factor Model of Personality. Простыми словами, это тест, в котором участники отвечают в формате от "Полностью согласен" до "Полностью не согласен" на ~50 вопросов, на подобие "я душа компании" или "я часто беспокоюсь". На выходе, мы получаем результаты от 1 до 100 по пяти факторам - Открытость к опыту, Сознательность, Экстраверсия, Доброжелательность, Невротизм (эмоциональная стабильность).
Интерпретировать результаты можно таким нехитрым способом. Например, мы получаем 70 по экстраверсии - это означает, что, если бы в комнате находились 100 человек, расположенных в порядке возрастания их экстраверсии, то мы стояли бы на 70 месте. То есть, мы были бы более общительны, чем 70% людей в комнате. Надеюсь, что звучит нетрудно.
Думаю, что выбор языка python для написания бота в Телеграм является незамысловатым решением, так как большинство ботов написаны на питоне и обилие библиотек на питоне для работы с API Телеграм сильно упрощает работу и позволяет сконцентрироваться на предмете работы. Библиотеку использовал python-telegram-bot.
Правильность подсчета результатов является основой любого теста. Для данного бота я взял эти данные. Там содержатся более миллиона итогов прохождений данного тестирования другими людьми. Что нам нужно, это: