我有没有办法安排多行文字来显示而不破坏python代码缩进?

2024-10-02 14:27:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学Python。你知道吗

我想安排文字行,以便于代码阅读和容易的输出阅读。 详情请参阅以下代码。你知道吗

failed=True
if failed:
    print('\
Failed.\n\
reason:...\n\')

输出

Failed.
reason:...

为了排列输出,也就是说,在行首没有空格,python代码中的文字行从行首开始。但是它打破了python代码缩进。 我有没有办法安排多行文字来显示而不破坏python代码缩进? 非常感谢你。你知道吗


Tags: 代码trueif请参阅reason文字空格print
3条回答

这并不漂亮,但您可以利用编译器的特性来连接相邻的字符串文字:

print('foo\n'
      'bar\n'
      'baz quux')

另一个选项是将textwrap.dedent与三重引号字符串文字一起使用。这样,您就可以自由地按自己喜欢的缩进级别键入字符串,然后在末尾关闭它,这对于长消息来说会更容易:

import textwrap
failed=True
if failed:
    print(textwrap.dedent("""\
        Failed.
        reason:...
        you
        entered
        an
        invalid
        number"""))

无缩进输出:

Failed.
reason:...
you
entered
an
invalid
number

我认为这种语法非常简洁,将开销完全留给字符串的两侧,并允许您直观地保持严格的缩进。你知道吗

在python中,要使用多行字符串,可以使用三重引号:

failed=True
if failed:
    print('''\
          Failed.\n\
          reason:...\n''')

This will break output indentation:

      Failed.
      reason:...

要保留输出缩进和代码缩进,应附加文本行:

failed=True
if failed:
    print("Failed.\nreason:...\n")

或:

print("Failed.\n" +
      "reason:...\n")

或:

print("Failed.\n"
      "reason:...\n")

输出:

Failed.
reason:...

相关问题 更多 >