2011-08-22 8 views
1

를 만들 때 문자열은 이스케이프 나는 다음과 같은 코드가 있습니다 파이썬 : 튜플

string = "ad\23e\4x{\s" 
data = (string,) 

나는 튜플 내 문자열 각각에 대한 여분의 슬래시가있는 데이터를 인쇄

6 백 슬래시의 총을 슬래시.

여분의 백 슬래시는 어떻게 피할 수 있습니까?

답변

3

개체 data은 튜플입니다. 터플을 출력 할 때, 파이썬은 각 요소에 대해 repr을 호출합니다. 다른 방식으로 형식을 지정하려면 직접 변환해야합니다.

>>> s = "ad\23e\4x{\s" 
>>> d = (s,) 
>>> print d 
('ad\x13e\x04{\\s',) 
>>> print '(%s,)' % (', '.join('"%s"' % _ for _ in d)) 
("adex{\s") 
+0

응답 해 주셔서 감사합니다. 튜플에서 문자열을 다음과 같이 포맷하고 싶습니다 :'code' "ad \ 23e \ 4x {\ s" 'code' –

0

다음과 같은 의미입니까?

In [11]: string = r'ad\23e\4x{\s' 

In [12]: string 
Out[12]: 'ad\\23e\\4x{\\s' 

In [13]: print string 
ad\23e\4x{\s 

In [14]: data=(string,) 

In [15]: data 
Out[15]: ('ad\\23e\\4x{\\s',) 

In [16]: print data 
('ad\\23e\\4x{\\s',) 

In [17]: print data[0] 
ad\23e\4x{\s 
1

그 여분의 백 슬래시 당신의 문자열에 실제로하지, 그들은 파이썬 문자열 (당신이 프로그램에 다시 그 붙여 넣기 수 있고 작동 것 인 아이디어)를 나타냅니다 얼마나입니다. 튜플의 __str__() 구현이 각 항목에 repr()을 호출하기 때문에이 작업이 수행됩니다. print string 또는 print data[0] 인 경우 이 실제로 문자열에 표시됩니다.