您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Python > Python-教程-chapter2
程序基本构件程序设计需要系统化的方法程序设计是用精确的语言告诉计算机该做什么,要精确到最细节处–计算机只会刻板地执行程序2程序设计需要系统化的方法一方面要写大型程序,一方面要精确到细枝末节,这极具挑战性–细节上的微小差错可带来巨大灾难.–例如1996年阿丽亚娜5火箭首次鉴定发射失败的原因是将一个浮点数转换为整数的代码有问题3软件开发过程需求分析制定程序规格设计实现测试与排错维护4软件开发过程需求分析–问题是什么?(尽可能多地去理解)制定程序规格–程序要做什么?(而不是怎么做)对简单程序描述输入输出即可设计–程序怎么做?主要任务是设计出满足规格的算法一般用伪代码给出总体结构,不纠缠细节5软件开发过程实现–用某种程序设计语言翻译设计测试与排错–测试程序是否如预期–排除bug(debugging):定位和修正错误维护–运行中还会不断有问题–大部分程序是永远都不会真正完成了6例:温度转换需求:预报摄氏度,想知道对应华氏度.规格:输入摄氏度,显示输出华氏度.两者对应关系是F=(9/5)C+32.设计算法:简单的IPO(详见下页)实现:翻译成Python程序(详见下页)测试:常用边界数据.如输入0,1007算法与实现伪代码写的算法:输入摄氏度celsius计算华氏度fahrenheit=9/5celsius+32显示输出fahrenheit8算法与实现Python写的程序:#convert.py#AprogramtoconvertCelsiustempstoFahrenheit#by:SuzieProgrammerdefmain():celsius=input(WhatistheCelsiustemperature?)fahrenheit=9.0/5.0*celsius+32printThetemperatureis,fahrenheit,degreesFahrenheit.“main()9程序构件:标识符标识符–变量,函数,模块等的名字–字母下划线开头,后接字母数字下划线–大小写敏感良好编程风格–选择有意义的名字,并且风格统一例:x,X,myName,_,_w,getX,getY,i’am,getX,get-Y,3Q10程序构件:标识符保留字不能用于命名and,assert,break,class,continue,def,del,elif,else,except,exec,finally,for,from,global,if,import,in,is,lambda,not,or,pass,print,raise,return,try,while,yield11程序构件:表达式表达式–能计算出一个数据值的代码片段–字面值-特定的值3.9,“abc”–变量:如x,celsius使用前必须赋值–表达式op表达式:3.9*x*(1x)12程序构件:表达式运算符–不同类型的数据有不同运算–数值数据的运算:–运算符有优先级Python中数值运算符的优先级和结合律与数学相同良好编程风格–用空格,圆括号增加可读性13程序构件:输出语句语句–一个完全的命令称为语句如何描述语句的语法(形式)和语义(含义)?–需要一套元语言来描述,我们用语句模板表示法14程序构件:输出语句输出语句print的语法printprintexprprintexpr,expr,…,exprprintexpr,expr,…,expr,print的语义–自左向右计算表达式的值并在一行上显示,值之间以空格隔开–最后输出换行,但以逗号结尾时不换行15程序构件:赋值语句语法var=expr语义计算表达式expr的值与var关联(associatedwith)一个变量可被多次赋值,但总是持有最后一次赋值的结果16程序构件:赋值语句()关联–id()x=5y=xx=3+4x=2+5程序构件:赋值语句(续)输入赋值语句var=input(prompt)语义–计算prompt的值(通常是字符串),显示该值–等待用户输入一个表达式(以回车键结束)–计算用户输入的表达式,得到input()的值–把input()的值存入var良好风格–用prompt提醒用户输入–prompt以空格结束,易读18程序构件:赋值语句(续)同时赋值var,...,var=expr,...,expr语义–计算右边各表达式的值,分别存入左边的对应变量19程序构件:赋值语句(续)例如:如何交换两个变量的值?–传统语言的做法:引入一临时变量三步:t=xx=yy=t–Python可以:x,y=y,xinput()也可为多个变量同时赋值–多个输入用逗号分隔20程序构件:for循环语法forvarinsequence:body循环次数是确定的(特别地,称为计数循环)sequence是一个值的序列,如[1,3,5,7,9]或range(10)(即[0,1,…,9])body可以是任何语句序列,用左缩进标识语义–var依次取遍sequence的每个值,对每一取值执行一次body21程序构件:for循环举例:foriin[1,2,3]printi123range(n)=[0,…,n-1]foriinrange(3):printi012程序的控制流程序的诸语句通常是顺序执行的,但循环语句改变了控制流,表示一种控制结构控制流可以用流程图直观表达23var=下一个值seq中有更多的值吗?无有body控制流顺序循环分支End
本文标题:Python-教程-chapter2
链接地址:https://www.777doc.com/doc-3942939 .html