首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将字符串打印为十六进制字节

将字符串打印为十六进制字节
EN

Stack Overflow用户
提问于 2012-08-31 19:51:46
回答 9查看 442.7K关注 0票数 170

我有这个字符串:Hello, World!,我想用Python把它打印成'48:65:6c:6c:6f:2c:20:57:6f:72:6c:64:21‘。

hex()仅适用于整数。

怎么做呢?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-08-31 19:55:53

您可以将字符串转换为整数生成器。对每个元素应用十六进制格式,并使用分隔符插入:

代码语言:javascript
复制
>>> 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
票数 246
EN

Stack Overflow用户

发布于 2012-08-31 20:00:44

代码语言:javascript
复制
':'.join(x.encode('hex') for x in 'Hello, World!')
票数 159
EN

Stack Overflow用户

发布于 2013-12-22 11:38:13

另一个两行的答案可能更容易阅读,有助于调试字符串中的换行或其他奇怪字符:

对于Python 2.7

代码语言:javascript
复制
for character in string:
    print character, character.encode('hex')

对于Python 3.7 (未在3的所有版本上进行测试)

代码语言:javascript
复制
for character in string:
    print(character, character.encode('utf-8').hex())
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12214801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档