Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Телеграм Бот на языке Python

Толик Омороков Ученик (184), закрыт 1 месяц назад
Изучаю Python, задали дз, нужно сделать проект, в котором будут использоваться записи в переменные, а потом все записи (переменные) показать в самом конце.
Написать хочу именно телеграм бота. Расскажите пожалуйста, как сделать записи в переменные.
Будет вот так:
Как вас зовут? - ответ записывается в переменную "name"
Сколько вам лет? - ответ записывается в переменную "age"
И т. д.
В конце бот отправит сообщение, в котором будут записанные ответы
Лучший ответ
Дмитрий Дмитриев Просветленный (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.
Обратите внимание на безопасность и конфиденциальность данных, передаваемых вашим ботом.
Остальные ответы
Тайлер Дёрден Мудрец (10233) 2 месяца назад
Пусть ChatGPT думает, мне лень
Толик ОмороковУченик (184) 2 месяца назад
броу, впн перестал работать, поэтому сюда пишу :D
Похожие вопросы