我使用三重引号创建一个多行字符串:
print( ''' Hello! How are you?''')
输出:
Hello! How are you?
在字符串内部,How正好位于Hello的下方。然而,我不能够理解是什么导致缩进发生变化。
How
Hello
6g8kf2rb1#
要回答这个问题,字符串内的空格数是完全正确的,三重引号是不改变缩进的。要回答这个问题背后的问题,如果要删除 common 前导空格,以便多行字符串在源代码中仍然整齐排列,请使用textwrap.dedent:
textwrap.dedent
>>> print(dedent('''\ ... Hello! ... How are ... you?''')) Hello! How are you?
您可能也有兴趣关注Compile time textwrap.dedent() equivalent for str or bytes literals。
textwrap.dedent()
iih3973s2#
当您像这样使用三重引号时,生成的字符串将包含三重引号之间的所有字符,包括空格和换行符。那么,让我们再看看你的代码。它看起来像这样:
''' Hello! How are you?'''
如果我们仔细观察这段代码,我们可以看到它由以下内容组成:
'''
Hello!
How are
you?
因此,生成的字符串将包含三重引号之间的所有字符,即:
如你所见,这正是打印出来的。
dwbf0jvd3#
让我们看看Python文档:Python中的文本数据是用str对象或字符串来处理的。字符串是Unicode码位的不可变序列。字符串常量有多种编写方式:单引号:'允许嵌入“双”引号'双引号:“允许嵌入”单“引号”。三重引用:“”“三个单引号”"“,“““三个双引号”””用三重引号括起来的字符串可以跨多行-所有相关的空格都将包含在字符串文字中。我不确定您想要的输出是什么,但简短的回答是Python按字面解释三引号内的空格;这就是为什么它包含在打印输出中。
svgewumm4#
三引号准确表示您所写的内容,如下所示:
test = """<= No spaces with no indentatoins <= No spaces with no indentatoins """ print(test)
<= No spaces with no indentatoins <= No spaces with no indentatoins
test = """ <= 2 spaces with 1 indentation <= 4 spaces with 2 indentations """ print(test)
<= 2 Spaces with 1 indentation <= 4 spaces with 2 indentations
在某种程度上,三重引号类似于HTML中的<pre></pre>,如下所示:
<pre></pre>
<pre> <= No spaces with no indentatoins <= No spaces with no indentatoins </pre>
<pre> <= 2 Spaces with 1 indentation <= 4 spaces with 2 indentations </pre>
bttbmeg05#
试试这个
print(f''' Hello! How are you?''')
5条答案
按热度按时间6g8kf2rb1#
要回答这个问题,字符串内的空格数是完全正确的,三重引号是不改变缩进的。
要回答这个问题背后的问题,如果要删除 common 前导空格,以便多行字符串在源代码中仍然整齐排列,请使用
textwrap.dedent
:您可能也有兴趣关注Compile time
textwrap.dedent()
equivalent for str or bytes literals。iih3973s2#
当您像这样使用三重引号时,生成的字符串将包含三重引号之间的所有字符,包括空格和换行符。
那么,让我们再看看你的代码。它看起来像这样:
如果我们仔细观察这段代码,我们可以看到它由以下内容组成:
'''
Hello!
How are
you?
'''
因此,生成的字符串将包含三重引号之间的所有字符,即:
Hello!
How are
you?
如你所见,这正是打印出来的。
dwbf0jvd3#
让我们看看Python文档:
Python中的文本数据是用str对象或字符串来处理的。字符串是Unicode码位的不可变序列。字符串常量有多种编写方式:
单引号:'允许嵌入“双”引号'
双引号:“允许嵌入”单“引号”。
三重引用:“”“三个单引号”"“,“““三个双引号”””
用三重引号括起来的字符串可以跨多行-所有相关的空格都将包含在字符串文字中。
我不确定您想要的输出是什么,但简短的回答是Python按字面解释三引号内的空格;这就是为什么它包含在打印输出中。
svgewumm4#
三引号准确表示您所写的内容,如下所示:
〈无空格和无缩进〉:
输出:
〈一些空格和一些缩进〉:
输出:
在某种程度上,三重引号类似于HTML中的
<pre></pre>
,如下所示:bttbmeg05#
试试这个