Python程序设计(13)-----程序设计方法学

复习之前学过的内容

Python程序设计(6)-----基本数据类型
Python程序设计(7)-----字符串类型及其操作
Python程序设计(8)-----程序的控制结构
Python程序设计(9)-----函数和代码复用
Python程序设计(10)-----组合数据类型
Python程序设计(11)-----文件和数据格式化
Python程序设计(12)-----面向对象编程方法
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序设计方法学

方法论:理解并掌握一批python程序设计思维
实践能力:学会编写更有设计感的程序

实例13 体育竞技分析
python程序设计思维

计算思维与程序设计
计算思维被认为是第三种人类思维特征。
在人类漫长发展过程中,逐渐形成是那种人类思维特征。

  • 逻辑思维:推理和演绎,数学为代表,A → \rightarrow B,B → \rightarrow C,A → \rightarrow C
  • 实证思维:实验和验证,物理为代表,引力波<- 实验(先提出假说引力波,再通过实验验证)
  • 计算思维:设计和构造,计算机为代表,汉诺塔递归

计算思维有明显的特征:抽象和自动化
在这里插入图片描述
并不是抽象问题的因果关系,仅是抽象计算过程,并且利用计算机强大的计算能力,来自动完成。

回顾历史,从绳结计数开始,就有计算的概念,但是并没有演绎出计算思维。只有当计算机广泛使用,我们生活中出现了比人算力更强大的设备的时候。计算思维才真正成为人类利用工具进行思维的一种方式。

例:
我们要计算1到100 整数的和。

  • 逻辑思维的情况下:高斯想到的一个公式
    在这里插入图片描述
    到了计算机
    在这里插入图片描述

圆周率的计算
在这里插入图片描述
用矩形区域随机撒点的方式,通过点在圆内部的数量,来判断和求解圆周率。我们靠计算机强大的随机数功能。数量众多的撒点操作来计算圆周率。

汉诺塔问题
数学家推倒过,对于有n个圆盘的汉诺塔问题,需要 2 n − 1 2^n-1 2n1个步骤能够将所有圆盘从一个柱挪到另一个柱。
在这里插入图片描述
从上可知,逻辑思维更多的是靠数学推理,形成公式来获得结果。
而计算思维更多的是模拟运算的过程,无论是模拟求和还是模拟汉诺塔递归,还是模拟圆周率的撒点。
我是模拟过程,并且利用计算机来完成大量的运算。

大例子:天气预报 你知道天气预报怎么做出来的吗????(我不知道)
在十几年前,中国大面积地区的天气预报,靠的都是实证思维和逻辑思维。简单说就是实证思维。
在这里插入图片描述我们查阅当地的历史天气的数据。并且根据这样的经验,来猜测第二天的温度。我们说,实证思维是用物理的经验的东西构造出未来的值。
随着计算机尤其是超级计算机的发展,这些年中大量气象部门装备的超级计算机,他们可以利用计算机来演算出未来的天气情况。
那么演算天气需要一个模型叫MM5模型。
将地球分割成很多的小的区域,并且用布局在全球各个区域的传感器,来采集每个区域的温度。以及气象变化的数值。
并且把这样的数据输入到计算机中,经过一种迭代和数学的演算。其实这种数学演算是利用MM5模型,将当前的区域跟周围的区域以及再远的区域不断的去进行叠加运算。去预测未来按照这样的天气,后面可能会产生的小区域的天气状况。
我们说这是计算思维,我们说,并不是用公式来计算未来的天气。而是通过计算机不断的演算。模拟未来的天气,最终能够预报未来的天气
在这里插入图片描述
另一个问题,量化分析。
简单讲量化分析是股市中常用的一种办法。
在这里插入图片描述
中国股市和美国股市有超过60%交易是计算机完成的。

抽象+自动化=计算思维
在这里插入图片描述
编程是将计算思维编程现实的手段

在这里插入图片描述计算生态与python语言
大家都知道,自然界就是一个生态,什么是计算生态???
在这里插入图片描述计算机自1946年诞生,诞生之后一直是科学装置,直到计算机走入了商业,走入了寻常百姓家。计算机才成为真正的计算设备,
Richard Stallman 启动GNU项目,他希望开源的做出一套操作系统。因为在那个时代,使用操作系统要付费。而软件和其他产品不同,它没有一个固定的载体。简单说,一次开发出来,它的成本是零。
Richard Stallman 说,能不能集中开发出一个操作系统。更多的人免费使用?
自由软件,指的是软件产品,不再像工业产品一样,通过商业来分发和销售。而是通过互联网,通过免费的拷贝和使用来进行开发。让更多的人能用得起或能用得上软件。

