2009-12-22 7 views
4

Python 2.6은 str.format(…)을 정의합니다. Python 3.0에서 문자열 형식의 이전 % 스타일보다 우선합니다. 그러나 "mini-language"을 보면 } 문자를 채우기 문자로 사용하는 것이 불가능한 것처럼 보입니다.Python 형식 문자열 "}"채우기

이것은 내게 이상한 누락처럼 보입니다. 어떻게 든 그 캐릭터를 벗어나 필 캐릭터로 사용할 수 있습니까?

는 내가 같은 결과를 달성하기 위해 str.replace, 또는 기타 유사한 트릭의 번호를 사용하여 다음 몇 가지 독특한 - 투 - 문자열을 문자로 작성 할 수 알고,하지만 ... 나에게 해킹 같은 느낌

편집 : 무엇 난 후하는

>>> "The word is {0:}<10}".format("spam") 
'The word is spam}}}}}}' 
+0

"내 C 문자열에 \ 0을 사용할 수없는 이유는 무엇입니까?" 제 질문은 그 질문에 대한 권리가 있지만, 이것이 중요 할 수있는 최후의 경우는 정말로 비밀스런 것입니다. – Boldewyn

+0

만약')'이라면 Lisp 코드를 자동으로 생성 할 것입니다. 아마 OK입니다. 그러나 중괄호를 닫는 중괄호? – Boldewyn

+1

예, 밀교이며 아마 사용되지 않을 것입니다. 하지만 호기심이 생기는 것은 맞지? (C 문자열에서 \ 0이 가능합니다. \를 이스케이프 처리하면이 상황에서 사용할 수있는 이스케이프가 전혀 없다는 것이 이상하게 보입니다.) –

답변

7

같은 당신은 항상 같은 별도의 매개 변수로 지정할 수 있습니다 :

>>> "The word is {0:{1}<10}".format("spam", "}") 
'The word is spam}}}}}}' 

참조,이 전달됩니다 및 {1} 대신 사용되었습니다.