
4-2 格式化输出数据使用print()
相信读者经过前三章的学习,已经对使用print()函数输出数据非常熟悉了,下面将完整讲解这个输出函数的用法。
4-2-1 函数print()的基本语法
print()的基本语法格式如下。
print(value,…, sep='' '', end=''\n'', fi le=sys.stdout, fl ush=False)
(1)value:表示想要输出的数据,可以一次输出多条数据,各数据间以逗号隔开。
(2)sep:当输出多条数据时,可以插入各条数据的分隔字符,默认是一个空格字符。
(3)end:当数据输出结束时所插入的字符,默认是插入换行字符,所以下一次print()函数的输出会在下一行输出。
(4)fi-le:数据输出位置,默认是sys.stdout,也就是屏幕。
(5)fl ush:是否清除数据流的缓冲区,默认是不清除。
程序实例ch4_1.py:重新设计ch3_17.py,其中在第二个print()中的两条输出数据的分隔字符是“$$$ ”。

执行结果

程序实例ch4_2.py:重新设计ch4_1.py,将两条数据在同一行输出,彼此之间使用Tab键的距离隔开。

执行结果

4-2-2 格式化print()输出
在使用格式化输出时,格式如下。
print("…输出格式区…" %(变量系列区, … ))
在上述输出格式区中,可以放置变量系列区相对应的格式化字符,这些格式化字符的基本含义如下。
(1)%d:格式化整数输出。
(2)-%f:格式化浮点数输出。
(3)-%x:格式化十六进制整数输出。
(4)-%o:格式化八进制整数输出。
(5)-%s:格式化字符串输出。
程序实例ch4_3.py:格式化输出的应用。

执行结果

设计程序时,在print()函数内的输出格式区也可以用一个字符串变量取代。
程序实例ch4_4.py:重新设计ch4_3.py,在print()内用字符串变量取代字符串列表,读者可以参考第5和6行与原先ch4_3.py的第5行做比较。

执行结果 与ch4_3.py相同。
程序实例ch4_5.py:格式化八进制和十六进制输出的应用。

执行结果

程序实例ch4_6.py:将整数与浮点数分别以%d、%f、%s格式化,同时观察执行结果。特别要注意的是,浮点数以整数%d格式化后,小数将被舍去。

执行结果

4-2-3 精准控制格式化的输出
在上述程序实例ch4_6.py中,最大的缺点是无法精确地控制浮点数的输出位置,print()函数在格式化过程中,可以让我们设置保留多少格的空间让文字做输出,语法如下。
(1)-%(+|-)nd:格式化整数输出。
(2)-%(+|-)m.nf:格式化浮点数输出。
(3)-%(+|-)nx:格式化十六进制整数输出。
(4)%(+|-)no:格式化八进制整数输出。
(5)-%(-)ns:格式化字符串输出。
上述对浮点数而言,m代表保留多少格空间供输出(包含小数点),n则是小数数据保留位数。至于其他的数据格式,n则是保留多少格数空间,如果保留格数空间不足,则完整输出数据,如果保留格数空间太多,则数据靠右对齐。
如果是格式化数值数据有加上负号(-),表示保留格数空间有多时,数据将靠左输出。如果是格式化数值数据有加上正号(+),输出数据是正值时,将在左边加上正值符号。
程序实例ch4_7.py:格式化输出的应用。

执行结果

程序实例ch4_8.py:格式化输出,靠左对齐的实例。

执行结果

程序实例ch4_9.py:格式化输出,正值数据将出现正号(+)。

执行结果

程序实例ch4_10.py:格式化输出的应用。

执行结果

4-2-4 format()函数
format()是Python增强版的格式化输出功能,它的基本使用格式如下:
print("…输出格式区…" .format(变量系列区, … ))
在输出格式区内的字符串变量使用“{ }”表示。
程序实例ch4_11.py:使用format()函数重新设计ch4_3.py。

执行结果 与ch4_3.py相同。
程序实例ch4_12.py:以字符串代表输出格式区,重新设计ch4_11.py。

执行结果 与ch4_3.py相同。