我知道格式化字符串的两种方法:
print 'Hi {}'.format(name)
print 'Hi %s' % name
使用其中任何一种的相对优势/优势是什么?
我也知道两者都可以有效地处理多个参数,如
print 'Hi %s you have %d cars' % (name, num_cars)
和
print 'Hi {0} and {1}'.format('Nick', 'Joe')
答案 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