首页 > Python基础教程 >
-
python函数每日一讲 - format函数字符串格式化入门
格式化在程序开发中非常常见,大家肯定不陌生,Python中也存在多重格式化方式,format函数就是其中一种。
函数原型
1
|
format (value[, format_spec]) |
参数意义
value: 需要被格式化的字符串
format_spec: 格式化的格式
函数定义与用法
本函数把值value按format_spec的格式来格式化,然而函数解释format_spec是根据value的类型来决定的,不同的类型有不同的格式化解释。当参数format_spec为空时,本函数等同于函数str(value)的方式。
format () 函数可以接受不限个参数,位置可以不按顺序。
其实本函数调用时,是把format(value, format_spec)的方式转换为type(value).__format__(format_spec)方式来调用,因此在value类型里就查找方法__format__(),如果找不到此方法,就会返回异常TypeError。
其中format_spec的编写方式如下形式:
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= integerprecision ::=
integertype ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
fill是表示可以填写任何字符。
align是对齐方式,<是左对齐, >是右对齐,^是居中对齐。
sign是符号, +表示正号, -表示负号。w
idth是数字宽度,表示总共输出多少位数字。
precision是小数保留位数。
兼容性
Python3.x
Python2.6及以上版本
注意事项
format是是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。
1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型
2.单个参数可以多次输出,参数顺序可以不相同
3.填充方式十分灵活,对齐方式十分强大
4.官方推荐用的方式,%方式将会在后面的版本被淘汰
代码实例
1
2
3
4
5
6
7
8
|
print( format (2918)) print( format (0x500, 'X' )) print( format (3.14, '0=10' )) print( format (3.14159, '05.3' )) print( format (3.14159, 'E' )) print( format ( 'test' , '<20' )) print( format ( 'test' , '>20' )) print( format ( 'test' , '^20' )) |
结果:
1
2
3
4
5
6
7
8
|
2918 500 0000003.14 03.14 3.141590E+00 test test test |
上面是format的基本用法,format含有很多其他用法, 后面会写一篇文章深入解析format的用法。