Есть код бота который загадывает число от 1 до 100, хочу сделать код без использования глобальной переменной, перерыл куча материалов но выдаёт ошибку которую я никак не могу побороть с использованием этой самой глобальной рандомной переменной
Код
import random
import telebot
bot = telebot.TeleBot('токен')
@bot.message_handler(commands=['help', 'start'])
def welcome(message):
bot.reply_to(message, 'Поиграем в "Угадай число"?\nЯ загадал число от 1 до 100, сможешь угадать?')
n = random.randint(1, 100)
bot.register_next_step_handler(message, number_guess, n)
def number_guess(message, n):
try:
number = message.text
if not number.isdigit():
bot.send_message(message.chat.id, 'Это не число')
bot.register_next_step_handler(message, number_guess)
return
if int(number) > n:
bot.send_message(message.chat.id, ("Ваше число больше загаданного"))
bot.register_next_step_handler(message, number_guess)
elif int(number) < n:
bot.send_message(message.chat.id, ("Ваше число меньше загаданного"))
bot.register_next_step_handler(message, number_guess)
else:
bot.send_message(message.chat.id, ("Угадал"))
except ValueError:
bot.send_message(message, ("это не число"))
bot.polling(none_stop=True, interval=0)
Сам код ошибки
Путь\venv\Scripts\python.exe Путь/main.py
Traceback (most recent call last):
File "Путь\main.py", line 35, in
bot.polling(none_stop=True, interval=0)
File "Путь\venv\lib\site-packages\telebot\__init__.py", line 658, in polling
self.__threaded_polling(non_stop, interval, timeout, long_polling_timeout, allowed_updates)
File "Путь\venv\lib\site-packages\telebot\__init__.py", line 720, in __threaded_polling
raise e
File "Путь\venv\lib\site-packages\telebot\__init__.py", line 680, in __threaded_polling
self.worker_pool.raise_exceptions()
File "Путь\venv\lib\site-packages\telebot\util.py", line 135, in raise_exceptions
raise self.exception_info
File "Путь\venv\lib\site-packages\telebot\util.py", line 87, in run
task(*args, **kwargs)
TypeError: number_guess() missing 1 required positional argument: 'n'