格式化输出,浮点数e,f,g保留位数的计算方式不同,e,f :%.3e/f:取小数点后三位,g:%.3g总共有效位数为3,不包括小数点

格式化输出:format()

format():把传统的%替换为{}来实现格式化输出

  1. 使用位置参数:就是在字符串中把需要输出的变量值用{}来代替,然后用format()来修改使之成为想要的字符串,位置参数就是把传统的%改为{},按照位置顺序自动进行替换
'My name is {},age:{}'.format('Anxc',18)
'My name is Anxc,age:18'

  2.使用位置参数:在原有基础上,通过位置的改变来让替换的值根据位置改变(自我感觉没什么用,还不如第一个好用)

'My name is {1},age:{0}'.format(18,'Anxc')
'My name is Anxc,age:18'

  3.字符填充(左对齐,右对齐,居中对齐)

'右对齐{:#>10}'.format(10)
'右对齐########10'

  4.使用关键字参数:利用key=value来实现一一对应的赋值替换

'My name is{name},age:{age}'.format(name='Anxc',age=18)
'My name isAnxc,age:18'

  5.数字的精度输出:自我感觉就像C语言的float类型的输出。(格式:{:. x f}如果x为整数是无效的)

>>> '{:.4f}'.format(1/3)
'0.3333'
>>> '{:4f}'.format(100)
'100.000000'#目前没有发现整数是啥用处

  6.数字的进制输出

二进制

b
八进制o
十进制 

十六进制

x

  

复制代码

'18的二进制:{:b}'.format(18)
'18的二进制:10010'
>>> '18的八进制:{:o}'.format(18)
'18的八进制:22'
>>> '18的十六进制:{:x}'.format(18)
'18的十六进制:12'

复制代码

  7.数字的千分位划分

>>> '{:,}'.format(19012390123)
'19,012,390,123'

  8.通过下标来实现格式化

复制代码

>>> person=['Anxc',18]
 'I am {0[0]},age:{0[1]}'.format(person)
'I am Anxc,age:18'
>>> x=[12,13]
>>> 'I am {0[0]},age:{1[1]}'.format(person,x)
'I am Anxc,age:13'

两种形式:
%,{}:两者十分相近==》

不同处:

create_time = "%4d-%-3d-%02d" % (year, month-11, day)      #out:2020-1  -07
 
create_time = "%4d-%03d-%02d" % (year, month-11, day)      #out:2020-001-07
# %02d 意思是填充至两位有效数字,不够以0补充,注意不能把0改为其他的以其他数字补充,note:左边补全零还可以用zfill,不过对象得是字符串类型的,%d对象则须要是整形类型的。
  1. 左对齐:%用-表示,而{}用<表示
  2. 右对齐:%默认右对齐,而{}用>表示
  3. 居中对齐:%无表示法,而{}用^表示

格式化输出,浮点数e,f,g保留位数的计算方式不同, e、f :%.3e/f  ==》取小数点后三位,g:%.3g==》总共有效位数为3位(不包括小数点)

总体格式为:%m.n e/f/g

对g:而言m:总共显示多少位(包括小数点和e的相关文字),意义和e、f的m相同,n:有效位数(不包括小数点)默认为6位,设置有效位数,对g而言,m如果大于要显示的数的位数则根据对齐号补空格,m如果小于要显示的数的位数,则根据有效位数或者e格式的情况显示完全

对e,f:而言m:总共占多少位,n:设置小数点后显示多少位,默认为6位

,对f而言,m如果大于要显示的数的位数则根据对齐号补空格,m如果小于要显示的数的位数,则根据有效位数或者e格式的情况显示完全

 

print('%4g' % 1111.1111)
1111.11
print('%10g' % 1111.1111)  ==》观察空白符==》10g和.10g规定的方向都不一样10g表示 占10位,不全左边补空格,10g,10后面没加小数点,即没规定有效位数,则用默认有效位数6位
   1111.11
print('%1g' % 1111.1111)
1111.11

==>g前面不叫小数点

 

格式化符号说明备注 %f 保留小数点后面六位有效数字 float%e 保留小数点后面六位有效数字 

%g用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的0。即%g是根据结果自动选择科学记数法还是一般的小数记数法

print("%g\n", 0.00001234);
  print("%g\n", 0.0001234);

  print("%.2g\n", 123.45); 有效位数为2,即精度为2,指数2大于等于给定精度2==》用%e
  print("%.2g\n", 23.45); 有效位数为2,即精度为2,指数1小于给定精度2==》用%f


上面四句输出结果为:
1.234e-05    对于指数 小于-4或者大于5,按照%e的控制输出,否则按照%f的控制输出
0.0001234   对于指数 大于等于-4或者小于等于5,按照%f的控制输出,否则按照%e的控制输出
1.2e+02       大于等于给定精度的数值,按照%e的控制输出,否则按照%f的控制输出
23
对于指数 小于-4或者大于等于给定精度的数值,按照%e的控制输出,否则按照%f的控制输出.

print('%3g' % 1111.1111)  #g:%3g总共有效位数为3,不包括小数点,
1111.11
print('%.3g' % 1111.1111)  #取3位有效数字--1110.0000
1.11e+03
print('%.4g' % 1111.1111)  #有效位数为4,即精度为4,1111=1.111*10的3次方,指数3小于给定精度4==》用%f
1111
print('%.6g' % 1111.1111)
1111.11
print('%.5g' % 1111.1111)
1111.1
print('%.4g' % 1111.1111)
1111

print('%f' % 1.11)         # 默认保留6位小数1.110000
print('%.1f' % 1.11)       # 取1位小数1.1
print('%e' % 1.11)         # 默认6位小数,用科学计数法1.110000e+00
print('%.3e' % 1.11)       # 取3位小数,用科学计数法1.110e+00
print('%g' % 1111.1111)    # 默认6位有效数字1111.11
print('%.7g' % 1111.1111)  # 取7位有效数字1111.111
print('%.2g' % 1111.1111)  # 取2位有效数字,1100.0000自动转换为科学计数法1.1e+03
1.110000
1.1
1.110000e+00
1.110e+00
1111.11
1111.111
1.1e+03

print('%7g' % 1111.1111)
1111.11
print('%7f' % 1111.1111)
1111.111100
print('%.1f' % 1111.1111)
1111.1
print('%1f' % 1111.1111)
1111.111100
print('%10f' % 1111.1111)
1111.111100
print('%5f' % 1111.1111)
1111.111100
print('%3f' % 1111.1111)
1111.111100

 

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值