为什么弦长不同?

2024-05-16 18:33:32 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么我得到不同的字符串长度? 尝试在联机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)

第一个打印长度(PUTjsonBODY)是116

第二个打印长度(PUTjsonBODY)是114

为什么?你知道吗

附言。 请尝试在此处输入代码并联机运行:

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

第2页 如果上面和下面的文字是完全准确的上面的结果是所有的方式2比底部! 为什么?你知道吗


Tags: 字符串代码id键入len编译器valueversion
2条回答

第一个len()中的字符串有%s两次。你知道吗

第二个len()中的字符串有89。你知道吗

89是比%s%s短的两个字符。你知道吗

如果要进行准确的比较,请将第一个len()更改为:

print len(PUTjsonBODY %(XivelyID,XivelyCV))

看起来很明显:第一次,您没有更改字符串PUTjsonBODY的值。将值代入其中,但这会创建一个新的字符串对象。PUTjsonBODY保持不变。你知道吗

第二次,在赋值给PUTjsonBODY之前,将值替换为。不同的弦,不同的长度。具体地,第一字符串中的%s的第一实例是第二字符串中的8,第一字符串中的%s的第二实例是第二字符串中的9。您已将4个字符替换为2个字符,因此它们的长度相差4-2=2。你知道吗

相关问题 更多 >