2012-08-11 3 views
1

나는 이런 식으로 뭔가 보이는 몇 가지 코드 건너했습니다파이썬은 문자열 표기

foo = r""" 
     Hello 
     How are you 
     Goodbye 
     """ 

이 규칙 그것이에 만들어진 경우 문제가 발생할 수있는 문자열의 서식을 유지하기 위해 그냥 쉬운 방법입니다 정상적인 길? 온라인으로 검색을 시도했지만 문제의 성격이 검색어를 잘 나타내지는 않습니다.

+2

문자열은 동봉 트리플에 의해 인용 부호가 여러 줄에 걸쳐있을 수 있습니다. 문자열 내의 새로운 줄이 보존됩니다. – ladaghini

답변

4

그것은 triple-quoted python string literal입니다. '''도 사용할 수 있습니다. (앞의 r은 리터럴이 원시 문자열임을 알립니다. 예를 들어 대부분의 이스케이프 시퀀스는 무시되며 이는 단일 및 삼중 인용 문자열 모두에 적용됩니다).

>>> """Line one 
... Line two""" 
'Line one\nLine two' 

형식은 사용의 miriad 있습니다

이러한 문자열 대신 \n 줄 바꿈 이스케이프 코드를 사용해야 할 것입니다 단일 인용 문자열 달리, 줄 바꿈을 보존 할 수 있습니다. 나는 여러 줄 상수를 정의 할 필요가 있다면, 나는 종종 문자 매우 읽을 수있는 문자열로 결국 오프닝 트리플 인용 한 후 백 슬래시를 사용

LOREM_IPSUM = """\ 
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. 
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
""" 

가장 일반적인 사용하지만, docstring과 같다; 함수, 클래스 또는 모듈의 첫 번째 문자열 리터럴이 해당 객체의 __doc__ 속성에 자동으로 할당되므로 나중에 다른 도구 (예 : pydocdoctests)에서 쉽게 검색 할 수 있습니다. 특히 docstring conventions을 따를 경우 이러한 변수는 일반적으로 tripple- 문서의 단 한줄이라도 인용 리터럴.

+0

이러한 문자는 문서화 (docstrings)에도 자주 사용됩니다. – orlp

+0

더하기, OP의 예에서는 원시 문자열입니다. 즉, 이스케이프 시퀀스가 ​​비활성화되었습니다. 'r'또는 'R'접두어가 있으면 역 슬래시 뒤에 오는 문자가 문자열에 변경없이 포함되고 모든 역 슬래시는 끈._ – moooeeeep

0

"정상적인 방법으로"당신이 당신의 문자열을 여러 줄에 걸쳐하고자 할 때? 삼중 따옴표 유용 무엇입니까. 공식 문서는 here입니다.