📅  最后修改于: 2020-01-13 05:20:06             🧑  作者: Mango
有几种方式可以显示程序的输出,可以以人类可读的形式打印数据,也可以将数据写入文件以备将来使用。有时,用户通常希望更多地控制输出的格式,而不是简单地打印以空格分隔的值。有几种格式化输出的方法。
使用字符串模运算符(%)格式化输出:
该 %
运算符还可用于字符串格式化。在Python中,没有printf()函数,但printfle
的类似功能包含在Python中。为此,%
字符串类将模运算符重载以执行字符串格式化。因此,它通常称为字符串取模(有时甚至称为模数)运算符。
字符串模运算符( %
)在Python(3.x)中仍然可用,并且用户在广泛使用它。但是如今,格式化的旧样式已从该语言中删除
# Python 程序,展示如何
# 使用模运算符%打印漂亮输出
# 打印整形和浮点数
print("芒果 : % 2d, Portal : % 5.2f" %(1, 05.333))
# 打印整型
print("Total students : % 3d, Boys : % 2d" %(240, 120))
# 打印八进制数
print("% 7.3o"% (25))
# 打印指数
print("% 10.3E"% (356.08977))
输出:
芒果 : 1, Portal : 5.33
Total students : 240, Boys : 120
031
3.561E+02
在我们的示例中有两个:“%2d”和“%5.2f”。格式占位符的常规语法为:
%[flags][width][.precision]type
让我们看一下示例中的占位符:
%
字符。随后是字符串应包含的总位数。该数字包括小数点和所有数字,即小数点之前和之后。使用format方法格式化输出:
Python(2.6)中添加了format()方法。字符串的格式化方法需要更多的人工。用户用{}
来标记变量将被替换的位置,并可提供详细的格式化指令,但用户还需要提供要格式化的信息。通过此方法,我们可以通过位置格式将输出中的元素连接起来。例如
代码1:
# Python代码,展示format()如何使用
# 使用format()
print('I love {} "{}!"'.format('芒果', '文档'))
# 使用format()
print('{0} and {1}'.format('芒果', 'Portal'))
print('{1} and {0}'.format('芒果', '芒果'))
输出:
I love 芒果 "文档!"
芒果 and Portal
Portal and 芒果
方括号和其中的字符(称为格式字段)被传递给format()
方法的对象替换。括号中的数字可用于表示传递给format()
方法的对象的位置。
代码2:
# Python代码,展示format()如何使用
# 结合位置和关键字参数
print('第一个portal是 {0}, {1}, and {other}.'
.format('芒果', 'For', other ='文档'))
# 使用format()和数字联合
print("芒果 :{0:2d}, Portal :{1:8.2f}".
format(12, 00.546))
# 改变位置参数
print("第二个参数: {1:3d}, 第一个参数: {0:7.2f}".
format(47.42, 11))
print("芒果: {a:5d}, Portal: {p:8.2f}".
format(a = 453, p = 59.058))
输出:
第一个portal是 芒果, For, and 文档.
芒果 :12, Portal : 0.55
第二个参数: 11, 第一个参数: 47.42
芒果: 453, Portal: 59.06
下图和一个示例用法描述了format方法如何处理位置参数:
代码3:
# Python代码,展示format()如何结合dictionary使用
tab = {'芒果': 4127, 'for': 4098, '芒果': 8637678}
展示format()如何结合dictionary使用
print('芒果: {0[芒果]:d}; For: {0[for]:d}; '
'文档: {0[芒果]:d}'.format(tab))
data = dict(fun ="芒果文档", adj ="Portal")
# using format() in dictionary
print("我爱 {fun} computer {adj}".format(**data))
输出:
芒果: 4127; For: 4098; 文档: 8637678
我爱 芒果文档 computer Portal
使用String方法格式化输出:
在此输出中,使用字符串切片和串联操作格式化。字符串类型具有一些方法,可以帮助以一种更好的方式格式化输出。有些格式化输出的函数是: str.ljust()
,str.rjust()
,str.centre()
# Python代码,展示format()如何结合dictionary使用
cstr = "我爱芒果文档"
# 打印string,居中
print ("居中string,两边填充: ")
print (cstr.center(40, '#'))
# 打印string,左对齐,使用‘-’填充
print ("左对齐的string : ")
print (lstr.ljust(40, '-'))
# 打印string,右对齐,使用‘-’填充
print ("右对齐的string : ")
print (rstr.rjust(40, '-'))
输出:
居中string,两边填充:
##########我爱芒果文档##########
左对齐的string :
我爱芒果文档--------------------
右对齐的string :
--------------------我爱芒果文档