PYTHON 字符串格式化

字符串的格式化
字符串的格式化采用了类似于C语言的%格式化符号。
>>>y,m,d=2016,7,8
>>> "%d-%02d-%02d"%(y,m,d)
'2016-07-08'
从Python 2.6开始,引入了format内置函数来实现字符串格式化,它使用花括号}和冒号:来替代百分号%。与百分号格式化相比,它的功能更加强大而灵活。
1)通过位置格式化
>>> '{0},{1}'.format('kfc',20)
'kfc,20'
>>>'{},{}'.format('kfc',20)
'kfc,20'
>>> '{1},{0},{1}'.format('kfc',20)
'20,kfc,20'
2)通过关键字参数格式化
>>> '{name},{age}'.format(name='kfc',age=20)
'kfc,20'
3)通过对象属性格式化
>>> class Person:
    def __init__(self,name,age):
        self.name, self.age= name, age
    def __str__(self):
        return 'Person named {self.name} is {self.age} year old.'.format(self=self)
>>> str(Person('kfc',20))
'Person named kfc is 20 year old.'
4)通过下标格式化
>>> person =['kfc',20]
>>> '{0[0]},{0[1]}'.format(person)
'kfc,20'
5)格式限定符format方法中还有一个非常重要的格式限定符,用冒号:表达。
6)填充与对齐
填充常跟对齐一起使用。^、<、>分别代表居中对齐、左对齐和右对齐,其后面的参数为宽度。冒号:后面为填充的字符,只能是一个字符,默认以空格填充。
>>>'{:>3}'.format('123')
'123'
>>>'{:>3}'.format('123')
'123'
>>> '{:>3}'.format('1234')
'1234'
>>> '{:>6}'.format('1234')
' 1234'
>>> '{:0>6}'.format('1234')
'001234'
>>> '{:x>6}'.format('1234')
'××1234'
7)精度与类型f
浮点数精度采用类型f限定。
>>> import math
>>> math.pi
3.141592653589793
>>>'{:.5f}'.format(math.pi)
'3.14159'
8)其他类型与多进制有关:b、d、o、x分别是二进制、十进制、八进制、十六进制。主要是数值转换到各个进制的字符串类型。此外,还可以采用内置函数进行互相转换。
>>>'{:b}'.format(255)
'11111111'
>>>'{:d}'.format(255)
'255'
>>>'{:o}'.format(255)
'377'
>>>'{:×}'.format(255)
'ff'
9)千位分隔符
在财务应用中,经常使用千分位进行划分。关于这一点format方法也替你想到了。
>>> '{:,}'.format(31415926)
'31,415, 926'
Python 2.7和Python 3都支持%和format方法,推荐逐渐过渡到format方法来格式化字符串。

 

posted @ 2023-04-10 10:15  myrj  阅读(16)  评论(0编辑  收藏  举报