使用python的print(“”“\”“”)

时间:2016-01-06 06:06:41

标签: python

我正在阅读python documentation,我偶然发现了这个:

  

字符串文字可以跨越多行。一种方法是使用三引号:“”“”“”“或”'''......'''。行尾自动包含在字符串中,但可以通过在行尾添加\来防止这种情况。以下示例:

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

我只是不明白\在这里扮演的角色。我知道我的问题有点基础,但有没有人根据\的使用情况有不同的例子。

4 个答案:

答案 0 :(得分:1)

试试吧!

>>> print("""\
... Usage: x
... """)
Usage: x

>>> print("""
... Usage: x
... """)

Usage: x

第一行末尾的\会阻止输出以空行开头,因为,正如您所引用的那样:

  

行尾自动包含在字符串

除非他们已使用\转义。

答案 1 :(得分:1)

\用于否定行尾。在这种情况下换行符号

<强>代码:

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 

现在没有否定新行字符

<强>代码1:

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

输出1:

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

答案 2 :(得分:0)

开头的\是为了确保一开始没有新行。它基本上将新行作为自己的转义字符,因此它不会将其转换为'\n'(换行符):

>>> print("""\ 
... Hello""")
Hello
>>> print("""
... Hello""")
                  <-- Notice the newline
Hello
>>> 

所以在之前加上反斜杠就像没有任何差距一样。

以下代码部分产生相同的结果:

>>> print("""Hello
... World""")
Hello
World
>>> print("""\
... Hello
... World""")
Hello
World
>>> 

答案 3 :(得分:0)

它只是忽略该字符串中的新行。例如,用它我的输出是

"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"