确认Python中b''的使用逻辑及其默认编码的技术问询
问题解答
你的理解修正与确认
首先纠正一个小误区:b''并不是把字符串转换为字节,而是直接定义字节字面量——它本身就是字节类型,不是从字符串转来的。不过你说的核心结论是对的:
- 用
b''时,里面只能写ASCII范围内的字符(或者字节转义序列),不需要额外指定编码; - 带变量插值的字符串(比如f-string)没法直接放到
b''里,必须先构造出完整的字符串,再用bytes()方法转成字节,这时候必须指定编码(比如utf-8)。
b''的默认编码
字节字面量b''是按照ASCII编码来处理里面的字符的。比如b'hello'等价于bytes('hello', encoding='ascii'),如果你在b''里写了超出ASCII范围的字符(比如中文),Python会直接报错,必须用\xXX这种字节转义序列来表示非ASCII字节。
内容的提问来源于stack exchange,提问作者haruhi
相关产品推荐
相关产品推荐

