我有这个字符串:Hello, World!
,我想用Python把它打印成'48:65:6c:6c:6f:2c:20:57:6f:72:6c:64:21‘。
hex()
仅适用于整数。
怎么做呢?
发布于 2012-08-31 19:55:53
您可以将字符串转换为整数生成器。对每个元素应用十六进制格式,并使用分隔符插入:
>>> s = "Hello, World!"
>>> ":".join("{:02x}".format(ord(c)) for c in s)
'48:65:6c:6c:6f:2c:20:57:6f:72:6c:64:21
发布于 2012-08-31 20:00:44
':'.join(x.encode('hex') for x in 'Hello, World!')
发布于 2013-12-22 11:38:13
另一个两行的答案可能更容易阅读,有助于调试字符串中的换行或其他奇怪字符:
对于Python 2.7
for character in string:
print character, character.encode('hex')
对于Python 3.7 (未在3的所有版本上进行测试)
for character in string:
print(character, character.encode('utf-8').hex())
https://stackoverflow.com/questions/12214801
复制相似问题