1.print格式化输出
python的格式化输出与c语言中的printf相似
%[(name)][flags][width].[precision]typecode
width, precision为两个整数。可以利用*,来动态代入这两个量
print("%.*f" % (3, 1.265633))
1.266
复制代码
3替换掉* 实际上为"%.3f"
%s 字符串
%r 字符串
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底为小写e)
%E 指数 (基底写为大写E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
print('%s' % 'hello world')
print('%50s'% 'hello world') # 取50位
print('%.4f' % 3.1415926) # 取4位小数
hello world
hello world
3.1416
复制代码
2.format()
该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’
(1)不带编号,“{}”
(2)带数字编号,可调换顺序,“{1}”、“{2}”
(3)带关键字,即“{a}”、“{b}”
>>>print('{} {}'.format('deuterium', 'suika'))
deuterium suika
print('{0} {1}'.format('deuterium', 'suika')) # 带数字编号
deuterium suika
print('{0} {1} {0}'.format('deuterium', 'suika')) # 打乱顺序
deuterium suika deuterium
print('{1} {1} {0}'.format('deuterium', 'suika'))
suika suika deuterium
print('{a} {b} {a}'.format(a='deuterium', b='suika')) # 带关键字
deuterium suika deuterium
print('{2} {1} {2}'.format('deuterium', 'suika'))
会出现tuple index out of range报错
数字形式的简单字段名相当于把 format 中的所有位置参数整体当作一个元组,通过字段名中的数字进行取值。
即 {0} 等价于 tuple[0],所以花括号内的数字不能越界。
如果改为print('{2} {1} {2}'.format('deuterium', 'suika', 'doudou'))
则输出doudou suika doudou
复制代码