telegram bot помощь с вводом
На что заменить while и print, что бы все работало в телеграмме Бот для статистики рулетки, записываю выпавшее число с клавиатуры и каждый раз инфа обновляется и выводится статистика
import telebot
from telebot import types
bot = telebot.TeleBot('...')
@bot.message_handler()
def info(message):
markup = types.InlineKeyboardMarkup()
btn1 = types.InlineKeyboardButton('Начать', callback_data='start')
btn2 = types.InlineKeyboardButton('Сброс', callback_data='reset')
markup.row(btn1, btn2)
bot.reply_to(message, 'Нажмите, что бы продолжить', reply_markup=markup)
@bot.callback_query_handler(func=lambda callback: True)
def callback_message(callback):
if callback.data == 'start':
result = ['00', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18',
'19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36']
red = [1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36]
black = [2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35]
even = [i for i in range(0, 38, 2)]
odd = [i for i in range(-1, 37, 2)]
first_sec = [i for i in range(1, 13)]
second_sec = [i for i in range(13, 25)]
third_sec = [i for i in range(25, 37)]
one_1_18 = [i for i in range(1, 19)]
two_19_36 = [i for i in range(19, 37)]
stat = []
all_num = {i : 0 for i in range(1, 37)}
red_stat = black_stat = even_stat = odd_stat = first_sec_stat = second_sec_stat = third_sec_stat = one_1_18_stat = two_19_36_stat = one_stat = two_stat = 0
while True:
number = input('ВВЕДИТЕ ЧИСЛО ИЛИ НАПИШИТЕ "СБРОС": ')
if number in result:
if number == '00':
stat.append("00")
else:
stat.append(int(number))
if int(number) in red:
red_stat += 1
elif int(number) in black:
black_stat += 1
if int(number) in even:
even_stat += 1
elif int(number) in odd:
odd_stat += 1
if int(number) in first_sec:
first_sec_stat += 1
elif int(number) in second_sec:
second_sec_stat += 1
elif int(number) in third_sec:
third_sec_stat += 1
if int(number) in one_1_18:
one_1_18_stat += 1
elif int(number) in two_19_36:
two_19_36_stat += 1
if number == '0':
one_stat += 1
if number == '00':
two_stat += 1
for i in all_num.keys():
if int(number) == i:
all_num[i] += 1
elif callback.data == 'reset':
stat.clear()
red_stat = black_stat = even_stat = odd_stat = first_sec_stat = second_sec_stat = third_sec_stat = one_1_18_stat = two_19_36_stat = one_stat = two_stat = 0
all_num = {i : 0 for i in range(1, 37)}
print(f'{stat}\nКрасное = {red_stat}, Чёрное = {black_stat}\nЧётное = {even_stat}. Нечётное = {odd_stat}\n'
f'1-12 = {first_sec_stat}, 13-24 = {second_sec_stat}, 25-36 = {third_sec_stat}\n'
f'1-18 = {one_1_18_stat}, 19-36 = {two_19_36_stat},\n'
f'0 = {one_stat}, 00 = {two_stat}')
c = 0
for i, j in all_num.items():
if c == 4:
print()
c = 0
print(f"{i}:{j},", end=" ")
c += 1
print()
bot.polling(none_stop=True)