-3

你好 Stack Overflow 的好人,

看来我是带着询问回来了。

我已经从互联网上“借”了一些 ascii 艺术作品在我的程序中使用,别担心,我在最后对这位艺术家给予了充分的评价。无论如何,无论我如何格式化,它都会扭曲字母和符号的放置位置。

例如,当代码是这样的:

'''
 ___________.._______  
| .__________))______|
| | / /      ||
| |/ /       ||
| | /        ||.-''.
| |/         |/  _  \
| |          ||  `/,|
| |          (\\`_.'
| |         .-`--'.
| |        /Y . . Y\
| |       // |   | \\
| |      //  | . |  \\
| |     (')  |   |  (`)
| |          ||'||
| |          || ||
| |          || ||
| |          || ||
| |         / | | \
""""""""""|_`-' `-' |"""|
|"|"""""""\ \       '"|"|
| |        \ \        | |
: :         \ \       : :  
. .          `'       . .
'''

(这是列表的一部分)

运行时,它似乎是这样的:

 ___________.._______
| .__________))______|
| | / /      ||
| |/ /       ||
| | /        ||.-''.
| |/         |/  _  | |          ||  `/,|
| |          (\`_.'
| |         .-`--'.
| |        /Y . . Y| |       // |   | \
| |      //  | . |  \
| |     (')  |   |  (`)
| |          ||'||
| |          || ||
| |          || ||
| |          || ||
| |         / | | """"""""""|_`-' `-' |"""|
|"|"""""""\ \       '"|"|
| |        \ \        | |
: :         \ \       : :  
. .          `'       . .

我的问题是,这是我可能做过的事情,还是一个错误......

提前致谢!约翰。让我快速弄清楚一些事情,我要问的是为什么它在程序输出中被错误地打印出来......抱歉造成的任何混乱。标记的答案中给出的原因是正确的,我修改了我的程序以通过更改每行的结尾来修复错误,用不同的字符替换反斜杠。

4

1 回答 1

1

问题是 \ 是转义字符。例如,您可能已经看到“\n”用于表示换行符,“\t”用于表示制表符。在这里,您主要有“\”,表示单个文字“\”字符,“\”后跟一个实际的换行符,它在生成的字符串中省略了该换行符。

最简单的解决方案是将字符串中的每个“\”替换为“\”:

>>> print "//\\\\"
//\\

但是,这当然会使查看和编辑 ASCII 艺术作品变得更加困难。

对于您的情况,一个不错的解决方案是通过在字符串文字上使用“r”前缀来使用原始字符串:

>>> print r"""/\
... \/"""
/\
\/
于 2013-07-08T14:54:39.090 回答