我正在创建代码以允许用户自己选择随机数选择范围。a我尝试在b命令函数本身中创建变量并使用 分隔它们split(',')。它仍然给出一个错误。
@bot.message_handler(commands=['setrange'])
def set_range(message):
# global random_num
# global a
# global b
#user_guess = message.text
send = bot.send_message(message.chat.id, 'Введите от какого числа до какого будет
генерироваться число в формате [от, до]:')
bot.register_next_step_handler(send, set_range_global)
def set_range_global(message):
#global random_num
#global a, b
user_guess = int(message.text)
a, b = map(float(int, user_guess.split(', ')))
bot.reply_to(message, a,b)
user_guess = message.text
arr = list(map(int, user_guess.split(',')))
if int(user_guess) != arr[0] and int(user_guess) != arr[1]:
default_a = a
default_b = b
bot.send_message(message.chat.id, f'Диапазон генерирования числа успешно
изменен!\nНовый диапазон: {a, b}')
default_a这些是输入命令时的默认default_b值的变量ab/start
错误:
"C:\Users\Danil\AppData\Local\Programs\Python\Python312\Lib\site-packages\telebot\util.py", line 90, in run
task(*args, **kwargs)
File "C:\Users\Danil\Desktop\Tg_game\main.py", line 66, in
set_range_global
a, b = map(float(int, user_guess.split(', ')))
^^^^^^^^^^^^^^^^
AttributeError: 'int' object has no attribute 'split'
通过 try catch 的第一个响应是合适的,但那里可能会出现其他问题,这并不总是表明用户输入了两个以上的数字。
我认为值得在尝试检查行中是否存在逗号进行测试: