jin5011 发表于 2015-12-15 09:14:02

python函数format字符串格式化

格式化字符串函数format格式:
string.format()

几个用法:

1.通过位置




[*]代码:

[*]>>> '{0},{1}'.format('I','love','you')
[*]'I,love'
[*]>>> '{0},love,{1}'.format('I','you')
[*]'I,love,you'
[*]>>> '{0} love {1}'.format('I','you')
[*]'I love you'
[*]>>> '{0},love,{1} {1}'.format('I','you')
[*]'I,love,you you'



[*]>>> '{1} love {0}'.format('I','you')

[*]'you love I'




[*]>>> '{} love {}'.format('I','you')

[*]'I love you'

字符串的format函数可以接受不限个参数,位置顺序可以不固定,也可以不用参数或者多次使用,但是2.6版本不能用{},2.7版本可以用

2.通过关键字参数




[*]>>> '{a} love {b}'.format(a='I',b='you')

[*]'I love you'
[*]>>> '{name} is {age}'.format(name='lw',age=22)
[*]'lw is 22'
3.通过对象属性(还木有看到对象,先留着以后回来再看)





1
2
3
4
5


?
1
2

In : str(Person('kzc',18))
Out: 'This guy is kzc,is 18 old'4.通过下标




[*]>>> p=['I','You']

[*]>>> '{0} love {0}'.format(p)
[*]'I love You'


补充:
list和tuple可以通过“打散”成普通参数给format函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。

格式限定符
它有着丰富的的“格式限定符”(语法是{}中带:号),比如:
1.填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充




[*]>>> '{:^6}'.format('123')

[*]' 123'
[*]>>> '{:*>6}'.format('123')
[*]'***123'
[*]>>> '{:*<6}'.format('123')
[*]'123***'
[*]>>> '{:>6}'.format('123')
[*]'   123'
2.精度与类型f(二者常一起使用)
注意,这时候不再是字符串类型
其中.3表示长度为3的精度,f表示float类型



[*]>>> '{:.3f}'.format('123.456789')

[*]
[*]Traceback (most recent call last):
[*]File "<pyshell#36>", line 1, in <module>
[*]    '{:.3f}'.format('123.456789')
[*]ValueError: Unknown format code 'f' for object of type 'str'
[*]>>> '{:.3f}'.format(123.456789)
[*]'123.457'
3.进制类型
其中,b、d、o、x分别是二进制、十进制、八进制、十六进制,这时候因为是进制类型,所以参数还是不能有‘’ 号




[*]>>> '{:b}'.format(33)

[*]'100001'
[*]>>> '{:d}'.format(33)
[*]'33'
[*]>>> '{:o}'.format(33)
[*]'41'
[*]>>> '{:x}'.format(33)
[*]'21'
[*]>>>
[*]KeyboardInterrupt
[*]>>> '{:b}'.format('33')
[*]
[*]Traceback (most recent call last):
[*]File "<pyshell#45>", line 1, in <module>
[*]    '{:b}'.format('33')
[*]ValueError: Unknown format code 'b' for object of type 'str'
另外还可以用,号还能用来做比如金额的千位分隔符




[*]>>> '{:,}'.format(123456789)

[*]'123,456,789'
页: [1]
查看完整版本: python函数format字符串格式化