使用print函数可以向Shell窗口输出字符串和数值,可以满足程序信息的输出要求。在实际应用中,输出字符串和数值时,要求字符串和数值必须按照一定的格式输出。如输出的数值要求小数点后保留2位有效数字、按照规定的格式对字符串和数值混合输出等。
格式化输出的案例
下面的案例代码输出圆的面积:

格式化输出就是把要输出的内容按照预定义的格式输出。例如输出的“圆的面积为:78”就是把字符串和变量的内容按照指定格式输出。
现在修改一下输出格式,在输出的内容中添加半径及半径的值。输出格式为“半径为5.0圆的面积为:78”,使用print函数可做如下格式化输出。

前面输出圆面积的数值是整数,现在要求输出浮点数,并保留2位小数。下面我们再修改一下输出格式。

可见print函数的格式化输出功能非常强大,它可以允许我们按照一定的格式来输出内容,如字符串和变量按一定格式输出,设置小数保留的位数等。
print函数的格式化输出功能
如何使用print函数的格式化输出功能呢?

标记符“%”左侧的字符串是格式化字符串,格式化字符串由字符串和占位符组成,占位符的作用是在字符串中占据一个固定位置,内容由标记符“%”右侧的参数列表中的参数来填充,参数就是一个变量或一个数值。
在格式字符串里可以有多个占位符,占位符在字符串的位置可以随意。需要注意格式字符串里的占位符和参数列表的参数是一一对应的,格式字符串里有多少个占位符,参数列表里面就有多少个参数对应。
参数列表里面的每个参数之间用英文逗号分隔,参数列表的参数顺序与格式字符串中的占位符顺序要保持一致。例如上图的格式字符串有两个占位符“%.2f”,因此在参数列表里面有两个参数。

占位符也称为格式说明符,由标记符“%”起始,随后是格式符,用于对待替换的参数进行格式化处理。
print函数常用格式说明符列表
| 格式符 | 说明 |
| %c | 单个字符 |
| %d | 十进制整数 |
| %f | 十进制浮点数 |
| %o | 八进制数 |
| %s | 字符串 |
| %x | 十六进制数 |
| %% | 输出百分号% |
在格式符前面可以添加控制域“0m.n”,例如%09.2f。
0 有0表示指定m后,若输出的位数不足m,在前面空位添加字符0,若省略,在前面的空位默认添加空格。
m.n m用于指定输出的位数,也就是输出项所在的字符数。n指精度。用于指定输出的小数位数。未指定n时,隐含的精度为n=6位。例如:%.2f,m位默认位数,小数保留2位;%9.2f,意思是位数为9位,小数保留2位;%09.2f,意思是位数为9位,小数保留2位,位数不足的用0补齐。
占位符“%d”的使用
“%d” 用于对整数进行格式化,对应的参数类型必须是整数或小数。可以指定输出的整数位数,当输出的整数位数不能填满指定的位数时,可以指定字符0填充,默认填充字符是英文空格。

参数列表中的参数可以是数值,也可以是变量。

案例02格式化整数时,要求输出3位数字,如果输出的整数位数不足3位,在整数前面填充字符,默认字符是空格。

当输出的整数位数不足3位时,在整数前面填充字符0。
占位符“%s”的使用
“%s” 用于对字符串的格式化,对应的参数类型可以是数值,也可以是变量。


占位符“%f”的使用
“%f” 用于对浮点数进行格式化,对应的参数类型是整数和小数,可以指定保留的小数位数。

占位符“%.2f”要求保留2位小数,如果需要保留3位小数,可以使用占位符“%.3f”。

如果要输出百分号“%”,可以使用“%%”来表示输出一个百分号“%”。
上机操作
在shell窗口执行下面的语句:
(1)输出字符串
print("圆的面积公式:%s" % ("半径的平方与圆周率的积"))
#输出效果:
圆的面积公式: 半径的平方与圆周率的积
(2)输出整数
print("今天是%d号" % (20))
#输出效果:
今天是20号
(3)输出小数,保留3位小数
print("圆周率:%.3f" % (3.14))
#输出效果
圆周率:3.140