是原始字符串的“”语法糖吗?

时间:2013-05-21 10:22:28

标签: string python-2.7

从教程:

print """ Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to """

产生以下输出:

Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to

hello = r"This is a rather long string containing\n\
several lines of text much as you would do in C."

print hello

会打印:

This is a rather long string containing\n\
several lines of text much as you would do in C.

对我来说,"""符号只是原始字符串的语法糖。我是python的新手,所以搜索文档对我来说不是一个真正的选择。

""" text """r" text "在语义上完全相同吗?

2 个答案:

答案 0 :(得分:1)

没有

print """A\nB"""
print "----"
print r"A\nB"
>>> 
A
B
----
A\nB

除非使用rR前缀,否则将解释转义序列。直接退出文档:

  

除非存在“r”或“R”前缀,否则以字符串形式转义序列   根据类似于标准使用的规则解释   下进行。

应该阅读文档,它们是一个很好的资源,社区很幸运,人们已经为创建python做出了贡献,并且它的常用库已经有很好的文档记录。 (在我看来)。

答案 1 :(得分:0)

原始字符串和三引号字符串对于同一事物只是不同的语法:字符串。三重报价可以是原始报价或常规报价。

>>> r"""\n""" # raw string
'\\n'
>>> """\n"""  # non-raw string
'\n'