Python 字符串插值和元组
下面这些Python字符串插值中,哪一种是正确的(这不是个陷阱问题)?
'%s' % my_string'%s' % (my_string)'%s' % (my_string, )
如果根据版本不同而有所变化,请做个总结。
相关问题:
2 个回答
2
这三种写法是一样的。
前两种写法其实是完全相同的。给某个东西加上括号并不会让它变成一个元组,真正让它变成元组的是在后面加一个逗号。所以第二种写法实际上和第一种是一样的。
第三种写法也是可以的:使用元组是进行字符串替换的正常方式,但如果只有一个要替换的元素,Python允许你只用一个值。
3
旧格式
第一种格式是最常见的。第三种格式有多余的括号,如果你只想在格式字符串中使用一个对象,这样反而让人看不清楚。第二种格式就更搞笑了,因为那根本就不是一个元组。
新格式
现在从Python 2.6开始,有了一种新的推荐的字符串格式化方法,使用的是.format方法:
在你的情况下,你可以使用:
'{}'.format(my_string)
新格式的好处在于,你可以在格式字符串中输入更复杂的格式。