![]() |
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