为什么我会得到不同的字符串长度? 尝试输入在线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)
第一次打印len(PUTjsonBODY)是116
第二次打印len(PUTjsonBODY)是114
为什么?
P.S。 尝试输入代码并在线运行:
http://www.compileonline.com/execute_python_online.php
p.s.2 如果上面和下面的文字完全准确地上面的结果是总共2更多然后底部! 为什么呢?
答案 0 :(得分:3)
第一个len()
中的字符串中包含%s
,两次。
第二个len()
中的字符串包含8
和9
。
8
和9
比%s
和%s
短两个字符。
如果您想进行准确比较,请将第一个len()
更改为:
print len(PUTjsonBODY %(XivelyID,XivelyCV))
答案 1 :(得分:0)
看起来非常明显:第一次,您不会更改字符串PUTjsonBODY
的值。您将值替换为其中,但会创建 new 字符串对象。 PUTjsonBODY
保持不变。
第二次,您在之前将值替换为 分配给PUTjsonBODY
。不同的弦,不同的长度。具体来说,第一个字符串中的%s
的第一个实例是第二个字符串中的8
,第一个字符串中的第二个%s
实例是第二个字符串中的9
。你已经用2个字符替换了4个字符,因此它们的长度差异为4-2 = 2。