简单问题我失败了。有一个字符串,我需要找到长度的十六进制编码值。以下是正确的(和工作):
sample="MyTest1234"
print repr(chr(len(sample)))
输出是:
'\n'
然而,当然,只要我的“样本”是> 255:
sample="MyTest1234"*26
print repr(chr(len(sample)))
它失败了:
ValueError: chr() arg not in range(256)
如果我想计算大于256的字符串的长度,它会是什么样子?
答案 0 :(得分:4)
有一个内置函数可以将数字转换为十六进制,它被称为hex()
。这是你的两个字符串作为例子:
>>> sample="MyTest1234"
>>> print hex(len(sample))
0xa
>>> sample="MyTest1234"*26
>>> print hex(len(sample))
0x104
如果您不想要0x
前缀,则需要将其分开:
>>> print hex(len(sample))[2:]
a
答案 1 :(得分:3)
怎么样:
sample="MyTest1234"
print format(len(sample), 'x')
# a
sample="MyTest1234"*26
print format(len(sample), 'x')
# 104