Задать вопрос
@IlyaAkt

Как сделать чтобы бот отвечал на сообщение с двумя условиями?

Я хочу сделать так чтобы бот отвечал на сообщение, например:
-Бот, насколько процентов Илья красивый
- Илья красивый на 100%.
Как мне вторую часть вопроса "Илья красивый" вынести в ответ бота. Чтобы я не пробовал он пишет или "Бот, насколько процентов Илья красивый на 100%" или просто игнорит.

import vk_api
import random
import requests
import urllib3


from vk_api import VkUpload
from vk_api.utils import get_random_id
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from infobot import opozd
from infobot import anek


		def write_messages(sender, message):
			authorize.method('messages.send', {'chat_id': sender, 'message': message, 'random_id': get_random_id(), 'attachment': ','.join(attachments)})
		def write_messages_stick(sender, number,):
			authorize.method('messages.send', {'chat_id': sender, 'sticker_id': number, 'random_id': get_random_id()})



		token = 'Токен'
		image = "r.jpg" 
		authorize = vk_api.VkApi(token = token)
		longpoll = VkBotLongPoll(authorize, group_id=204284522)
		upload = VkUpload(authorize)
		for event in longpoll.listen():
			if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat and event.message.get('text') !="":
				reseived_message = event.message.get('text')
				textper = event.message.get('text')
				sender = event.chat_id
				attachments = []
				upload_image = upload.photo_messages(photos=image)[0]
				stickers = ['162', '53826', '48', '4342', '9060', '10256', '10676', '2467', '2164', '9332', '53832', '53823']
				t = ['1', '2']
				if reseived_message == "Привет" or reseived_message == "привет" or reseived_message == "Бот привет" or reseived_message == "Бот, привет":
					write_messages(sender, "Привет!")
				elif reseived_message == "Пока":
					write_messages(sender, "До свидания")
				elif reseived_message == ("Бот насколько процентов"	 + textper):
					write_messages(sender, (textper + " " + str(random.randint(0,200)) + "%"))
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@alegzz
import re
pattern = re.compile(r'Бот насколько процентов (\w+) красивый')
<...>
elif pattern.search(reseived_message):
    write_messages(sender,  pattern.search(reseived_message).group(1) + " красивый на " + str(random.randint(0,200)) + "%")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
RINCODE
@RINCODE
Я новичок, еще учусь
Смотря что тебе именно нужно, можно использовать вместо elif, if, тогда у тебя будет срабатывать 2 условия
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы