3

我知道格式化字符串的两种方法:

  1. print 'Hi {}'.format(name)
  2. print 'Hi %s' % name

使用其中任何一种的相对缺点/优点是什么?

我也知道两者都可以有效地处理多个参数,例如

print 'Hi %s you have %d cars' % (name, num_cars)

print 'Hi {0} and {1}'.format('Nick', 'Joe')
4

2 回答 2

1

两种字符串格式化解决方案之间没有任何区别。

{}通常被称为“新样式”并且%s“旧字符串格式”,但旧样式格式不会很快消失

不过,新样式格式尚不支持所有地方:

logger.debug("Message %s", 123)  # Works
logger.debug("Message {}", 123)  # Does not work. 

不过,我建议使用.format. 它的功能更完整,但无论如何也没有太大的区别。

这主要是个人品味的问题。

于 2013-08-27T21:46:49.167 回答
0

我使用“旧式”,所以我可以用字符串递归地构建字符串。考虑...

'%s%s%s'

...这代表您可以拥有的任何可能的字符串组合。当我构建一个 N 大小输入的输出字符串时,上面的内容让我递归地向下遍历每个根并返回。

一个示例用法是我的搜索查询测试(质量保证)。从%s我可以进行任何可能的查询开始。

/.02

于 2013-08-27T22:30:15.087 回答