1.格式化输出之format用法
1.1 format与基本格式化输出的区别
(1)基本格式化输出采用‘%’的方法
- %s 字符串(采用str()的显示)
- %r 字符串(采用repr()的显示)
- %c 单个字符
- %b 二进制整数
- %d 十进制整数
- %i 十进制整数
- %o 八进制整数
- %x 十六进制整数
- %e 指数 (基底写为e)
- %E 指数 (基底写为E)
- %f 浮点数
- %F 浮点数,与上相同
- %g 指数(e)或浮点数 (根据显示长度)
- %G 指数(E)或浮点数 (根据显示长度)
(2)format()通过传入的参数进行格式化,使用大括号‘{}’作为特殊字符代替‘%’。使用方法有两种:b.format(a)和format(a,b)。
1.2 基本用法
1.2.1 简单输出
用法 | 代码 | 结果 | 说明 |
---|---|---|---|
不带编号 | ‘{} {}’.format(‘hello’,‘world’) | ‘hello world’ | 按顺序输出参数 |
带数字编号 | ‘{1} {0}’.format(‘hello’,‘world’) | ‘world hello’ | 数字编号即为参数下标 |
带关键字 | ‘{a} {b} {a}’.format(b=‘hello’,a=‘world’) | ‘world hello world’ | 按参数的关键字输出 |
左对齐(默认)< | ‘{:<} and {}’.format(‘hello’,‘world’) | ‘hello and world’ | 参数位置 |
右对齐 > | ‘{:>}’.format(‘hello’,‘world’) | ‘hello’ | 参数位置 |
中间对齐 ^ | ‘{:^}’.format(‘hello’,‘world’) | ‘hello’ | 参数位置 |
“=”只能应用于数字 | ‘{:0=10}’.format(11) | ‘0000000011’ | 可用“>”代替 :’{:0>10}’.format(‘11’) 用0填充 |
取位数 s | ‘{:^10s} and {:^10s}’.format(‘hello’,‘world’) | ’ hello and world ’ | 取10位中间对齐 ,若参数为整型,则改为d |
取位数 f | ‘{0} is {0:>10.2f}’.format(1.123) | ‘1.123 is 1.12’ | 取2位小数,右对齐,取10位 |
用“,”分隔数字 | ‘{:,}’.format(1234567890) | ‘1,234,567,890’ | 每一千进位 |
时间格式 | ‘{:%Y-%m-%d %H:%M:%S}’.format(datetime.datetime(2010, 7, 4, 12, 15, 58)) | ‘2010-07-04 12:15:58’ |
1.2.2 多种格式化
‘b’ - 二进制。将数字以2为基数进行输出。
‘c’ - 字符。在打印之前将整数转换成对应的Unicode字符串。
‘d’ - 十进制整数。将数字以10为基数进行输出。
‘o’ - 八进制。将数字以8为基数进行输出。
‘x’ - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
‘e’ - 幂符号。用科学计数法打印数字。用’e’表示幂。
‘g’ - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
‘n’ - 数字。当值为整数时和’d’相同,值为浮点数时和’g’相同。不同的是它会根据区域设置插入数字分隔符。
‘%’ - 百分数。将数值乘以100然后以fixed-point(‘f’)格式打印,值后面会有一个百分号。