u 和 r 前缀如何与 python 中的字符串一起使用?

How does the u and r prefixes work with strings in python?

我知道我们可以在字符串前使用 r(raw string) 和 u(unicode) 标志来获得我们实际需要的内容。但是,我想知道这些如何处理字符串。我在 IDLE 中试过这个:

a = r"This is raw string and \n will come as is"
print a
# "This is raw string and \n will come as is"
help(r)
# ..... Will get NameError
help(r"")
# Prints empty

Python 如何知道它应该将字符串前面的 ru 视为标志?或者作为特定的字符串文字?如果我想更多地了解什么是字符串文字及其局限性,我该如何学习它们?

ur 前缀是字符串文字的一部分,如 python 语法中所定义。当 python 解释器解析文本命令以了解命令的作用时,它会将 r"foo" 读取为值为 "foo" 的单个字符串文字。另一方面,它将 b"foo" 读取为具有等效值的单字节文字。

更多信息,您可以参考python中的literals section文档。此外,python 有一个 ast 模块,可让您探索 python 解析命令的方式。