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

Python-“u”和“r”字符串标志具体做什么,什么是原始字符串文字?

宋高扬
2023-03-14
问题内容

在问这个问题时,我意识到我对原始字符串不了解很多。对于自称是Django培训师的人来说,这很糟糕。

我知道什么是编码,而且我知道u''自从得到Unicode以来,它独自做什么。

  • 但是究竟是r''什么呢?它产生什么样的字符串?

  • 最重要的是,ur''该怎么办?

  • 最后,有没有可靠的方法可以从Unicode字符串返回到简单的原始字符串?

  • 嗯,顺便说一句,如果你的系统和文本编辑器字符集设置为UTF-8,u’‘实际上有什么作用吗?


问题答案:

实际上并没有任何“原始字符串 ”。有原始的字符串文字,它们恰好是'r'在引号前用a标记的字符串文字。

“原始字符串文字”与字符串文字的语法略有不同,其中\反斜杠“”代表“只是反斜杠”(除非在引号之前会终止该文字),否则“转义序列”代表换行符,制表符,退格键,换页等。在普通的字符串文字中,每个反斜杠必须加倍,以避免被当作转义序列的开始。

之所以存在此语法变体,主要是因为正则表达式模式的语法带有反斜杠(但不会在结尾处加重),但是上面的“ except”子句无关紧要,并且当你避免将它们每个加倍时看起来会更好一些- - 就这样。它也很流行来表示本机Windows文件路径(使用反斜杠代替其他平台上的常规斜杠),但这很少需要(因为普通斜杠在Windows上也可以正常工作)并且不完美(由于“ except”子句)以上)。

r’…’是一个字节串(在Python 2 *),ur’…’是Unicode字符串(再次,在Python 2 *),以及任何其他3种引用的也产生完全相同的类型字符串(因此,例如r'...'r'''...'''r"..."r"""..."""都是字节字符串,依此类推)。

不确定你“ 返回 ”的意思-本质上没有前后方向,因为没有原始字符串类型,它只是一种表示完全正常的字符串对象,字节或Unicode的替代语法。

是的,在Python 2 *u'...' 是当然总是从刚不同'...'-前者是一个unicode字符串,后者是一个字节的字符串。文字表达的编码方式可能是完全正交的问题。

例如,考虑一下(Python 2.6):

>>> sys.getsizeof('ciao')
28
>>> sys.getsizeof(u'ciao')
34

Unicode对象当然会占用更多的存储空间(很短的字符串,很明显,;-差别很小)。



 类似资料:
  • 问题内容: 显然,以下是有效的语法 我想知道: 这是什么b字在前面的字符串是什么意思? 使用它有什么作用? 在什么情况下可以使用它? 我在SO上找到了一个相关的问题,但是这个问题是关于PHP的,它指出b用来表示字符串是二进制的,而不是是要从版本兼容的代码,当迁移到PHP 6时。我认为这不适用于Python。 我确实在Python站点上找到了有关使用相同语法的字符将字符串指定为的文档。不幸的是,它在

  • 其实说到字符串,这个概念没有具体的说法,但是我们根据平时的归纳总结,也能一段,便于大家理解,字符串就是把字符连在一直,串成一串又一串;字符串内可以包含数字、字母、特殊符号等所有内容;在Python中只要对一些内容加上对双引号或一对单引号,就默认为是字符串;(三对单引号或三对双引号可以写多行字符串)。 字符串的关键是str,是string的缩写。 一、什么是字符串? 解释:对于"Holl world

  • 问题内容: 是的,总之,我想知道为什么我在我的键和值前面看到au。 我正在渲染表格。该表格具有用于特定标签的复选框和用于IP地址的一个文本字段。我正在创建一个字典,其键为标签,这些键在list_key中进行了硬编码,并且字典的值取自表单输入(list_value)。字典已创建,但对于某些值,其前面带有u。这是字典的示例输出: 有人可以解释我在做什么错。当我在pyscripter中模拟类似方法时,我

  • 问题内容: 我正在使用一个返回字节字符串的库,我需要将其转换为字符串。 尽管我不确定有什么区别-如果有的话。 问题答案: 假设使用Python 3(在Python 2中,这种区别的定义不太明确)-字符串是字符序列,即unicode码点;这些是一个抽象概念,不能直接存储在磁盘上。毫无疑问,字节字符串是字节的序列- 可以 存储在磁盘上的东西。它们之间的映射是一种 编码 -其中有很多(并且无限可能)-并

  • 问题内容: 我已经看到了几种用Python编写文档字符串的不同样式,是否有正式的或“同意的”样式? 问题答案: 格式 可以按照其他文章所示的几种格式编写Python文档字符串。但是,未提到默认的Sphinx文档字符串格式,该格式基于。你可以在此博客文章中获得有关主要格式的一些信息。 请注意,reST是PEP 287推荐的 以下是文档字符串的主要使用格式。 -Epytext 从历史上看,像Javad

  • 问题内容: Python具有内置函数,实际上等效于: 适用于所有类型的参数(字符串除外)。它适用于数字和列表,例如: 为什么特地省去了弦乐? 我似乎还记得在Python列表中进行讨论的原因,因此可以使用一个解释或指向该解释的线程的链接。 编辑 :我知道标准方法是这样做。我的问题是为什么禁止对字符串使用sum的选项,而列表却没有禁止。 编辑2 :尽管我认为给出所有好的答案都 不需要这样做 ,但问题是