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

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. 完成文档:组织全部描述程序的材料。
    文档的目的是让其他人或者程序员将来能理解此程序。内部文档(注释)包括程序中不执行的语句,但是指出了程序各部分的目的。文档也可能包括程序能做什么事情以及如何使用它的详细描述(例如,所期望输入的类型)。对于商用程序,文档包括使用手册和在线帮助。其他类型的文档包括构建此程序的流程图、伪代码和层次结构图等。虽然文档被列为程序开发周期的最后一部分,但是它应该发生在程序编码之际。
时间: 2024-08-02 01:57:35

《Python程序设计》——1.2 程序开发周期的相关文章

python实现简单socket程序在两台电脑之间传输消息的方法_python

本文实例讲述了python实现简单socket程序在两台电脑之间传输消息的方法.分享给大家供大家参考.具体分析如下: python开发简单socket程序在两台电脑之间传输消息,分为客户端和服务端,分别在两台电脑上运行后即可进行简单的消息传输,也可以在一台电脑上测试,设置两个不同的端口即可. # Save as server.py 服务端代码 # Message Receiver import os from socket import * host = "" port = 13000

python文件语句解析-Python的这段程序怎么读啊?求大神,我刚学,一头雾水

问题描述 Python的这段程序怎么读啊?求大神,我刚学,一头雾水 max = 10 sum = 0 extra = 0 for num in range(1,max) if num % 2 and not num %3: sum +=num else: extra +=1 print sum. #sum会是多少,输出的extra是多少? 特别是这句if num % 2 and not num %3:,是可以理解成不能同时被2和3整除的数吗? 虽然问题很low,原谅一个菜鸟吧 解决方案 if n

《Python程序设计》——第2章 核心对象、变量、输入和输出 2.1 数值

第2章 核心对象.变量.输入和输出 2.1 数值 计算机所处理的大量数据中均含有数值.在编程术语中,数值称为数字字面量(number literal).本节将介绍对数值的各种操作以及数值显示的方式.2.1.1 两种数值类型:整型和浮点型一个没有小数点的数字称为整型(int,integer的简写),一个带有小数点的数字称为浮点型(float,floating-point的简写). 2.1.2 算术运算符五种基本的算术运算符是加.减.乘.除和幂运算.Python中加.减.除的运算符分别使用标准的符号

python连接mssql-求写个Python—mssql相关的程序

问题描述 求写个Python-mssql相关的程序 连接mssql数据库,然后对数据库的某一表的某一记录的某一字段进行数据修改(注:数据由用户输入),修改后输出该条记录

使用Python实现Hadoop MapReduce程序

转自:使用Python实现Hadoop MapReduce程序 英文原文:Writing an Hadoop MapReduce Program in Python 根据上面两篇文章,下面是我在自己的ubuntu上的运行过程.文字基本采用博文使用Python实现Hadoop MapReduce程序,  打字很浪费时间滴.  在这个实例中,我将会向大家介绍如何使用Python 为 Hadoop编写一个简单的MapReduce程序. 尽管Hadoop 框架是使用Java编写的但是我们仍然需要使用像C

用python + hadoop编写分布式程序(一):原理介绍

MapReduce与HDFS简介 什么是Hadoop? &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;     Google为自己的业务需要提出了编程模型MapReduce和分布式文件系统Google File System,并发布了相关论文(可在Google Research的网站上获得: GFS . MapReduce). Doug Cutting和Mike Cafarella在开发搜索引擎Nutch时对这两

用python + hadoop编写分布式程序

什么是Hadoop? Google为自己的业务需要提出了编程模型MapReduce和分布式文件系统Google File System,并发布了相关论文(可在Google Research的网站上获得: GFS . MapReduce). Doug Cutting和Mike Cafarella在开发搜索引擎Nutch时对这两篇论文做了自己的实现,即同名的MapReduce和HDFS,合起来就是Hadoop. MapReduce的Data flow如下图,原始数据经过mapper处理,再进行par

《Python程序设计》——1.3 编程工具

1.3 编程工具 本节讨论一些特殊的算法,并描述三个用于将算法转化为计算机程序的工具:流程图.伪代码和层次结构图.你每天都使用算法进行决策以及执行任务.例如,当你寄信时,你必须决定在信封上贴几张邮票.一个经验法则是,每五页或不足五页信纸使用一张邮票.假如一个朋友让你决定在信封上贴几张邮票,下面的算法将完成此任务: 获取信纸的页数,称其为Sheets. (输入) 将Sheets除以5. (处理) 如果需要,将商向上取整,称其为Stamps. (处理) 返回Stamps数目. (输出)上述算法将信纸

Python选课系统开发程序_python

本文程序针对Python选课系统进行开发,供大家参考,具体内容如下 角色:学校.学员.课程.讲师要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 3. 课程包含,周期,价格,通过学校创建课程 4. 通过学校创建班级, 班级关联课程.讲师 5. 创建学员时,选择学校,关联班级 5. 创建讲师角色时要关联学校, 6. 提供两个角色接口 7. 学员视图, 可以注册, 交学费, 选择班级, 8. 讲师视