🤖 Урок 4: Реакції
📋 Що ми навчимось:
- Обробляти повідомлення користувача
- Створювати прості та розширені реакції на слова
- Використовувати списки для перевірки повних співпадінь
- Очищати текст від зайвих символів через
.lower() і .strip()
🔹 Крок 1: Спрощене завдання
Бот реагує на прості строки:
from bendbandbot import SimpleBot
bot = SimpleBot('ТВІЙ_ТОКЕН')
def handle_message(update):
text = update.message.text
if text == 'привіт':
bot.send(update, 'Привіт! 🙂')
elif text == 'як справи':
bot.send(update, 'Добре, а ти як? 😄')
else:
bot.send(update, 'Не зрозумів 😕')
bot.on_message(handle_message)
bot.start()
💡 Просте порівняння через `==` спрацьовує лише на точні співпадіння.
🔹 Крок 2: Розширене завдання зі списками
Бот реагує на фрази зі списків без методів:
from bendbandbot import SimpleBot
bot = SimpleBot('ТВІЙ_ТОКЕН')
hello_words = ['привіт', 'хелоу', 'добрий день']
how_are_you = ['як справи', 'що робиш', 'що нового']
def handle_message(update):
text = update.message.text
if text in hello_words:
bot.send(update, 'Привіт! 🙂')
elif text in how_are_you:
bot.send(update, 'Добре, а ти як? 😄')
else:
bot.send(update, 'Не зрозумів 😕')
bot.on_message(handle_message)
bot.start()
💡 Реакція спрацьовує тільки при точному співпадінні елемента списку.
🔹 Крок 3: Очищення повідомлень і регістр
Бот видаляє зайві знаки на початку/кінці та приводить текст до нижнього регістру:
from bendbandbot import SimpleBot
bot = SimpleBot('ТВІЙ_ТОКЕН')
hello_words = ['привіт', 'хелоу', 'добрий день']
how_are_you = ['як справи', 'що робиш', 'що нового']
def handle_message(update):
text = update.message.text.lower().strip(', .!?')
if text in hello_words:
bot.send(update, 'Привіт! 🙂')
elif text in how_are_you:
bot.send(update, 'Добре, а ти як? 😄')
else:
bot.send(update, 'Не зрозумів 😕')
bot.on_message(handle_message)
bot.start()
💡 Тепер повідомлення 'Привіт!', 'як справи?' і подібні сприймаються як точні співпадіння.
💪 Завдання на урок
- Додай нові привітання та фрази у списки
hello_words і how_are_you
- Спробуй писати повідомлення з різними пробілами та знаками