Python格式化函数

Python格式化函数 | format()

介绍Python中format()函数的主要用法

格式化字符串:

基本格式:<模板字符串>.format(<逗号分隔的参数>)
现有 : nums = [1, 3, 5, 7, 9, 0, 2, 4, 6, 8]
要求输出nums中元素个数.最大值.最小值

nums = [1, 3, 5, 7, 9, 0, 2, 4, 6, 8]
len_,max_,min_ = len(nums),max(nums),min(nums)

#1:字符串拼接
print('nums有'+str(len_)+'个元素,最大值'+str(max_)+',最小值'+str(min_))
#2: %转义
print('nums有%d个元素,最大值%d,最小值%d' % (len_,max_,min_))
#3: format函数 : 接受不限个参数,位置可以不按顺序
print('nums有{0}个元素,最大值{1},最小值{2}'.format(len_,max_,min_))

#通过字典设置参数
dict = {'len':len_,'max':max_,'min':min_}
print('nums有{len}个元素,最大值{max},最小值{min}'.format(**dict))
#通过列表索引设置参数
target = [len_, max_, min_]
print('nums有{0[0]}个元素,最大值{0[1]},最小值{0[2]}'.format(target))

'''以上代码都能输出  nums有10个元素,最大值9,最小值0,
   但相对来说format()更美观省事,功能也更强大'''

格式化数字:

格式控制信息:format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式控制信息。此时,槽的内部样式如下: 

                         {<参数序号>: <格式控制标记>}
其中,<格式控制标记>用来控制参数显示时的格式,包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,这些字段都是可选的,可以组合使用。


1:保留小数点后2位  -->  {:.2f}

import math
PI = math.pi   #PI --> 3.141592653589793
val = -2018.1229
print('{0:.2f}  {1:.2f}'.format(PI,val))    
#输出  3.14  -2018.12

2:带符号保留小数点后两位  --> {:+.2f}

print('{0:+.2f}  {1:+.2f}'.format(PI,val))     
#输出  +3.14  -2018.12

3:舍弃小数  --> {:.0f}

print('{0:.0f}  {1:.0f}'.format(PI,val)) 
#输出  3  -2018

4:千位分隔符 --> {:,}

print('{0:,}'.format(10000000))
#输出  10,000,000

5:设置宽度为6,左填充* --> {0:*>6d},
宽度为6,右填充x  --> {:x<6d}

print('{0:*>6d}  {1:x<6d}'.format(2018,1229))
#输出  **2018  1229xx

6:百分比格式 --> {:.2%} ,
指数格式 --> {:.2e}

print('{0:.2%}  {1:.2e}'.format(0.25,10000000))
#输出  25.00%  1.00e+07

7:设置对齐 :   <左对齐      >右对齐      ^居中

print('{0:*<10d}  {1:*<10d}'.format(2018,1229))  #2018******  1229******
print('{0:*^10d}  {1:*^10d}'.format(2018,1229))  #***2018***  ***1229***
print('{0:*>10d}  {1:*>10d}'.format(2018,1229))  #******2018  ******1229

8:进制转换  
{:d}   -->  十进制,
{:b}   -->  二进制,
{:#b} -->  带前缀二进制,
{:o}   -->  八进制, 
{:#o} -->  带前缀八进制, 
{:x}   -->  十六进制
{:#x} -->  带前缀十六进制
{:#X} -->  带前缀大写十六进制

#用bin()转二进制会带有前缀0b,但format()不会
d2b = bin(255)
use_format = format(255,'b')
print(d2b +'      '+use_format)  #输出: 0b11111111      11111111

print('{:d}'.format(255))    #255
print('{:b}'.format(255))    #11111111
print('{:#b}'.format(255))   #0b11111111
print('{:o}'.format(255))    #377
print('{:#o}'.format(255))   #0o377
print('{:x}'.format(255))    #ff
print('{:#x}'.format(255))   #0xff
print('{:#X}'.format(255))   #0XFF

猜你喜欢

转载自www.cnblogs.com/xaiobong/p/10198495.html
今日推荐