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

1.2 程序开发周期

1.1节提过,硬件是指计算机系统中的机电设备(如显示器、键盘和CPU等),软件是指令的集合,也称作程序,用其指挥硬件。程序用于在计算机上解决问题或者执行任务。程序员将问题解决方案或者任务翻译成计算机能够理解的一种语言。当我们写程序时,我们必须牢记计算机只能做我们指示它做的事情。因此,在编写指令时,我们必须非常小心和认真。
1.2.1 在计算机上执行任务
编写指令执行任务的第一步是确定输出是什么—也就是说,明确此任务应该产生什么。第二步是明确获得输出所需的数据或输入。最后一步是确定如何处理输入以获得输出—也就是说,确定使用什么公式或者做事的方法以获得输出。
此解决问题的方法与在代数课上解决现实世界问题所使用的方法相同。例如,考虑以下代数问题:
如果一辆汽车在2小时内行驶了50英里,它的速度是多少?
第一步是确定所需答案的类型。答案应该是一个以英里/每小时为单位的速度值(输出)。获取答案所需的信息是该车移动的距离和时间(输入)。公式
速度 = 距离/时间
用于处理行驶的距离和所花费的时间,以确定速度。也就是说,
速度 = 50英里/2小时

   = 25 英里/小时

该问题求解过程的图示化表示如图1-2所示。

我们将所希望获得的作为输出,然后获取所需的输入并且处理该输入以产生所期望的输出。
后续章节将讨论如何编写程序实现上述操作。但是首先我们看一下编写程序的一般过程。
1.2.2 程序规划
一个烘焙食谱提供了规划的范例。原料和所需的数量由想要烘焙的东西所决定。也就是说,输出决定输入和处理。食谱或者方案,减少了你可能犯的错误。虽然很难想象一个建桥或者建工厂的建筑师会没有一个详细的计划,但是许多程序员(特别是第一门编程课上的学生)试图不事先制定一个细致的计划就编写程序。问题越复杂,计划就应该越复杂。如果你精心设计出一个一步步的计划并且在实际写程序之前测试它,你将在程序上花少得多的时间。
许多程序员使用一系列步骤作为他们程序的计划,称作软件开发生命周期。以下步骤将使你更有效地利用时间,并且帮助你设计能产生所期望输出的、零错误的程序。

  1. 分析:定义问题。
    明确你理解程序应该做什么—也就是说,输出应该是什么。对给定的数据(或输入)以及输入和期望输出之间的关系做到心中有数。
  2. 设计:制定解决问题的计划。
    找到解决问题的一系列精确的逻辑步骤。这一系列步骤称作算法(algorithm)。包括明显的步骤在内的每个细节都应出现在算法中。下一节将讨论三个用于制定逻辑计划的方法:流程图、伪代码和层次结构图。这些工具帮助程序员将一个问题分解为计算机能执行的一系列小任务,从而解决问题。制定计划也包含手工使用有代表性的数据来测试算法的逻辑性,以确定算法的正确性。
  3. 编码:将算法翻译为编程语言。
    编码(coding)是编写程序的术语。在此步骤中,把使用Python编写的程序输入计算机中。程序员使用步骤2设计的算法以及Python的知识。
  4. 测试和纠错:定位并删除程序中的任何错误。
    测试是找到程序中错误的过程。(程序中的错误称作bug,测试和纠错通常称作调试。)随着程序键入,Python会指出程序中的某些类错误。当程序执行的时候,Python会检测出一些其他类型的错误—然而,许多错误,如输入错误、算法的瑕疵或者Python语言规则的不正确使用等,并不能被发现,只能通过认真的检测工作才能得到纠正。例如,本应使用乘号的地方使用了加号。
  5. 完成文档:组织全部描述程序的材料。
    文档的目的是让其他人或者程序员将来能理解此程序。内部文档(注释)包括程序中不执行的语句,但是指出了程序各部分的目的。文档也可能包括程序能做什么事情以及如何使用它的详细描述(例如,所期望输入的类型)。对于商用程序,文档包括使用手册和在线帮助。其他类型的文档包括构建此程序的流程图、伪代码和层次结构图等。虽然文档被列为程序开发周期的最后一部分,但是它应该发生在程序编码之际。

