что не так с моим кодом? PyTelegramBotAPI
хочу сделать, чтобы когда пользователь писал /random и писал два числа (начало диапазона и конец), бот выдавал ему рандомное число из этого диапазона (я новичок в программировании)
import telebot
import random
from random import randint
from telebot import types
bot = telebot.TeleBot('token')
@bot.message_handler(commands=['start'])
def main(message):
bot.send_message(message.chat.id, 'Привет! Я тестовый бот.')
@bot.message_handler(commands=['random'])
def first_number(message):
send = bot.send_message(message.chat.id, 'Введи первое число')
bot.register_next_step_handler(send, second_number)
def second_number(message):
global numbers
numbers = []
first_number = message.text
numbers.append(first_number)
send = bot.send_message(message.chat.id, 'Введи второе число')
bot.register_next_step_handler(send, end)
def end(message):
second_number = message.text
numbers.append(second_number)
bot.send_message(message.chat.id, 'Случайное число: ' + str(random.randint(first_number, second_number)))
bot.polling(none_stop=True)
Ответы (1 шт):
Автор решения: Solt
→ Ссылка
Я вижу следующие ошибки:
Первая - в numbers надо не текст класть, а числа
Вторая - в рэндом передавать не локальные переменные из других функций, а глобальную numbers, ведь её для этого и сделали.
import telebot
import random
from random import randint
from telebot import types
bot = telebot.TeleBot('token')
@bot.message_handler(commands=['start'])
def main(message):
bot.send_message(message.chat.id, 'Привет! Я тестовый бот.')
@bot.message_handler(commands=['random'])
def first_number(message):
send = bot.send_message(message.chat.id, 'Введи первое число')
bot.register_next_step_handler(send, second_number)
def second_number(message):
global numbers
numbers = []
first_number = int(message.text)
numbers.append(first_number)
send = bot.send_message(message.chat.id, 'Введи второе число')
bot.register_next_step_handler(send, end)
def end(message):
global numbers
second_number = int(message.text)
numbers.append(second_number)
bot.send_message(message.chat.id, 'Случайное число: ' + str(random.randint(numbers[0], numbers[1])))
bot.polling(none_stop=True)