Richard Stallman认为,开发软件是高大上的事情,只有雇佣非常有经验的程序员,让大公司或财团资助他们,他们开发的软件让大家无偿使用,这才叫自由软件运动。
Linus Torvalds验证了另一种方式,他开发了一个小的linux内核,在分发过程中,是由全球的程序员免费的、分布的在完善这个内核,它并不是由一个人或一个组织,集中的雇佣一批优秀的程序员来做这些事情。 而是由广泛的群体,他们在不被付费,他们在贡献的心态中,去完善这个操作系统。最终实现了一个可用的操作系统。
因此说,这两种事件,代表了两种不同的开源运动的阶段和模式。
在这里插入图片描述
经过20余年的发展,验证集市模式成为了真真正正推动信息技术发展,推动开源运动进一步演进的主要模式。
因此有开源思想深入演化和发展,至今形成一个概念叫 计算生态
在这里插入图片描述正是因为有计算生态的产生,正是因为有开源思想的支撑。才使得现在的信息技术已超越其他领域,几倍甚至几十倍的速度在快速演进和发展。
在这里插入图片描述python语言
在这里插入图片描述
在这里插入图片描述数据处理中有个很好的库,叫numpy。
数据处理中,可以达到跟C语言编程运行相当的效率。
而且Numpy底层就是C语言编写的。接口是python语言。
python库之间的相互管理和依存非常普遍。
在这里插入图片描述在这里插入图片描述API是一个人或一个组织通过顶层设计形成。
API是经过设计的产物。不是野蛮生长,发展出来的产物,与生态并不相同。

计算生态有很大的价值。
创新是有不同阶段的。我们现在国家主导我们建设创新型国家,创新驱动发展。但是创新包括三个阶段。
从跟随创新、集成创新、原始创新
在这里插入图片描述
编程的起点是哪里???
学习python语言,要学会站在巨人肩膀上。
编程的目标是快速解决问题
在这里插入图片描述在这里插入图片描述理解和运用计算生态,是编程的法宝。

用户体验与软件产品
什么是用户体验呢?
用户体验是从用户的角度,对产品建立的主观感受和认识。
在这里插入图片描述让人类满意你的程序,这才是最终目的。

因此在我们编写程序时,要考虑提高用户体验的一些方法。
方法一:进度展示
在这里插入图片描述方法二:学会异常处理
在这里插入图片描述在这里插入图片描述在这里插入图片描述基本的程序设计模式
在第一节,就说了一种设计模式,叫IPO(Input Process Output)
在这里插入图片描述
在这里插入图片描述IPO是最基本的一种程序设计模式。

当程序变得复杂起来之后,我们就需要采取高级的程序设计方法。包括自顶向下设计。
我们知道一个复杂的问题,可以分解为若干个简单的问题。
简单的问题可以进一步再分解成更简单的问题。直到所有的小模块,都可以由程序确定的完成。
这就是自顶向下的设计思路。

在学函数的部分,我们又学了模块化设计。
在这里插入图片描述
分模块过程中,我们需要知道什么叫松耦合,什么叫紧耦合。
在这里插入图片描述再进一步,知道配置化设计
程序中,程序执行与数据分离开。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述小结
在这里插入图片描述

python第三方库安装

看见更大的python世界
python有一个全球社区
在这里插入图片描述在这里,可以搜索任何主题的python第三方库。
PyPI:Python Package Index
在这里插入图片描述
在这里插入图片描述在这里插入图片描述其中里面的库有质量好的,也有质量不好的。自己通过别人评价,辅助网站等,进行挑选合适的库。完成自己所需要的功能。
在这里插入图片描述
第三方库pip安装方法
pip安装方法,简单说就是使用python自带的pip安装工具。进行第三方库安装。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果失败,根据错误信息,判断问题。

第三方库的集成安装方法
集成安装,就是结合特定的python安装工具,批量的安装一批库。
这样的安装工具并不多。这里推荐一个
Anaconda 它是一个python数据处理方面的集成开发工具。
支持近800个第三方库。
在这里插入图片描述只要把Anaconda的相关的开发程序下载并安装成。系统中就有了近800个库。还包含了多种主流的python开发工具。
Anaconda是目前数据计算领域相对标准的开发环境。
如果学习python是为了数据分析和数据展示,那么Anaconda是一个非常好的开发环境。

第三方库的文件安装方法
如果遇到一些问题,
比如,有些第三方库,pip可以下载,但安装过程发生错误。
无法安装?
某些第三方库提供的是库的源代码。需要编译再安装。
在这里插入图片描述
在这里插入图片描述加州大学尔湾分校一个教授维护,编译后的库。
有python3.6 python3.7等版本,选择需要的版本 进行安装。

在这里插入图片描述
小结
在这里插入图片描述

模块7 os库的基本使用

和操作系统相关的库
在这里插入图片描述
在这里插入图片描述

os库提供了很多功能,这里只介绍这三种功能相关的函数。
os库之路径操作:
使用os.path子库,进行操作。
这个子库以path为入口,用于操作和处理文件路径。
path指的是目录。或包含文件名称的文件的路径。

import os.path
import os.path as op #op 指的是子库的别名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述a— access 访问
m—modify 修改
c —create 创建
可以用time库的 time.ctime()修改成我们可读的形式
在这里插入图片描述回顾下函数
在这里插入图片描述
os库之进程管理
进程管理指的是使用我们编写的python程序,去调用其他的外部程序。
在这里插入图片描述
在这里插入图片描述
0表示程序正常运行
os库的环境参数
环境参数指的是获取或改变操作系统中的环境信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实例14 第三方库自动安装脚本

问题分析:
在这里插入图片描述
用列表自动安装。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述20个第三方库,是我们安装的目标。
怎么用程序去安装呢????
在这里插入图片描述

#BatchInstall.py
import os
libs = {"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")

自动安装脚本,无非是取出每个第三方库的名称。使用pip install 去安装。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值