Встроенная функция Python - int()
Почему при вводе встроенной функции int('FACE', 16) с такими параметрами нам выдает ответ:
64206
Спасибо!
Ответы (2 шт):
'FACE' - это строка из 4 букв, F, A, C, E.
Из-за того, что вы в качестве второго параметра вызова функции int() указали число 16, Python сначала проверяет, все ли символы в первом параметре являются шестнадцатеричными: либо «обычными» цифрами (0-9), или буквами из диапазона A-F (прописными или строчными — они представляют собой остальные шестнадцатеричные цифры 10-15).
В вашем случае все в порядке, буквы вашей строки представляют собой соответственно цифры 15, 10, 12 и 14, а Python вам выдает ответ в десятичной системе:
15 * 163 + 10 * 162 + 12 * 161 + 14 * 160 = 64206.
В дополнение небольшой код, который делает вычисления, указанные в другом ответе (цифр в 16-ричном числе тут не предполагается, только буквы):
print(sum(16**i * (ord(ch) - ord('A') + 10) for i, ch in enumerate(reversed('FACE'))))
# 64206
16**i- это как-раз 160, 161, 162...ord(ch) - ord('A') + 10- перевод 16-ричных буквABCDEFв числа 10, 11, 12...reversed- потому что вычислять проще от младших разрядов к старшим, там сразу понятно, что степень начинается с 0, её не нужно вычислять