我知道格式化字符串的两种方法:
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')
我知道格式化字符串的两种方法:
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')
两种字符串格式化解决方案之间没有任何区别。
{}
通常被称为“新样式”并且%s
是“旧字符串格式”,但旧样式格式不会很快消失。
不过,新样式格式尚不支持所有地方:
logger.debug("Message %s", 123) # Works
logger.debug("Message {}", 123) # Does not work.
不过,我建议使用.format
. 它的功能更完整,但无论如何也没有太大的区别。
这主要是个人品味的问题。
我使用“旧式”,所以我可以用字符串递归地构建字符串。考虑...
'%s%s%s'
...这代表您可以拥有的任何可能的字符串组合。当我构建一个 N 大小输入的输出字符串时,上面的内容让我递归地向下遍历每个根并返回。
一个示例用法是我的搜索查询测试(质量保证)。从%s
我可以进行任何可能的查询开始。
/.02