我正在阅读python documentation,我偶然发现了这个:
字符串文字可以跨越多行。一种方法是使用三引号:“”“”“”“或”'''......'''。行尾自动包含在字符串中,但可以通过在行尾添加\来防止这种情况。以下示例:
print("""\ Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to """)
我只是不明白\
在这里扮演的角色。我知道我的问题有点基础,但有没有人根据\
的使用情况有不同的例子。
答案 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"