-1

文字列の長さが異なるのはなぜですか? オンライン python コンパイラに次のコードを入力してみてください。

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)

1st print len(PUTjsonBODY)は116

2番目の印刷len(PUTjsonBODY)は114です

なぜ?

psコードを入力してオンラインで実行してみてください:

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

ps2 上と下のテキストが完全に一致する場合、上の結果は常に下よりも 2 つ多くなります! なんで?

4

2 に答える 2

0

かなり明白に見えます: 最初は、 string の値を変更しませんPUTjsonBODY。値を代入しますが、新しい文字列オブジェクトが作成されます。 PUTjsonBODY変わらないままです。

2 回目は、に代入する前に値を代入しPUTjsonBODYます。異なる弦、異なる長さ。具体的には%s、最初の文字列のの最初のインスタンスは 2 番目の文字列にあり、最初の文字列8の の 2 番目のインスタンスは2 番目の文字列にあります。4 文字を 2 文字に置き換えたので、長さの差は 4-2 = 2 になります。%s9

于 2013-10-08T21:36:19.393 に答える