当前位置: 首页 > 面试题库 >

Python-字符串文字前的'b'字符做什么?

扶高歌
2023-03-14
问题内容

显然,以下是有效的语法

my_string = b'The string'

我想知道:

  1. 这是什么b字在前面的字符串是什么意思?
  2. 使用它有什么作用?
  3. 在什么情况下可以使用它?
    我在SO上找到了一个相关的问题,但是这个问题是关于PHP的,它指出b用来表示字符串是二进制的,而不是Unicode,Unicode是要从PHP <6版本兼容的代码,当迁移到PHP 6时。我认为这不适用于Python。

我确实在Python站点上找到了有关使用相同语法的字符将字符串指定为Unicode的文档u。不幸的是,它在该文档的任何地方都没有提到b字符。

而且,只是出于好奇,有没有比多符号b和u是做其他事情?


问题答案:

引用Python 2.x文档:

在Python 2中,前缀'b''B'被忽略;它表示文字应该在Python 3中变成字节文字(例如,当代码自动用2to3转换时)。前缀“ u”“ b”后可以带有前缀“ r”

在Python 3中的文件状态:

字节字面量始终以“ b”“ B”为前缀;它们产生字节类型的实例而不是str类型。它们只能包含ASCII字符;数值等于或大于128的字节必须用转义符表示。



 类似资料:
  • 问题内容: 我是python编程的新手,我有点困惑。我尝试从字符串中获取字节以进行哈希和加密,但是我得到了 字符串前面的b字符,如以下示例所示。有什么办法可以避免这种情况吗?有人可以提供解决方案吗?对不起这个愚蠢的问题 输出: 问题答案: 解码是多余的 首先,您对这种情况有误解,这是因为对所发生的事情有误解。 您会得到,因为您已对其进行编码,现在它是一个字节对象。 修正: 您可以先打印字符串 编码

  • 问题内容: 将字符串创建为inary 有什么后果? 我在文档中找不到关于此的任何提示。刚刚在查看language_scanner时发现了这种好奇心。 问题答案: 这是永不发布的PHP版本6的前向兼容性令牌,该版本应具有本机unicode支持。 在PHP6中,字符串默认为unicode,函数在其上的unicode字符级别上运行。“ b”表示“二进制字符串”,即非unicode字符串,在其上功能以字节

  • 问题内容: 在问这个问题时,我意识到我对原始字符串不了解很多。对于自称是Django培训师的人来说,这很糟糕。 我知道什么是编码,而且我知道自从得到以来,它独自做什么。 但是究竟是什么呢?它产生什么样的字符串? 最重要的是,该怎么办? 最后,有没有可靠的方法可以从Unicode字符串返回到简单的原始字符串? 嗯,顺便说一句,如果你的系统和文本编辑器字符集设置为UTF-8,u’‘实际上有什么作用吗?

  • 对性能是否有影响? 不同Java版本的行为是否有差异?

  • 当我有一个字符串需要将一个字符连接到它的结尾时,我应该更喜欢超过是否有任何性能原因? 我知道数组字符串连接和字符串生成器,我并不是在询问一般情况下如何连接字符串的建议。 我也知道有些人会有冲动向我解释过早的优化,而且一般来说我不应该为这些小事情费心,请不要... 我之所以问这个问题,是因为从编码风格的偏好来看,我更倾向于使用后一个,但我觉得第一个应该表现得稍微好一点,因为知道所附加的只是一个字符,

  • 主要内容:处理字符串中的引号的,字符串的换行,Python长字符串,Python原始字符串若干个字符的集合就是一个 字符串(String)。 Python 中的字符串必须由双引号 或者单引号 包围,具体格式为: "字符串内容" '字符串内容' 字符串的内容可以包含字母、标点、特殊符号、中文、日文等全世界的所有文字。 下面都是合法的字符串: "123789" "123abc" "https://www.xnip.cn/python/" "小牛知识库成立8年了" Python 字符串中的双