格式化输出(%⽤法和format⽤法)
⼀、格式化输出
1、整数的输出
%o —— oct ⼋进制
%d —— dec ⼗进制
%x —— hex ⼗六进制
1 >>> print('%o' % 20)
2 24
3 >>> print('%d' % 20)
4 20
5 >>> print('%x' % 20)
6 14
2、浮点数输出
(1)格式化输出
%f ——保留⼩数点后⾯六位有效数字
  %.3f,保留3位⼩数位
%e ——保留⼩数点后⾯六位有效数字,指数形式输出
  %.3e,保留3位⼩数位,使⽤科学计数法
%g ——在保证六位有效数字的前提下,使⽤⼩数⽅式,否则使⽤科学计数法
  %.3g,保留3位有效数字,使⽤⼩数或科学计数法
1 >>> print('%f' % 1.11)  # 默认保留6位⼩数
2 1.110000
3 >>> print('%.1f' % 1.11)  # 取1位⼩数
4 1.1
5 >>> print('%e' % 1.11)  # 默认6位⼩数,⽤科学计数法
6 1.110000e+00
7 >>> print('%.3e' % 1.11)  # 取3位⼩数,⽤科学计数法
8 1.110e+00
9 >>> print('%g' % 1111.1111)  # 默认6位有效数字
10 1111.11
11 >>> print('%.7g' % 1111.1111)  # 取7位有效数字
12 1111.111
13 >>> print('%.2g' % 1111.1111)  # 取2位有效数字,⾃动转换为科学计数法
14 1.1e+03
(2)内置round()
round(number[, ndigits])
参数:
number - 这是⼀个数字表达式。
ndigits - 表⽰从⼩数点到最后四舍五⼊的位数。默认值为0。
返回值
该⽅法返回x的⼩数点舍⼊为n位数后的值。
round()函数只有⼀个参数,不指定位数的时候,返回⼀个整数,⽽且是最靠近的整数,类似于四舍五⼊,当指定取舍的⼩数点位数的时候,⼀般情况也是使⽤四舍五⼊的规则,但是碰到.5的情况时,如果要取舍的位数前的⼩数是奇数,则直接舍弃,如果是偶数则向上取舍。
注:“.5”这个是⼀个“坑”,且python2和python3出来的接⼝有时候是不⼀样的,尽量避免使⽤round()函
数吧
1 >>> round(1.1125)  # 四舍五⼊,不指定位数,取整
2 1
3 >>> round(1.1135,3)  # 取3位⼩数,由于3为奇数,则向下“舍”
4 1.113
5 >>> round(1.1125,3)  # 取3位⼩数,由于2为偶数,则向上“⼊”
6 1.113
7 >>> round(1.5)  # ⽆法理解,查阅⼀些资料是说python会对数据进⾏截断,没有深究
8 2
9 >>> round(2.5)  # ⽆法理解
10 2
11 >>> round(1.675,2)  # ⽆法理解
12 1.68
13 >>> round(2.675,2)  # ⽆法理解
14 2.67
15 >>>
3、字符串输出
%s
%10s——右对齐,占位符10位
%-10s——左对齐,占位符10位
%.2s——截取2位字符串
%10.2s——10位占位符,截取两位字符串
1 >>> print('%s' % 'hello world')  # 字符串输出
2 hello world
3 >>> print('%20s' % 'hello world')  # 右对齐,取20位,不够则补位
4          hello world
5 >>> print('%-20s' % 'hello world')  # 左对齐,取20位,不够则补位
6 hello world
7 >>> print('%.2s' % 'hello world')  # 取2位
8 he
9 >>> print('%10.2s' % 'hello world')  # 右对齐,取2位
10        he
11 >>> print('%-10.2s' % 'hello world')  # 左对齐,取2位
12 he
4、其他
字符串格式代码如下
(2)常⽤转义字符如下
⼆、format⽤法
相对基本格式化输出采⽤‘%’的⽅法,format()功能更强⼤,该函数把字符串当成⼀个模板,通过传⼊的参数进⾏格式化,并且使⽤⼤括号‘{}’作为特殊字符代替‘%’
格式化命令format参数使⽤⽅法由两种:b.format(a)和format(a,b)。
1、基本⽤法
  (1)不带编号,即“{}”
  (2)带数字编号,可调换顺序,即“{1}”、“{2}”
  (3)带关键字,即“{a}”、“{tom}”
1 >>> print('{} {}'.format('hello','world'))  # 不带字段
2 hello world
3 >>> print('{0} {1}'.format('hello','world'))  # 带数字编号
4 hello world
5 >>> print('{0} {1} {0}'.format('hello','world'))  # 打乱顺序
6 hello world hello
7 >>> print('{1} {1} {0}'.format('hello','world'))
8 world world hello
9 >>> print('{a} {tom} {a}'.format(tom='hello',a='world'))  # 带关键字
10 world hello world
2、进阶⽤法
(1)< (默认)左对齐、> 右对齐、^ 中间对齐、= (只⽤于数字)在⼩数点后进⾏补齐
(2)取位数“{:4s}”、"{:.2f}"等
1 >>> print('{} and {}'.format('hello','world'))  # 默认左对齐
2 hello and world
3 >>> print('{:10s} and {:>10s}'.format('hello','world'))  # 取10位左对齐,取10位右对齐
4 hello      and      world
5 >>> print('{:^10s} and {:^10s}'.format('hello','world'))  # 取10位中间对齐
6  hello    and  world
7 >>> print('{} is {:.2f}'.format(1.123,1.123))  # 取2位⼩数
8 1.123 is 1.12
9 >>> print('{0} is {0:>10.2f}'.format(1.123))  # 取2位⼩数,右对齐,取10位
10 1.123 is      1.12
3、多个格式化
'b' - ⼆进制。将数字以2为基数进⾏输出。
'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
'd' - ⼗进制整数。将数字以10为基数进⾏输出。
'o' - ⼋进制。将数字以8为基数进⾏输出。
'x' - ⼗六进制。将数字以16为基数进⾏输出,9以上的位数⽤⼩写字母。
'e' - 幂符号。⽤科学计数法打印数字。⽤'e'表⽰幂。
'g' - ⼀般格式。将数值以fixed-point格式输出。当数值特别⼤的时候,⽤幂形式打印。
'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插⼊数字分隔符。'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后⾯会有⼀个百分号。
1 >>> print('{0:b}'.format(3))
2 11
3 >>> print('{:c}'.format(20))
4
5 >>> print('{:d}'.format(20))
6 20
7 >>> print('{:o}'.format(20))
8 24
9 >>> print('{:x}'.format(20))
10 14
11 >>> print('{:e}'.format(20))
12 2.000000e+01
13 >>> print('{:g}'.format(20.1))
14 20.1
15 >>> print('{:f}'.format(20))
16 20.000000
17 >>> print('{:n}'.format(20))
18 20
19 >>> print('{:%}'.format(20))
20 2000.000000%
21 >>>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。