|
格式化字符串函数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
?[table=560]
1
2
In [2]: str(Person('kzc',18))
Out[2]: 'This guy is kzc,is 18 old'4.通过下标
- >>> p=['I','You']
- >>> '{0[0]} love {0[1]}'.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'
|
|