我创建了一个常量,其中包含一些三角形的 ASCII 艺术,如下所示:
ascii_triangle =''' /\
/ \
/ \
/ \
/ \
/__________\ '''
然后我将其用作函数的参数,这样我就可以在函数中使用图片(以及其他一些 ASCII 艺术和其他参数)。该功能并不重要,但问题是当我尝试使用
打印它时print(ascii_triangle)
在函数中,输出如下所示:
/ / / / / /__________\
如何让它看起来像一个正常的三角形?
最佳答案
您发布的 ascii-art 尾部有一个反斜杠就在每个换行符之前。如果除了换行符之外没有任何内容,此反斜杠将被视为 line continuation character。 .
观察:
In [118]: x = 'foo \
...: bar \
...: baz'
In [119]: x
Out[119]: 'foo bar baz'
在上面的示例中,尾部反斜杠后没有任何内容,因此 python 认为它是一个没有任何换行符的字符串。即使您对字符串使用多行引号,也会给予相同的处理。
您需要在反斜杠后添加一个空格,并使您的字符串成为原始文字。
In [123]: ascii_triangle =r''' /\
...: / \
...: / \
...: / \
...: / \
...: /__________\ '''
In [124]: print(ascii_triangle)
/\
/ \
/ \
/ \
/ \
/__________\
尝试在第一个示例中的反斜杠后添加一个空格,你会得到 p>
SyntaxError: EOL while scanning string literal
指示 python 将需要字符串的多行引号。
关于python - 尽管是一个多行字符串,为什么这个 ASCII 艺术字不打印在多行上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45127902/