2013-07-08 4 views
-3
스택 오버플로의

안녕하세요 좋은 사람,파이썬 내가 다시 여기의 질문에 나는 것 같다 아스키 아트

을 왜곡.

내 프로그램에서 사용하기 위해 인터넷에서 일부 아스키 아트를 빌려왔다. 걱정하지 마라. 나는 그 예술가의 말에 전적으로 기여했다. 어쨌든, 형식을 어떻게 지정 하든지 글자와 기호가있는 곳에서는 왜곡됩니다. 코드가 이것이다

예를 들어

:

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

실행,이 나타납니다 (이 목록의 일부) :

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

내 질문은 , 내가 할 수도있는 일입니까, 아니면 버그입니까 ...

미리 감사드립니다! John. 몇 가지 사항을 신속하게 정리해 드리겠습니다. 이유는 프로그램 출력에 잘못 인쇄 된 이유입니다. 혼란이 생겨서 죄송합니다. 대답에 표시된 이유는 정확했으며, 각 행의 끝을 변경하여 백 슬래시를 다른 문자로 바꾸어 오류를 수정하는 프로그램을 만들었습니다.

답변

1

문제는 \가 이스케이프 문자입니다. 예를 들어, "\ n"은 개행을 의미하고 "\ t"는 탭 문자를 의미합니다. 여기에는 대개 하나의 리터럴 '\'문자를 의미하는 "\"및 생성 된 문자열에서 해당 줄 바꿈을 생략하는 실제 줄 바꿈 뒤에 오는 "\"가 있습니다.

가장 간단한 해결 방법은 "\"로 문자열에 "\"모든를 대체하는 것입니다 :

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

그러나이 물론 힘들어 확인하고 ASCII 아트를 편집 할 수 있도록한다.

사건에 대한 좋은 해결책은 리터럴 문자열에 "R"접두어를 사용하여 원시 문자열을 사용하는 것입니다

>>> print r"""/\ 
... \/""" 
/\ 
\/ 
그러나, 그것은 '인쇄'를 사용하지 않는, 좋은 것
+0

. 'HANGMANPICS'라는 명단의 일부입니다. 이 프로그램은 len을 사용하여 목록의 특정 부분을 인쇄합니다. 어떻게 구현합니까? –

+0

어쨌든 고마워, 당신의 대답은 정확했다, 나는 단순히 ascii 예술을 약간 바꿨다. –