在处理数据的时候,对齐很重要,挽救了强迫症的小命。
看一些示例吧。。。
'{:5}'.format(3) 表示占位为5,3居中
'{:*^5}'.format(3) 空位用*填满
'{:<5}'.format(3) 左对齐
'{:>5}'.format(3) 右对齐
'{:.2f}'.format(3) 保留两位小数
'{:<5.2f}'.format(3) 保留两位小数,占位为5,左对齐
'{:e}'.format(123456)科学计数法输出
'{:*^20.20}'.format('asdfgh') 占位为20 ,'asdfgh'居中,空位用*填满
'{:<20.20}'.format('asdfgh') 占位为20,左对齐
写到这里,联想到str.format(),也是经常用到的呢
四种方式打印 ‘李白乘舟将欲行,忽闻岸上踏歌声’
1 普通方式
vars = '{}乘舟将欲行,忽闻岸上踏{}'.format('李白','歌声')
2 关键字传参
a = '李白',b = '歌声'
vars = f'{a}乘舟将欲行,忽闻岸上踏{b}'
3 索引传参
vars = '{0}乘舟将欲行,忽闻岸上踏{2}'.format('李白','杜甫','歌声')
4 容器类型传参
data = {'a':'李白','b':'歌声'}
vars = '{}乘舟将欲行,忽闻岸上踏{}'.format(data['a'],data['b'])
还有什么用法呢?
最近学到的日志模块中logging的基本配置,也有format()格式化呀。
首先看一个设置:
logging.basicConfig( filename='./error.log',
format='%(asctime)s %(levelname)s \n %(message)s',
datefmt='%Y-%m-%d %H:%M:%S' )
- filename :使用指定的文件名(含路径)
- filemode :若指定了文件,则默认模式为'a+'
- datefmt :指定日期、时间格式
- format: 对内容进行格式化:
%(asctime)s :创建时的时间 “ 2003-07-08 16:49:45,896” 精确到毫秒
%(created)f :创建时的时间戳,返回time.time()
%(funcName)s:包含日志记录调用的函数名称
%(levelno)s :数字记录级别的消息 (10, 20, 30, 40, 50)
%(levelname)s:文本日志记录级别消息('DEBUG','INFO','WARNING',...)
%(lineno)s :发出日志记录调用的源行号
%(message)s:记录的信息