购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.3 参数格式化输出

参数格式化输出就是将数据按所指定的格式输出,使其更易于阅读。在Python语言中,可以调用format()函数来格式化数据,例如:


num=1.41421
print("num= {:.5f}".format(num))  # num= 1.41421

{:.5f}表示要将数值格式化成保留小数点后5位。


num=1.41421
print("num= {:7.3f}".format(num))  # num=   1.414

其中,{:7.3f}表示数字总长度为7的浮点数,且小数点后保留3位,此处的小数点符号本身也计算在总长度内。从执行结果来看,总长度为7,不足的部分会在数值前补足空格。

如果希望数值前补0而不是补空格,就必须修正格式化字符串如下:

其中,“字段宽度”代表字符所占的宽度,“精确度”则是指浮点数输出时小数点后要保留的位数。表5-2所示为format()方法中的标记字符参数功能的说明。

表5-2

此外,str.format()方法还可以置换字段名,不过必须使用大括号“{}”“包裹”要置换的字段名。注意,大括号“{}”的下标编号从零开始,例如:


print('{0}{1}'.format('num = ', 1.41421))
# 输出num= 1.41421

上述语句表示字符串“num=”会带入字段名1({0}),而数值1.41421则会带入字段名2({1}),最后才会输出“num=1.41421”。

我们还可以在大括号中直接指定要输出的参数名称,语法如下:


{字段名}

下例说明大括号“{}”中的字段名如何配合format()方法来使用。


# 四月有30天
print('{month}月有{day}天'\
    .format(month ='四', day = 30))

上述大括号“{}”中使用了两个关键字参数,采用“变量=设置值”的用法,所以“month”会被变量值“四”取代,同样“day”会被“30”取代。

如果要混合使用位置参数与关键字参数,可以参考以下用法:


# 四月有30天
print('{month}月有{0}天'\
    .format(30, month = '四'))

最后,我们介绍调用format()方法转换成指定格式,其语法为:


{字段名 : 转换为指定格式}

转换指定格式可参考表5-3的说明。

表5-3

下面的范例程序调用format()方法配合format-spec(格式规格)进行格式化输出,同时也使用了%格式化字符串。

【范例程序:str_format.py】显示特殊字符


print('PI = %10.5f'%(3.14159))                        #输出5位小数
print('PI = {0:010f}'.format(3.14159))        #前面补0,字段宽度为10

radius = (3.14159) * 20 *20 #计算圆面积
area = int(radius)            #将半径转换成整数
print('靠右 = {0:=>12d}'.format(area)) #*字符填满
print('居中 = {0:=^12d}'.format(area))
print('PI = {0:.5f}\n'
      '圆面积 = {1:,.4f}'.format(3.14159, radius))
      #圆面积加千位逗点
#圆面积以十进制数、十六进制数、二进制数输出
print('圆面积 = {0:d}, {0:#b}, {0:#x}'.format(area))

程序的执行结果如图5-3所示。

图5-3 lbqnO7f3aJLX981L0L4xTzsUb+bPVm/UlUmM7aIN8iSrujjlprcPCAZtxBnnO7ZO

点击中间区域
呼出菜单
上一章
目录
下一章
×