python string.format的用法总结

时间:2022-09-15 14:03:24

符号{}是替换变量的点位符。如果没有指定格式,则直接将变量值作为字符串插入。如下演示:

>>>str="hello, {} !".format("world")
>>>print str
hello,world !
>>>str="hello,{} {}!".format("James","wade")
>>>print str
hello,James wade!


上面第二个没有指定顺序,会以默认的顺序输出,第一个输出James,第一个输出wade,这种只能用在python2.7,以前版本一定要指定顺序。

我们可以指定变量的位置数值,这样进行格式化的时候就会比较灵活了。:

>>>'{0},{1},{2}'.format('a','b','c')
'a,b,c'
>>>'{2},{1},{0}'.format('a','b','c')
'c,b,a'


命名参数:直接给format传参数的时候给每一个参数起个名字。

>>>'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N',longitude='-115.81W')
'Coordinates:37.24N, -115.81W'
>>>coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
>>>'Coordinates: {latitude}, {longitude}'.format(**coord)
'Coordinates:37.24N, -115.81W'


多次复用同一个变量

使用%格式字符串,要求变量有严格的次序,而.format()方法允许任意排列和重复使用。

>>>str = "Oh {0}, {0}! wherefore art thou {0}?".format("Romeo")
>>>print str
OhRomeo, Romeo! wherefore art thou Romeo?


将数值转换成为不同的进制

可以用如下字母将数字转换成字母代表的进制,decimalhexoctal,binary

>>>print("{0:d} - {0:x} - {0:o} - {0:b} ".format(21))
21- 15 - 25 - 10101

这里一开始让我最不明白了,{0d}这样的表示。解释下0代表的是第0个变量,冒号后面就是要格式化的格式



参考:

https://docs.python.org/2/library/string.html

http://youngsterxyf.github.io/2013/01/26/python-string-format/