《Python程序设计》——1.2 程序开发周期相关推荐

  1. 郑州大学python程序设计试题_Python程序设计基础_智慧树章节测试题答案

    Python程序设计基础_智慧树章节测试题答案 更多相关问题 [单选题]在人体生长发育过程中,可将哪一年龄段称为少年期 A. 12-16岁 B. 13~17 岁 C. 11-15岁 D. 10-14岁 ...

  2. python程序设计实验报告实验程序流程序列化_Python程序设计_教学大纲_段震.doc

    <Python程序设计>教学大纲 安徽大学 计算机科学与技术 学院 2015 年 10 月课程性质与设置目的要求(前言)<Python程序设计>课程是计算机科学与技术学院各专业 ...

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

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

  4. python程序控制结构实验报告_20193227 实验二《Python程序设计》实验报告

    学号 2019-2020-2 <Python程序设计>实验x报告 课程:<Python程序设计> 班级: 1932 姓名: 张金哲 学号:20193227 实验教师:王志强 实 ...

  5. python程序实验教程_20192428 实验一《Python程序设计》实验报告

    学号 2019-2020-2 <Python程序设计>实验x报告 课程:<Python程序设计> 班级: 1924班 姓名: 魏来 学号:20192428 实验教师:王志强老师 ...

  6. python编写程序 计算1_《Python程序设计》——第1章 计算与问题求解简介 1.1 计算与Python简介-阿里云开发者社区...

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

  7. python程序设计基础课后答案-清华大学出版社-图书详情-《Python程序设计习题解析》...

    前言 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,被列入LAMP(Linux.Apache.MySQL以及Pthon/Perl/PHP),Python语言将代码书写缩进作为语法 ...

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

    复习之前学过的内容 Python程序设计(6)-----基本数据类型 Python程序设计(7)-----字符串类型及其操作 Python程序设计(8)-----程序的控制结构 Python程序设计( ...

  9. python程序设计实验报告实验程序流程序列化_Python使用pickle模块实现序列化功能示例...

    本文实例讲述了Python使用pickle模块实现序列化功能.分享给大家供大家参考,具体如下: Python内置的pickle模块能够将Python对象序列成字节流,也可以把字节流反序列成对象. im ...

最新文章

  1. hibernate开启二级缓存
  2. HOOK -- IAT HOOK 本进程MessageBox
  3. Java中的多重继承与组合vs继承
  4. Python 如何调用 Java
  5. 2021年9月24日和学生隆兴的学术讨论
  6. 【Java方法】统计数组内不同元素个数及每个元素的数量
  7. python导入requests库_windows环境中python导入requests
  8. Redis 3.2.4配置文件翻译
  9. 大数据工程应用 数据分析_大数据工程的方式
  10. NC 一些常用方法总结
  11. Improved autoencoder for unsupervised anomaly detection
  12. 图像分割之分水岭分割算法
  13. AWL词汇 Academic Word List (1)
  14. 35岁的网络工程师入行需要注意什么?
  15. Eclipse的安装和使用
  16. 火狐打不开12306购票网站解决办法
  17. “新基建”奏响项目建设最强音,长沙上半年重大项目完成投资2142亿元
  18. 关于年终奖的故事,看完想跳槽了
  19. 如何写一个拼写检查器-by Peter Norvig
  20. kettle Oracle任务输入报错ora22924,ora01555

热门文章

  1. SQLServer优化二
  2. 销售到出仓所经历的表
  3. 遍历Map keySet和entrySet
  4. 分享几个病毒分析检测网址
  5. mysql查询当前库的实例名_oracle查询数据库名、实例名等
  6. java内存分配模型优点_高并发实战(二)-并发基础 缓存 MESI 内存模型
  7. java获取cpu使用率_2019年阿里P8架构师的解析:最新Java性能测试、调优策略
  8. 求出1到某个数的所有素数
  9. (论文阅读笔记1)Collaborative Metric Learning(一)(WWW2017)
  10. 最优化学习笔记(三)——梯度下降法