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]