-3

我失败的简单问题。有一个字符串,我需要找到它的长度的十六进制编码值。以下是正确的(并且有效):

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 的字符串的长度,它会是什么样子?

4

2 回答 2

4

有一个内置函数可以将数字转换为十六进制,它被称为hex(). 这是您的两个字符串作为示例:

>>> sample="MyTest1234"
>>> print hex(len(sample))
0xa
>>> sample="MyTest1234"*26
>>> print hex(len(sample))
0x104

如果您不想要0x前缀,则需要将其切掉:

>>> print hex(len(sample))[2:]
a
于 2013-05-31T12:23:20.680 回答
3

怎么样:

sample="MyTest1234"
print format(len(sample), 'x')
# a

sample="MyTest1234"*26
print format(len(sample), 'x')
# 104
于 2013-05-31T12:21:23.780 回答