Python-程序设计思维

目录

计算思维与程序设计

计算生态与Python语言

用户体验与软件产品

基本的程序设计模式


计算思维与程序设计

计算思维

  • 第3种人类思维特征
  • 逻辑思维:推理和演绎,数学为代表,A->B,B->C,A->C;
  • 实证思维:实验和验证,物理为代表,引力波<-实验;
  • 计算思维:设计和构造,计算机为代表,汉诺塔递归;
  • 抽象和自动化
  • 抽象问题的计算过程,利用计算机自动化求解
  • 计算思维是基于计算机的思维方式
  • 抽象问题的计算过程,利用计算机自动化求解
  • 计算思维基于计算机强大的算力及海量数据
  • 抽象计算过程,关注设计和构造,而非因果
  • 以计算机程序设计为实现的主要手段
#计数求和:计算1-100的计数和
#逻辑思维-数学家高斯的玩儿法
S = (a1+an)*n?2

#计算思维-现代人的新玩儿法
s = 0;
for i in range(1, 101):
    s += i;

#汉诺塔问题
#数学思维 
2^n-1
 
#计算思维
count = 0;
def hanoi(n, src, dst, mid):
    ...(略)
hanoi(3, "A", "B", "C");
print(count);

计算思维与程序设计

  • 编程是将计算思维编程现实的手段

计算生态与Python语言

开源运行

  • 1983, Richard Stallman启动GNU项目
  • 1989, GNU通用许可协议诞生,自由软件时代到来
  • 1991, Linus Torvalds发布了Linux内核
  • 1998, 网景浏览器开源,产生了Mozilla,开源生态逐步建立

计算生态

  • 开源思想深入演化和发展,形成了计算生态;
  • 计算生态以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径;
  • 没有顶层设计、以功能为单位、具备三个特点: 竞争发展、相互依存、迅速更迭

计算生态与Python语言

  • 以开源项目为代表的大量第三方库,Python语言提供 >15万个第三方库;
  • 库的建设经过野蛮生长和自然选择,同一个功能,Python语言2个以上第三方库;
  • 库之间相互关联使用,依存发展,Python库间广泛联系,逐级封装;
  •  社区庞大,新技术更迭迅速,AlphaGo深度学习算法采用Python语言开源;
  • API != 生态

计算生态的价值

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

计算生态的运用

  • 刀耕火种 -> 站在巨人的肩膀上
  • 编程的起点不是算法而是系统
  • 编程如同搭积木,利用计算生态为主要模式
  • 编程的目标是快速解决问题

优质的计算生态

用户体验与软件产品

用户体验:实现功能 -> 关注体验

  • 用户体验指用户对产品建立的主观感受和认识
  • 关心功能实现,更要关心用户体验,才能做出好产品
  • 编程只是手段,不是目的,程序最终为人类服务

提高用户体验的方法

方法1:进度展示

  • 如果程序需要计算时间,可能产生等待,请增加进度展示
  • 如果程序有若干步骤,需要提示用户,请增加进度展示
  • 如果程序可能存在大量次数的循环,请增加进度展示

方法2:异常处理

  • 当获得用户输入,对合规性需要检查,需要异常处理
  • 当读写文件时,对结果进行判断,需要异常处理
  • 当进行输入输出时,对运算结果进行判断,需要异常处理

其他类方法

  • 打印输出:特定位置,输出程序运行的过程信息
  • 日志文件:对程序异常及用户使用进行定期记录
  • 帮助信息:给用户多种方式提供帮助信息

用户体验是程序到产品的关键环节

基本的程序设计模式

IPO

  • I:Input 输入,程序的输入
  • P:Process 处理,程序的主要逻辑
  • O:Output 输出,程序的输出
  • 确定IPO:明确计算部分及功能边界
  • 编写程序:将计算求解的设计变成现实
  • 调试程序:确保程序按照正确逻辑能够正确运行

模块化设计

  • 通过函数或对象封装将程序划分为模块及模块间的表达
  • 具体包括:主程序、子程序和子程序间关系
  • 分而治之:一种分而治之、分层抽象、体系化的设计思想
  • 紧耦合:两个部分之间交流很多,无法独立存在
  • 松耦合:两个部分之间交流较少,可以独立存在
  • 模块内部紧耦合、模块之间松耦合

配置化设计

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

应用开发四个步骤

从应用需求到软件产品

  1. 产品定义:对应用需求充分理解和明确定义;产品定义,而不仅是功能定义,要考虑商业模式
  2. 系统架构:以系统方式思考产品的技术实现;系统架构,关注数据流、模块化、体系架构
  3. 设计与实现:结合架构完成关键设计及系统实现;结合可扩展性、灵活性等进行设计优化
  4. 用户体验:从用户角度思考应用效果;用户至上,体验优先,以用户为中心

本文仅为学习Python记录,资料来源于中国大学MOOC《Python语言设计》—嵩天

猜你喜欢

转载自blog.csdn.net/cheng6023/article/details/102610561
今日推荐