[Python] Функционал бота

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
Здравствуйте всем.
Хотел бы задать такой вопрос, по нерабочему коду, с огромным желанием что бы вы помогли починить.
В целом задача такова:
Создать бота, сделать мат.примеры и вывести количество вопросов, правильные и неправильные вопросы, проблема у меня как раз с этим, количество правильных и неправильных при любом варианте кода =0, нужна ваша помощь)
Вот код:

Код:
import telebot
import os
from random import *
from decimal import Decimal

myBot = telebot.TeleBot('1418080647:AAGvspahgeKDFgSSA5nCEw9j73NCzmEsNyM')

WrongAnswers = 0
CorrectAnswers = 0

@myBot.message_handler(commands=['start'])
def start(message):
    list_1 = [' + ', ' - ', ' / ', ' * ']
    list_2 = [randint(1, 30) for i in range(randint(1, 20))]
    a = (str(choice(list_2)))
    b = choice(list_1)
    c = (str(choice(list_2)))
    d = eval(a + b + c)
    print('d', d, type(d))
    msg = myBot.send_message(message.chat.id, '{}'.format(a + b + c + ' = ?'))
    myBot.register_next_step_handler(msg, start_2, d)


def start_2(message, d):
    WrongAnswers = 0
    CorrectAnswers = 0
    if message.text.isdigit():
        if float(message.text) == float(d):
            myBot.send_message(message.chat.id, 'Верно', CorrectAnswers +1)
            start(message)
        else:
            myBot.send_message(message.chat.id, 'А вот и нет', WrongAnswers +1)
            start(message)
    elif message.text == '/stopgame':
        myBot.send_message(message.chat.id, f'''
        Количество правильных ответов = {CorrectAnswers} \n Количество неправильных ответов = {WrongAnswers}''')
    else:
        myBot.send_message(message.chat.id, 'а?')


myBot.polling()
 

VolodinAS

Новичок
Пользователь
Дек 3, 2020
35
0
6
31
Россия, Тольятти
Python:
myBot.send_message(message.chat.id, 'Верно', CorrectAnswers +1)
Немного не понятно, почему вы счетчик присваиваете внутри функции send_message()? Почему бы не сделать присвоение после отправки сообщения?
Python:
myBot.send_message(message.chat.id, 'Верно')
CorrectAnswers +=1

А если хотите, чтобы отправлялось сразу, тогда надо так:
Python:
CorrectAnswers +=1
myBot.send_message(message.chat.id, 'Верно. Количество верных ответов: ' + str(CorrectAnswers))

тоже самое и для неверных ответов.
 

Форум IT Специалистов