tang818875 发表于 2020-8-1 18:22:25

你真的撑握字符串的format方法了吗?

字符串format方法的奇怪返回

一般情况下,使用format方法将子字符串填充到替代符里,再返回新的字符串,如下:
<code>
'{0} love {1}'.format('Do you', 'me?')
->Do you love me?
</code>
OK,像我们预期一样,没有问题


但是,
<code>
'{0}' + ' love ' + '{1}'.format('Do you', 'me?')
->{0} love me?
</code>

哪位高人,可以解释一下吗?

qiuyouzhi 发表于 2020-8-1 18:26:23

分解一下,这个字符串是由三个小字符串组成的:
'{0}',' love ','{1}'.format('Do you', 'me?')
可以发现,只有最后那个字符串被format了,其他的都没有。

sunrise085 发表于 2020-8-1 18:30:36

你的第二种写法,相当于三个字符串拼接,但是拼接是在format之后才拼接的。所以只是第三部分{1}进行了替换.
你需要把这个括起来才行。
('{0}' + ' love ' + '{1}').format('Do you', 'me?')

1q23w31 发表于 2020-8-1 18:31:14

例子中的'{0} love {1}'.format('Do you', 'me?')里面的{0} love {1}是一个字符串整体
而下面的例子是三个字符串相加,
'{0}' + ' love ' + '{1}'.format('Do you', 'me?')只对第三个字符串格式化,所以输出{0} love me?

tang818875 发表于 2020-8-1 20:01:43

理解,谢谢,高手们
页: [1]
查看完整版本: 你真的撑握字符串的format方法了吗?