Есть ли способ сделать шестнадцатеричный код целым числом? [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ сделать шестнадцатеричный код целым числом? [дубликат]

Сообщение Anonymous »

Извините, первоначальный вопрос может ввести в заблуждение.
Вот мой код:

Код: Выделить всё

async def supercolor(ctx, hexcode):
await ctx.send(hexcode) #for testing
guild = ctx.guild
newhex = ('0x' + (hexcode))
await ctx.send(newhex) #for testing
await guild.create_role(name=hexcode, color=discord.Color(newhex))
role = discord.utils.get(ctx.guild.roles, name=hexcode)
user = ctx.message.author
await user.add_roles(role)
Я использую вводимые пользователем данные для создания роли с именем и цветом ввода. Из-за этого мне приходится использовать переменную для шестнадцатеричного кода и добавлять 0x (шестнадцатеричный префикс) для discord.py, чтобы распознать его как шестнадцатеричный код.
Когда я запускаю код и используйте команду в Discord, она отправляет начальный шестнадцатеричный код (ffffff) и новый шестнадцатеричный код (0xffffff). Однако при создании роли возвращается ошибка:

Код: Выделить всё

Command raised an exception: TypeError: Expected int parameter, received str instead.
Вот в чем моя проблема. Я не могу преобразовать его в целое число, поскольку в newhex есть буквы. Я думаю, это связано с тем, что код не распознает 0x как часть шестнадцатеричного кода, поскольку префикс только сообщает ему, что данная переменная является шестнадцатеричным кодом, и не позволяет ей выдавать ошибку, когда в шестнадцатеричном коде есть буквы.
Я пробовал заменить строку newhex = ('0x' + (hexcode)), удалив ее и используя color=discord.Color(0x(hexcode), но выдает ошибку недопустимый шестнадцатеричный литерал.
Использование newhex = ('0x'.join(hexcode)) также не работает. та же ошибка, что и в моем исходном коде, с командой .join() происходит что-то странное, что я не совсем понимаю. Например, если hexcode равен ffffff, newhex переменная выглядит как f0xf0xf0xf0xf0xf.

Это происходит и с другими шестнадцатеричными кодами, а не только с ffffff.

Подробнее здесь: https://stackoverflow.com/questions/783 ... an-integer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»