Дмитрий Дмитриев
Просветленный
(40478)
2 месяца назад
Для создания телеграм бота на Python, который будет сохранять ответы пользователя в переменные и выводить их в конце, вам понадобится использовать библиотеку для работы с Telegram API (например, python-telegram-bot). Вот примерный шаг за шагом подход к созданию такого бота:
Шаг 1: Установка библиотеки python-telegram-bot
Установите библиотеку python-telegram-bot, если её у вас ещё нет:
bash
Копировать код
pip install python-telegram-bot
Шаг 2: Написание кода для бота
Создайте скрипт Python, который будет работать как телеграм бот. Вот пример кода:
python
Копировать код
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
# Глобальные переменные для хранения ответов
user_data = {}
# Функция-обработчик команды /start
def start(update, context):
update.message.reply_text("Привет! Давай начнем. Как вас зовут?")
# Очищаем предыдущие данные
user_data.clear()
# Функция-обработчик текстовых сообщений
def text_message(update, context):
text = update.message.text
chat_id = update.message.chat_id
if 'name' not in user_data:
user_data['name'] = text
update.message.reply_text("Отлично! Теперь сколько вам лет?")
elif 'age' not in user_data:
user_data['age'] = text
update.message.reply_text("Отлично! Что-то еще хотите добавить?")
else:
# Добавьте здесь обработку других вопросов и запись в переменные
update.message.reply_text("Спасибо за ответы! Вот что я запомнил:\n"
f"Имя: {user_data['name']}\n"
f"Возраст: {user_data['age']}")
# Функция-обработчик ошибок
def error(update, context):
print(f"Ошибка: {context.error}")
def main():
# Токен вашего бота
token = 'YOUR_BOT_TOKEN'
# Создаем Updater и передаем ему токен вашего бота
updater = Updater(token, use_context=True)
# Получаем диспетчер для зарегистрированных обработчиков
dp = updater.dispatcher
# Регистрируем обработчики команд
dp.add_handler(CommandHandler("start", start))
# Регистрируем обработчик текстовых сообщений
dp.add_handler(MessageHandler(Filters.text & ~Filters.command, text_message))
# Регистрируем обработчик ошибок
dp.add_error_handler(error)
# Запускаем бота
updater.start_polling()
# Останавливаем бота при нажатии Ctrl+C
updater.idle()
if __name__ == '__main__':
main()
Как это работает:
Глобальные переменные: user_data используется для хранения ответов пользователя (в данном случае, имя и возраст).
Функции-обработчики:
start: обрабатывает команду /start и начинает взаимодействие с пользователем, запрашивая имя.
text_message: обрабатывает текстовые сообщения от пользователя и записывает ответы в переменные user_data. После получения всех данных выводит их пользователю.
Запуск бота: функция main() запускает бота, используя токен вашего бота Telegram (YOUR_BOT_TOKEN). Убедитесь, что замените YOUR_BOT_TOKEN на реальный токен вашего бота.
Это пример базового функционала. Вы можете добавить больше функционала, например, обработку различных типов данных или команд.
Ваш бот должен быть зарегистрирован и настроен на платформе Telegram. Получить токен можно через BotFather.
Обратите внимание на безопасность и конфиденциальность данных, передаваемых вашим ботом.
Написать хочу именно телеграм бота. Расскажите пожалуйста, как сделать записи в переменные.
Будет вот так:
Как вас зовут? - ответ записывается в переменную "name"
Сколько вам лет? - ответ записывается в переменную "age"
И т. д.
В конце бот отправит сообщение, в котором будут записанные ответы