Как сделать проверку на текст в TeleBot?
Создаю РП бота для тг. Для своей практики. Мне надо сделать так , что бы при вводе любого слова из списка actions выводило то же самое действие из списка items. Но при этом делать проверку на каждое из действий не хочется. Можно обойтись циклом for ? Если да то как ? Вот код:
actions = {
'поцеловать',
'обнять',
'чмокнуть',
}
items = {
'поцеловал',
'обнял',
'чмокнул'
}
@bot.message_handler(commands=['start'])
def hello(message):
bot.send_message(message.from_user.id, 'Ну привет')
@bot.message_handler(func=lambda message: message.reply_to_message is not None)
def actionss(message):
for i in actions:
if message.text.lower() == i:
for v in items:
bot.send_message(message.from_user.id, f"{message.from_user.first_name} {v} {message.reply_to_message.from_user.first_name}")
Ответы (1 шт):
Автор решения: gord1402
→ Ссылка
Занесём элементы в словарь и будем вытаскивать их из словаря когда надо:
actions = {
'поцеловать': 'поцеловал',
'обнять': 'обнял',
'чмокнуть': 'чмокнул',
}
@bot.message_handler(commands=['start'])
def hello(message):
bot.send_message(message.from_user.id, 'Ну привет')
@bot.message_handler(func=lambda message: message.reply_to_message is not None)
def actionss(message):
if message.text.lower() in actions.keys():
bot.send_message(message.from_user.id,
f"{message.from_user.first_name} {actions[message.text.lower()]} {message.reply_to_message.from_user.first_name}")