第八周:程序设计方法学

8.1 实例13:体育竞技分析

1.自顶向下(设计)

它是解决复杂问题的有效方法,它将一个总问题表达为若干个小问题的组成形式,使用同样的方法进一步分解小问题,直至小问题可以用计算机简单明了解决。

2.自底向上(执行)

分单元测试,逐步组装,按照自顶向下相反的路径操作,直至系统各部分以组装的思路都经过测试和验证。

3.程序总体框架及步骤

(1)打印程序的介绍性信息式

(2)获得程序运行参数:proA,proB,n

(3)利用球员A和B的能力值,模拟n局比赛。

(4)输出球员A和B获胜比赛的场次及概率。

8.2 Python程序设计思维

1.计算思维

计算思维:抽象问题的计算过程,利用计算机自动化求解,是基于计算机的思维。计算机为基于计算机强大的算力和海量数据,它抽象计算过程,关注设计和构造而非因果。

2.计算生态

计算生态以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。

计算生态没有顶层设计,而是以功能为单位,具备三个特点:竞争发展迅速更迭相互依存

计算生态的价值:创新(跟随创新、集成创新、原始创新),加速科技类应用创新的重要支撑,发展科技产品商业价值的重要模式,国家科技体系安全和稳固的基础。

编程的起点不是算法而是系统,编程目标是快速解决问题。

3.基本的程序设计模式

(1)IPO设计

(2)模块化设计:通过函数或对象封装将程序划分为模块及模块间的表达。具体包括主程序、子程序和子程序间的关系。分而治之:一种分而治之、分层抽象、体系化的设计思想。

引擎+配置:程序执行和配置分离,将可选参数配置化,将程序开发编程配置文件编写,扩展功能而不修改程序。关键在于接口设计,是否清晰明了、灵活可扩展。

应用开发(从应用需求到软件产品)的四个步骤:产品定义、系统架构、设计与实现、用户体验。

8.3 模块7:OS库的使用

1.OS库之路径操作

函数

描述

os.path.abspath(path)

返回path在当前路径中的绝对路径

os.path.normpath(path)

归一化path的表示形式,统一用\\分隔路径

os.path.relpath(path)

返回当前程序与文件之间的相对路径

os.path..dirname(path)

返回path中的目录名称

os.path.basename(path)

返回path中最后的文件名称

os.path.join(path,*paths)

组合path与paths,返回一个路径字符串

os.path.exists(path)

判断path对应文件或目录是否存在,返回True或False

os.path.isfile(path)

判断path所对应是否为已经存在的文件,返回True或False

os.path.isdir(path)

判断path所对应是否为已经存在的目录,返回True或False

os.path.getatime(path)

返回path对应文件或目录上一次访问时间

os.path.getmtime(path)

返回path对应文件或目录上一次修改时间

os.path.getctime(path)

返回path对应文件或目录创建时间

os.path.getsize(path)

返回path对应文件的大小,以字节为单位

2.OS库之进程管理

os.system(command):

执行程序或命令command,可以调用其它程序。在windows操作系统中,返回值为cmd的调用返回信息。

3.OS库之环境参数

函数

描述

os.chdir(path)

修改当前程序操作的路径

os.getcwd()

返回程序的当前路径

os.getlogin()

获得当前系统登录用户名称

os.cpu_count()

获得当前的CPU数量

os.urandom(n)

获得n个字节长度的随机字符串,通常用于加解密运算

os.

8.4 实例14:第三方库安装脚本