Ошибка в программе бота в вк
import vk_api
import time
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
vk_session = vk_api.VkApi(token ='я убрал')
vk = vk_session.get_api()
longpoll = VkBotLongPoll(vk_session, я убрал)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if event.object.text.lower() == 'калькулятор':
vk.messages.send(peer_id=event.object.peer_id, message='Включаю калькулятор', random_id=0)
vk.messages.send(peer_id=event.object.peer_id, message='Введите первое число', random_id=0)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
a = event.object.text.lower()
vk.messages.send(peer_id=event.object.peer_id, message='Введите второе число',random_id=0)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
b = event.object.text.lower()
vk.messages.send(peer_id=event.object.peer_id, message='Что делtv(+,-)',random_id=0)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
wh = event.object.text.lower()
if wh == "+":
s = int(a) + int(b)
vk.messages.send(peer_id=event.object.peer_id, message='Сумма равна ' str(s),random_id=0)
elif wh == "-":
s = int(a) - int(b)
vk.messages.send(peer_id=event.object.peer_id, message='Разность равна ' + str(s), random_id=0)
else:
vk.messages.send(peer_id=event.object.peer_id,message='Выбрананеверная операция!!',random_id=0)
Первый раз программа запустилась идеально. Я начал набирать "калькулятор" второй раз, и мне выдало "Выбрана неверная операция!!". Что делать? Как избавится от цикла и чтобы все работало. Заранее спасибо
Ответы (1 шт):
Автор решения: Novice
→ Ссылка
Нельзя делать такое большое кол-во циклов, тк если один игрок зайдет в один блок, то всех остальных также туда закинет
for event longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
text = event.object.text.lower()
if "реши" in text:
text = text.split("реши")[-1]
try:
answer = eval(text)
vk.messages.send(peer_id=event.object.peer_id, message=f"Ответ: {answer}",random_id=0)
except:
vk.messages.send(peer_id=event.object.peer_id, message="Ошибка",random_id=0)
Для того, чтобы калькулятор сработал, игроку нужно будет ввести команду: Реши [пример] К примеру: Реши 5+5