在python中将字符串变量插入print中

时间:2013-08-27 21:37:45

标签: python string-formatting

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

  1. print 'Hi {}'.format(name)
  2. print 'Hi %s' % name
  3. 使用其中任何一种的相对优势/优势是什么?

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

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

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

2 个答案:

答案 0 :(得分:1)

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

{}通常称为“新式”,%s"old string formatting",但old style formatting isn't going away any time soon

但是到处都不支持新的样式格式:

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

尽管如此,我建议使用.format。它功能更齐全,但无论如何都没有太大的区别。

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

答案 1 :(得分:0)

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

'%s%s%s'

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

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

/ 02