在Python字符串格式中使用变量或%s有什么区别?

时间:2017-07-06 01:00:16

标签: python python-2.7

定义一个变量并在一个字符串中使用它并将%s放在一个字符串中并在之后传入该值之间有什么区别?

site = "Stackoverflow"
site + " is great!"

"%s is great!" % "Stackoverflow"

打印其中任何一个都会得到相同的结果,所以什么时候使用一个比另一个好?

2 个答案:

答案 0 :(得分:0)

如果要将某些字符串常量保留在同一文件中或文件的最顶层,可以使用占位符作为常量声明字符串,然后在运行时通过%语法将占位符替换为实际变量

这也允许更大的可重用性。 例如。你可以存储一个常量UpdatePanel

使用此语法也可能使字符串更具可读性。

答案 1 :(得分:-1)

对于两个字符串,几乎没有区别。

对于多个字符串,s1 + s2 + s3效率较低,因为它必须为第一个连接创建临时str对象,其中"%s%s%s" %(s1,s2,s3)和" {} {} {}" .format(s1,s2,s3)立即创建最终的str对象。

One:

'string' + 'string'


Two:

'%s %s' % ('one', 'two')
'{} {}'.format('one', 'two')

这里有一篇很棒的文章:https://pyformat.info/

此外,文档也是一个很好的资源:https://docs.python.org/2/library/string.html#format-string-syntax

版本1在连接量较大时效率较低。