从2.6之后的版本开始以后,format这个神奇的函数就出现了,到2.7进一步发展壮大,当然,2.7依旧是现在我的主流版本,暂时不想更换成3.x版本的,在format出现之前,我们做系统日志的都是用“%”来格式化表示字符串的,现在可以多一个选择了,不过format的确很强大好用,这里简单记录一下学习的实践过程,参考了一下网上的博客信息会在最后面给出来链接:
下面这段话很详细简明的概要了format函数,来源于这里:
花括号声明{}、用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用。
从format参数引入的变量名 、
冒号:、
字符位数声明、
空白自动填补符 的声明
千分位的声明
变量类型的声明: 字符串s、数字d、浮点数f
对齐方向符号 < ^ >
属性访问符中括号 ☐
使用惊叹号!后接a 、r、 s,声明 是使用何种模式, acsii模式、引用__repr__ 或 __str__
增加类魔法函数__format__(self, format) , 可以根据format前的字符串格式来定制不同的显示, 如: ’{:xxxx}’ 此时xxxx会作为参数传入__format__函数中。
具体的实践如下:
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能:python之format函数学习
'''
import math
def format_func_test():
#通过下标指定各个位置字符串的数值
print '{0}, {1}, {2}, {3}'.format('沂','水','寒','城')
#在python2.7及以后版本(我使用的就是2.7)可以赋空值
print '{}, {}, {}, {}'.format('沂','水','寒','城')
#可以等比与字典
print '{Id}, {name}'.format(Id='20123456',name='沂水寒城')
#使用列表
print '{0[0]}, {0[1]}, {0[2]}, {0[3]}'.format(['沂','水','寒','城'])
#字符填充对齐,填充为20位,不足位用*填充
print '{:*>20}'.format('WeAreFamily!!!')
#保留小数点后指定位数,对圆周率取小数点后10位
print '{:.10f}'.format(math.pi)
#数值之间的进制转换,参数b,d,o,x分别表示:二进制、十进制、八进制、十六进制
tmp_num=15
print '{:b}'.format(tmp_num)
print '{:d}'.format(tmp_num)
print '{:o}'.format(tmp_num)
print '{:x}'.format(tmp_num)
#最后一个有意思的东西,使用,可以做金额的千位分隔符
print '{:,}'.format(88488884488480)
format_func_test()
结果为:
沂, 水, 寒, 城
沂, 水, 寒, 城
20123456, 沂水寒城
沂, 水, 寒, 城
******WeAreFamily!!!
3.1415926536
1111
15
17
f
88,488,884,488,480
[Finished in 0.4s]
很有意思,相信之后会更多使用format函数!
参考:
http://www.cnblogs.com/ToDoToTry/p/5635863.html
http://www.cnblogs.com/alan-babyblog/p/5227098.html