You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何b'\x30'输出显示为0?如何让字节串仅显示单个反斜杠?

解决Bytes对象输出单个反斜杠转义序列的问题

当你执行print(b'\x30')时,Python会把这个对应ASCII码'0'的字节直接显示为字符0——这是因为Python默认会将可打印的ASCII字节转换成对应字符输出,而非保留十六进制转义格式。

用br"\x30"创建的是原始字节串,里面的\x30是四个独立字节:\、x、3、0,所以print(s)时会显示b'\\x30'——这里的两个反斜杠是Python字符串表示里的转义规则,用来表示一个字面量反斜杠。

要实现输出单个反斜杠的十六进制转义格式,你可以手动将每个字节转换成\xXX格式后再拼接:

def format_bytes_to_escaped(b):
    # 遍历每个字节,格式化为两位十六进制的转义序列
    escaped_parts = [f'\\x{byte:02x}' for byte in b]
    # 拼接成完整的bytes表示形式
    return f"b'{''.join(escaped_parts)}'"

# 测试示例
test_bytes = b'\x30\x31\x41'
print(format_bytes_to_escaped(test_bytes))  # 输出 b'\x30\x31\x41'

这个函数会把每个字节统一转换成\x开头的两位十六进制转义字符串,最终组合成b'\xXX\xXX'的格式,打印出来就是单个反斜杠的效果。

内容的提问来源于stack exchange,提问作者Максим Крайнов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:20:57