2013-10-08 8 views
-1

왜 다른 문자열 길이가 생깁니 까?왜 문자열 길이가 다릅니 까?

XivelyID=2 
XivelyCV=3 

PUTjsonBODY='{ "version": "1.0.0", \r\n\ 
"datastreams" : [ { \r\n\ 
    "id"" : "%s", \r\n\ 
    "current_value"" : "%s" } ]\r\n\ 
}\r\n' 

print PUTjsonBODY %(XivelyID,XivelyCV) 
print len(PUTjsonBODY) 
print 

XivelyID=8 
XivelyCV=9 

PUTjsonBODY='{ "version": "1.0.0", \r\n\ 
"datastreams" : [ { \r\n\ 
     "id"" : "%s", \r\n\ 
     "current_value"" : "%s" } ]\r\n\ 
}\r\n'%(XivelyID,XivelyCV) 

print PUTjsonBODY 
print len(PUTjsonBODY) 

1 인쇄 렌 (PUTjsonBODY) 116

2 인쇄 렌 (PUTjsonBODY은) 114

이유

입니다 : 온라인 파이썬 컴파일러에서이 코드를 입력하려고?

p.s. 코드를 입력하려고 여기 온라인 실행

http://www.compileonline.com/execute_python_online.php

경우 위의 p.s.2 과 하단 텍스트 결과 이상 totaly 정확한있는 것은 바닥 다음에 allways 2 이상이다! 왜?

답변

3

첫 번째 len()의 문자열에 %s이 두 번 있습니다.

두 번째 len()의 문자열은 89입니다.

89%s%s보다 2 문자 짧습니다.

는 정확한 비교를하려면, 변경에 대한 첫 번째 len() :

print len(PUTjsonBODY %(XivelyID,XivelyCV)) 
0

은 매우 명백 보이는 : 처음으로, 당신은 문자열 PUTjsonBODY의 값을 변경하지 마십시오. 값을 그 값으로 대체하지만, 문자열 오브젝트가 작성됩니다. PUTjsonBODY은 변경되지 않습니다.

두 번째로 에 할당하기 전에 으로 대체하고 전에 할당합니다. 다른 문자열, 다른 길이. 특히 첫 번째 문자열의 %s의 첫 번째 인스턴스는 두 번째 문자열의 8이고 두 번째 인스턴스의 두 번째 인스턴스 인 %s은 두 번째 문자열의 9입니다. 4자를 2 자로 대체 했으므로 길이가 4-2 = 2 인 차이점이 있습니다.

관련 문제