第八周:程序设计方法学
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:第三方库安装脚本
#BatchInstall.pyimport oslibs = {"numpy","matplotlib","pillow","sklearn","requests",\ "jieba","beautifulsoup4","wheel","networkx","sympy",\ "pyinstaller","django","flask","werobot","pyqt5",\ "pandas","pyopengl","pypdf2","docopt","pygame"}try: for lib in libs: os.system("pip install "+lib) print("Successful") except: print("Failed Somehow")