2013-07-08 4 views
-3

Привет, хорошие люди из переполнения стека,python искаженный ascii art

Кажется, что я вернулся с запросом.

Я «позаимствовал» некоторые искусства ascii из Интернета, чтобы использовать их в своей программе, не волнуйтесь, я дал полный кредит художнику в конце его. Во всяком случае, независимо от того, как я его форматирую, он искажается, когда размещаются буквы и символы.

Например, когда код заключается в следующем:

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

(это часть списка)

При запуске, это, кажется, это:

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

Мой вопрос , это то, что я, возможно, сделал, или это ошибка ...

Заранее спасибо! John. Позвольте мне быстро разобраться в чем-то, о чем я спрашивал, почему он был неправильно напечатан в программном выпуске ... Извините за возникшую путаницу. Причина, указанная в ответе, была правильной, и я исправил свою программу, чтобы исправить ошибку, изменив конец каждой строки, заменив обратную косу на другой символ.

ответ

1

Проблема в том, что \ является экранирующим символом. Например, вы могли видеть, что «\ n» используется для обозначения новой строки, а «\ t» означает символ табуляции. Здесь у вас в основном есть «\», что означает единственный литерал «\», а «\» - фактическая новая строка, которая пропускает эту новую строку в созданной строке.

Самым простым решением является просто заменить каждый «\» в строке с «\»:

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

Однако это было бы, конечно, сделать его более трудным для просмотра и редактирования ASCII искусство.

хорошее решение для Вашего случая, чтобы использовать сырые строки, используя префикс «г» на строковом литерале:

>>> print r"""/\ 
... \/""" 
/\ 
\/ 
+0

Это было бы хорошо, однако, он не используется с «печатью». Это часть списка под названием «HANGMANPICS». Программа печатает определенные части списка, используя len, как бы я его реализовал здесь? –

+0

спасибо в любом случае, ваш ответ был прав, я просто изменил искусство ascii, спасибо большое! –

Смежные вопросы