我创建了一个常量,其中包含一些三角形的ASCII艺术,如下所示:
ascii_triangle =''' /\
/ \
/ \
/ \
/ \
/__________\ '''
然后我用它作为函数的参数,所以我可以在函数中使用图片(以及其他一些ASCII艺术和其他参数)。该功能并不重要,但问题是当我尝试使用进行打印时
print(ascii_triangle)
在函数中,输出如下:
/ / / / / /__________\
如何让它看起来像一个合适的三角形?
答案 0 :(得分:5)
您发布的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)
/\
/ \
/ \
/ \
/ \
/__________\
尝试在第一个示例中的反斜杠后面添加一个空格,然后你就得到了
SyntaxError: EOL while scanning string literal
指示python将需要字符串的多行引用。