您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

实际上并没有任何“原始字符串 ”。有原始的字符串文字,它们恰好是'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对象当然会占用更多的存储空间(很短的字符串,很明显,;-差别很小)。

python 2022/1/1 18:22:56 有429人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