格式化字符串函数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
|
class Person:
def __init__( self ,name,age):
self .name, self .age = name,age
def __str__( self ):
return 'This guy is {self.name},is {self.age} old' . format ( self = self )
|
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'
阅读(8332) | 评论(0) | 转发(0) |