Встроенная функция 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, её не нужно вычислять