复习之前学过的内容

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 2n−1个步骤能够将所有圆盘从一个柱挪到另一个柱。

从上可知,逻辑思维更多的是靠数学推理,形成公式来获得结果。
而计算思维更多的是模拟运算的过程,无论是模拟求和还是模拟汉诺塔递归,还是模拟圆周率的撒点。
我是模拟过程,并且利用计算机来完成大量的运算。

大例子:天气预报 你知道天气预报怎么做出来的吗????(我不知道)
在十几年前,中国大面积地区的天气预报,靠的都是实证思维和逻辑思维。简单说就是实证思维。
我们查阅当地的历史天气的数据。并且根据这样的经验,来猜测第二天的温度。我们说,实证思维是用物理的经验的东西构造出未来的值。
随着计算机尤其是超级计算机的发展,这些年中大量气象部门装备的超级计算机,他们可以利用计算机来演算出未来的天气情况。
那么演算天气需要一个模型叫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 去安装。

Python程序设计(13)-----程序设计方法学相关推荐

  1. python程序设计小程序_请问有会用Python编程语言编几个小程序的吗?谢谢题目如下。...

    展开全部 题目1if __name__ == '__main__': number = input("Please input a number:") number = int(n ...

  2. Python——程序设计方法学

    程序设计方法学 8.1 实例13:体育竞技分析 8.1.1"体育竞技分析"问题分析--高手过招,胜负只在毫厘之间 需求:毫厘是多少?如何科学分析体育竞技比赛? 输入:球员的水平 输 ...

  3. Python_note8 程序设计方法学+Python第三方库安装+os库

    实例13 体育竞技分析 自顶向下,解决复杂问题的有效方法,将一个小问题表达为若干小问题组成的形式,使用同样方法进一步解决小问题直至可以用计算机简单解决:自底向上 理解自顶向下的设计思维:分而治之:理解 ...

  4. python程序设计机械工业出版社课后答案-Python 3程序设计基础

    图书简介 配套资源:电子课件.教学大纲.源代码.习题答案 本书特色: 内容精练,实训题目经典实用,明确定位面向初.中级读者,由"入门"起步,侧重"提高". 附录 ...

  5. 程序设计方法学-python

    程序设计方法学 文章目录 程序设计方法学 实例:体育竞技分析 python程序设计思维 计算思维与程序设计 基本的程序设计模式 步骤 OS库的基本使用 介绍 OS库路径操OS作 OS库进程管理 OS库 ...

  6. 轻轻松松学会Python入门十:程序设计方法学

    目录 实例13,体育竞技分析 一,自顶向下和自底向上 1,自顶向下(设计) 2,自顶向上(执行) 二,程序总体框架及步骤 Python程序设计思维 一,计算思维与程序设计 1,计算思维:第三种人类思维 ...

  7. 中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学)

    中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学) 第1周 Python初探 为project设置解释器 保留字 第1周课后测试题 第2周 基本运算.条件分支和输出格式控制 ...

  8. python第五天 程序设计方法学

    程序设计方法学 体育竞技分析 需求:如何科学分析体育竞技比赛 输入球员的水平,能否输出比赛成绩??? 简单来说就是不断地进行比赛,最后选手的能力的而显示的输赢情况,会越来越精确 比赛规则 简单来说,两 ...

  9. 《Python程序设计》——1.2 程序开发周期

    本节书摘来自华章计算机<Python程序设计>一书中的第1章,第1.2节,作者:[美]戴维 I.施奈德(David I. Schneider)著,更多章节内容可以访问云栖社区"华 ...

最新文章

  1. 重磅!库克官宣苹果放弃英特尔,全面采用自研芯片,MAC迎来历史转折点
  2. 用js实现放大镜的效果
  3. swfupload--php上传说明
  4. 怎么样用vue ui来创建一个vue项目
  5. html组态图动态拖拽,基于HTML5的Drag and Drop生成图片Base64信息
  6. 九阴真经 第十五层--node.js 第2天
  7. 给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
  8. vue-cli3中安装lib-flexible和px2rem
  9. new Date()时间
  10. Elasticsearch 实战2:ES 项目实战(二):基本操作、批处理、高级查询
  11. 计算机制图缺点,CAD与其它制图软件相比较的优缺点
  12. 20大中国式弱点营销
  13. 含有共轭复数根的Jordan分解
  14. Java 批量下载图片并压缩为Zip
  15. Fruit (hdu 2152)
  16. pc端下载微信视频号中的视频
  17. 字符集详解(一看就懂系列)
  18. 自学编程系列——4 Numpy数组
  19. 上帝视角实现 引用大神,不是原创
  20. 3分钟学会制作动态折线图!

热门文章

  1. rs多个设备同时传输_华为账号真的能同时登陆多个设备吗?华为官方的介绍来了...
  2. 小程序实践(六)--- 购物车
  3. 14.OracleRAC打补丁执行:./datapatch -verbose 夯死
  4. Docker发布/上传镜像到dockerhub下载/拉取镜像删除dockerhub镜像
  5. 寻找有缘人,你有红酒,我有故事,中小企业ERP,物流应用方案 24小时为您守候
  6. 物联网LoRa系列-8:LoRa终端应用程序开发环境的搭建
  7. 股票量化交易软件所具有的优势又说明了什么吗?
  8. Android MVP模式学习
  9. 使用pdfbox进行pdf和图片之间的转换
  10. 一个多月的时间总算把PMP证书考下来了