Python 字符串插值和元组

1 投票
2 回答
814 浏览
提问于 2025-04-16 14:08

下面这些Python字符串插值中,哪一种是正确的(这不是个陷阱问题)?

  1. '%s' % my_string
  2. '%s' % (my_string)
  3. '%s' % (my_string, )

如果根据版本不同而有所变化,请做个总结。

相关问题:

2 个回答

2

这三种写法是一样的。

前两种写法其实是完全相同的。给某个东西加上括号并不会让它变成一个元组,真正让它变成元组的是在后面加一个逗号。所以第二种写法实际上和第一种是一样的。

第三种写法也是可以的:使用元组是进行字符串替换的正常方式,但如果只有一个要替换的元素,Python允许你只用一个值。

3

旧格式

第一种格式是最常见的。第三种格式有多余的括号,如果你只想在格式字符串中使用一个对象,这样反而让人看不清楚。第二种格式就更搞笑了,因为那根本就不是一个元组。

新格式

现在从Python 2.6开始,有了一种新的推荐的字符串格式化方法,使用的是.format方法

在你的情况下,你可以使用:

'{}'.format(my_string)

新格式的好处在于,你可以在格式字符串中输入更复杂的格式。

撰写回答