打印多行字符串变量而不缩进

maa*_*auw 3 python python-3.x

如何在没有缩进的情况下将多行字符串变量打印到控制台?

此刻,我尝试了一下但没有成功:

# Grid.
grid = """rnbqkbnr
          pppppppp
          ********
          ********
          ********
          PPPPPPPP
          RNBQKBNR"""

# Show grid.
print(grid)
Run Code Online (Sandbox Code Playgroud)

输出如下:

rnbqkbnr
             pppppppp
             ********
             ********
             ********
             PPPPPPPP
             RNBQKBNR
Run Code Online (Sandbox Code Playgroud)

这是我正在寻找的输出:

rnbqkbnr
pppppppp
********
********
********
PPPPPPPP
RNBQKBNR
Run Code Online (Sandbox Code Playgroud)

use*_*016 7

尝试这个:

# Grid.
grid = """\
rnbqkbnr
pppppppp
********
********
********
PPPPPPPP
RNBQKBNR"""

# Show grid.
print(grid)
Run Code Online (Sandbox Code Playgroud)

放在\行尾会删除不必要的换行符。


Pei*_*ayz 6

使用textwrap.dedent(text)

>>> from textwrap import dedent
>>> dedent("""\
    rnbqkbnr
    pppppppp
    ********
    ********
    ********
    PPPPPPPP
    RNBQKBNR""")
'rnbqkbnr\npppppppp\n********\n********\n********\nPPPPPPPP\nRNBQKBNR'
>>> print(_)
rnbqkbnr
pppppppp
********
********
********
PPPPPPPP
RNBQKBNR
Run Code Online (Sandbox Code Playgroud)


use*_*975 5

print('\n'.join(grid.split()))
Run Code Online (Sandbox Code Playgroud)

如果您想保留行中的内部空格:

for line in grid.splitlines():
    print(line.strip())
Run Code Online (Sandbox Code Playgroud)

  • 对于OP的具体示例来说,这是一个令人满意的解决方案,但要小心:如果文本网格包含内部空格,这些空格也会被分割。前任。`"foo bar \n aaaaaaa \n bbbbbbb"` 会将“foo”和“bar”放在不同的行上。 (3认同)