在 Python 中将字符串打印为十六进制字节

在 Python 中将字符串打印为十六进制字节

Print a string as hexadecimal bytes in Python

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

  1. 使用生成器表达式迭代字符串。
  2. 将每个字符的 Unicode 代码点传递给hex()函数。
  3. 使用该str.join()方法将生成器对象连接成一个字符串。
主程序
my_str = 'apple' result = ':'.join(hex(ord(char)) for char in my_str) print(result) # 👉️ 0x61:0x70:0x70:0x6c:0x65 result = ':'.join(f'{ord(char):x}' for char in my_str) print(result) # 👉️ 61:70:70:6c:65

我们使用生成器表达式来迭代字符串。

生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们将当前字符传递给ord()函数以获取相应的 Unicode 代码点。

主程序
print(ord('a')) # 👉️ 97 print(ord('b')) # 👉️ 98

ord函数接受一个表示 1 个 Unicode 字符的字符串,并返回一个表示给定字符的 Unicode 代码点的整数

hex函数将整数转换为前缀为 的小写十六进制字符串0x

主程序
my_str = 'apple' result = ':'.join(hex(ord(char)) for char in my_str) print(result) # 👉️ 0x61:0x70:0x70:0x6c:0x65

如果您不需要为十六进制字符串添加前缀,请0x使用格式化字符串文字。

主程序
my_str = 'apple' result = ':'.join(f'{ord(char):x}' for char in my_str) print(result) # 👉️ 61:70:70:6c:65

格式化字符串文字 (f-strings) 让我们通过在字符串前加上f.

确保将表达式括在大括号 –{expression}中。

x冒号后面的字符代表十六进制格式它以 16 进制输出冒号前的数字,9 以上的数字使用小写字母。


您可以在文档的
这一部分阅读有关格式规范迷你语言的更多信息

上面的示例使用冒号分隔符连接十六进制字符串,但您可以使用任何其他分隔符,例如空格。

主程序
my_str = 'apple' result = ' '.join(hex(ord(char)) for char in my_str) print(result) # 👉️ 0x61 0x70 0x70 0x6c 0x65 result = ' '.join(f'{ord(char):x}' for char in my_str) print(result) # 👉️ 61 70 70 6c 65

str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。

调用该方法的字符串用作元素之间的分隔符。

如果您不需要分隔符而只想将可迭代的元素连接到一个字符串中,请在join()空字符串上调用该方法。

主程序
my_str = 'apple' result = ''.join(hex(ord(char)) for char in my_str) print(result) # 👉️ 0x610x700x700x6c0x65 result = ''.join(f'{ord(char):x}' for char in my_str) print(result) # 👉️ 6170706c65