- Python程序设计:人工智能案例实践
- (美)保罗·戴特尔 哈维·戴特尔
- 702字
- 2021-08-13 17:17:02
3.8 序列控制迭代和格式化字符串
本节和下一节将求解两个班级平均成绩的问题。以下是需求声明:
一个班有十个学生参加了一个测验。它们的成绩(0~100的整数)分别是98、76、71、87、83、90、57、79、82、94,要求计算班级的平均成绩。
下面用于解决该问题的脚本会使用循环求出成绩的总和,然后计算出平均值并显示结果。该脚本将10个成绩放在一个列表中,当然也可以让用户在键盘上输入这些成绩(下一个示例会使用这种方式)或从文件中读取它们(第9章会介绍如何操作)。除此之外,我们还将在第16章介绍如何从SQL和NoSQL数据库中读取数据。
第5~6行创建变量total
和grade_counter
,并将两个变量都初始化为0。第7行
创建变量grades
并使用包含10个整数成绩的列表对其进行初始化。
for
语句依次处理列表grades
中的每个grade
。第11行将当前的grade
值加到total
中,然后,第12行将变量grade_counter
加1,记录到目前为止已经处理的成绩数量。当处理完列表中的所有10个成绩时,迭代终止。Style Guide for Python Code建议在每个控制语句的上方和下方放置一个空行,如第8行和第13行所示。当for
语句执行结束后,第15行计算成绩的平均值,第16行显示计算结果。在本章后面的部分中,我们将介绍如何使用函数式编程来更加简洁地计算列表项的平均值。
格式化字符串简介
第16行中使用了如下所示的f
字符串(formatted string,即格式化字符串)将average
的值插入字符串中,以此来格式化脚本的输出结果:
字符串开头的引号前的字母f
表示它是一个f
字符串。可以使用由花括号({
和}
)分隔的占位符指定插入值的位置。占位符先将变量average
的值转换为以字符串形式表示的替换文本,然后用该替换文本替换{average}
。替换文本表达式可以包含值、变量或其他表达式,例如计算或函数调用。在第16行中,可以使用total/grade_counter
代替average
,从而能够省略第15行。