2013-10-08 116 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次印刷LEN(PUTjsonBODY)爲116

第二打印LEN(PUTjsonBODY)爲114

爲什麼呢?

p.s. 嘗試輸入代碼,並在網上運行:

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

如果上述p.s.2 和底部的文字是完全以準確上述結果是2百達更多的則底部! 爲什麼?

回答

3

第一個len()中的字符串有兩個%s

第二個len()中的字符串有89

89是比%s%s短兩個字符。

如果你想要一個準確的比較,改變第一len()到:

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

看起來很明顯:第一次,你不改變字符串PUTjsonBODY的價值。您將值替換爲該值,但創建了一個新的字符串對象。 PUTjsonBODY保持不變。

第二次,您將值替換爲之前分配到PUTjsonBODY。不同的字符串,不同的長度具體而言,第一個字符串中的%s的第一個實例是第二個字符串中的8,第二個字符串中的第一個字符串中的%s的第二個實例是9。您已將4個字符替換爲2個字符,因此它們的長度差異爲4-2 = 2。

相關問題