我试图在变量A
中存储一个字符串,其中包含:
"'D:\\Work\\B1.tif';'D:\\Work\\B2.tif'"
我有两个变量存储B1.tif
和B2.tif
的位置:
X = "D:\\Work\\B1.tif"
Y = "D:\\Work\\B2.tif"
但是,当我尝试将所有字符串组合成一个变量“a”时:
A = '"' + "'" + X + "'" + ";" + "'" + Y + "'" + '"'
这是它存储的内容:
'"\'D:\\Work\\B1.tif\';\'D:\\Work\\B2.tif\'"'
当I print
A
显示:
"'D:\Work\B1.tif';'D:\Work\B2.tif'"
似乎一个反斜杠(\
)将双引号("
)和单引号("
)分开,并自动存储在字符串中。如何在字符串中存储双引号和单引号,而不使用反斜杠分隔引号?你知道吗
打印“\'%s\';\'%s\'”'%(X,Y)
字符串格式(和原始字符串)要简单得多:
提供:
但是,要获得显示的结果,必须使用
repr()
,如果只是在中键入变量名,IDLE就会使用它。如果我将所有print
语句更改为print repr(A)
,我将得到:IDLE使用类的
__repr__()
方法,print
使用__str__()
。通常它们是一样的,但有时,就像这里一样,它们不是。你知道吗当您在Python中仅通过键入变量的名称来显示变量时,Python会尝试以这样的方式打印它:如果您将它复制并粘贴为变量,它将生成相同的对象。这适用于字符串、列表、字典、集合等。结果是,以这种方式打印出来时,字符串需要转义。反斜杠实际上并不存储在字符串中。通过计算长度可以看出:
但是,有更好的方法来构建您想要的相同字符串,如其他答案所示。你知道吗
相关问题 更多 >
编程相关推荐