鱼C论坛

 找回密码
 立即注册
查看: 1361|回复: 4

[已解决]你真的撑握字符串的format方法了吗?

[复制链接]
发表于 2020-8-1 18:22:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
字符串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>

哪位高人,可以解释一下吗?
最佳答案
2020-8-1 18:26:23
分解一下,这个字符串是由三个小字符串组成的:
'{0}',' love ','{1}'.format('Do you', 'me?')
可以发现,只有最后那个字符串被format了,其他的都没有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-1 18:26:23 | 显示全部楼层    本楼为最佳答案   
分解一下,这个字符串是由三个小字符串组成的:
'{0}',' love ','{1}'.format('Do you', 'me?')
可以发现,只有最后那个字符串被format了,其他的都没有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-1 18:30:36 | 显示全部楼层
你的第二种写法,相当于三个字符串拼接,但是拼接是在format之后才拼接的。所以只是第三部分{1}进行了替换.
你需要把这个括起来才行。
('{0}' + ' love ' + '{1}').format('Do you', 'me?')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-1 20:01:43 | 显示全部楼层
理解,谢谢,高手们
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 17:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表