内容正文:
全国计算机等级考试二级教程
Python语言程序设计
(2018年版)
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
【第8章】
Python计算生态
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
n 基本的Python内置函数
n 了解Python计算生态
考纲考点
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
知识导图
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
计算思维
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
n 人类在认识世界、改造世界过程中表现出三种基
本的思维特征:以实验和验证为特征的实证思维,
以物理学科为代表;以推理和演绎为特征的逻辑
思维,以数学学科为代表;以设计和构造为特征
的计算思维,以计算机学科为代表。
n 计算思维的本质是抽象(Abstraction)和自动
化(Automation)
计算思维
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
程序设计方法论
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
n 一个解决复杂问题行之有效的方法被称作自顶而
下的设计方法,其基本思想是以一个总问题开始,
试图把它表达为很多小问题组成的解决方案。再
用同样的技术依次攻破每个小问题,最终问题变
得非常小,以至于可以很容易解决。然后只需把
所有的碎片组合起来,就可以得到一个程序。
程序设计方法论
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
“体育竞技分析”实例
n 两个球员在一个有四面边界的场地上用球拍击球。开始
比赛时,其中一个球员首先发球。接下来球员交替击球,
直到可以判定得分为止,这个过程称为回合。当一名球
员未能进行一次合法击打时,回合结束。
n 未能打中球的球员输掉这个回合。如果输掉这个回合的
是发球方,那么发球权交给另一方;如果输掉的是接球
方,则仍然由这个回合的发球方继续发球。
n 总之,每回合结束,由赢得该回合的一方发球。球员只
能在他们自己的发球局中得分。首先达到15分的球员赢
得一局比赛。
程序设计方法论
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
n 自顶向下设计中最重要的是顶层设计。体育竞技
分析从用户处得到模拟参数,最后输出结果。下
面是一个基础设计:
• 步骤1: 打印程序的介绍性信息;
• 步骤2:获得程序运行需要的参数:probA, probB, n;
• 步骤3:利用球员A和B的能力值probA和probB,模拟n
次比赛;
• 步骤4:输出球员A和B获胜比赛的场次及概率。
自顶向下设计
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
自顶向下设计
1
2
def main():
printIntro()
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
n 步骤2 获得用户输入。通过函数将输入语句及
输入格式等细节封装或隐藏,只需要假设程序如
果调用了getInputs()函数即可获取变量probA,
probB和n的值。这个函数必须为主程序返回这
些值,截止第2步,全部代码如下。
自顶向下设计
1
2
3
def main():
printIntro()
probA, probB, n = getInputs()
{#{QQABIQYEogAIABJAAQhCUQUACAOQkBCAAKoOxEAAMAAAwBFABCA=}#}
n 步骤3 需要使用probA、probB模拟n场比赛。
此时,可以采用解决步骤2的类似方法,设计一
个simNGames()函数来模拟n场比赛
自顶向下设计
1
2
3
4
def main():
printIntro()
probA, probB, n = getInputs()
winsA, winsB = simNGames(n, probA, probB)
{#{QQABIQYEogAIABJAAQhCUQUAC