Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“u”之间的差异;“字符串”;及;“字符串”;用Python_Python_Types - Fatal编程技术网

“u”之间的差异;“字符串”;及;“字符串”;用Python

“u”之间的差异;“字符串”;及;“字符串”;用Python,python,types,Python,Types,发件人: 解决方案是将Python的原始字符串表示法用于正则表达式 表达模式;反斜杠不会以任何特殊方式处理 前缀为“r”的字符串文字。所以r“\n”是一个两个字符的字符串 包含“\”和“n”,而“\n”是一个单字符字符串 包含换行符的。通常模式将用Python表示 使用此原始字符串表示法的代码 类型也匹配类型(u“text”)==类型(ur“text”),删除u时也是如此。因此,我要问,这两者有甚么分别?如果没有区别,为什么要使用r?例如: >>> len(ur"tex\t")

发件人:

解决方案是将Python的原始字符串表示法用于正则表达式 表达模式;反斜杠不会以任何特殊方式处理 前缀为“r”的字符串文字。所以r“\n”是一个两个字符的字符串 包含“\”和“n”,而“\n”是一个单字符字符串 包含换行符的。通常模式将用Python表示 使用此原始字符串表示法的代码

类型也匹配<代码>类型(u“text”)==类型(ur“text”),删除
u
时也是如此。因此,我要问,这两者有甚么分别?如果没有区别,为什么要使用
r

例如:

>>> len(ur"tex\t")
5
>>> len(u"tex\t")
4
如果没有
r
,则
\t
是一个字符(制表符),因此字符串的长度为4

如果要构建包含
\
的正则表达式,请使用
r
。在一个非
r
字符串中,您必须转义这些内容,这一点都不好笑

>>> len(u"\\")
1
>>> len(ur"\\")
2

您正在使用Python2吗?要添加到这一点:“r”更改Python解析器解释字符串的方式,即处理转义序列。它不会产生与“u”或“b”不同的类型。