普通字符串和由'%s'?格式化的字符串之间的区别是什么?

时间:2017-10-07 03:50:36

标签: python

普通字符串与由'%s'格式化的字符串之间的区别是什么,因为它们的结果不同,如下所示:

# It's ok
>>> "{%s}" % ' and '.join(['nice','good','perfect'])
'{nice and good and perfect}'

# It's not ok
>>> "{' and '}".join(['nice','good','perfect'])
"nice{' and '}good{' and '}perfect"

2 个答案:

答案 0 :(得分:2)

你的第一个例子,

"{%s}"%' and '.join(['nice','good','perfect'])

使用给定字符串' and '加入列表,然后将其替换为%s

你的第二个例子,

"{' and '}".join(['nice','good','perfect'])

使用给定字符串{' and '}连接列表。正如您所看到的,这些是两个完全不同的操作,这就是您获得不同输出的原因。

答案 1 :(得分:1)

将代码更改为

"{" + " and ".join(['nice','good','perfect']) + "}"

输出:

'{nice and good and perfect}'