欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《控制结构》PPT课件.ppt

    • 资源ID:5010421       资源大小:264KB        全文页数:39页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《控制结构》PPT课件.ppt

    控制结构,循环语句,2,for循环:回顾,语法for in:语义循环标志变量var取遍序列sequence中的每个值;(该循环自动改变var的值)对var所取的每个值执行一遍循环体body计数循环循环次数是确定的,即序列的长度决定,3,编程实例:求平均值,需求:输入若干个数,求平均值.显然可用熟悉的累积器算法模式算法:输入数值个数n初始化累积变量sum=0循环n次输入数值x累加到sum输出平均值sum/n翻译到Python:avg1.py,4,while循环,avg1.py的缺点:需要用户输入n不适合事先不知道n的场合不知道n则不能用确定的计数循环for不确定的条件循环:while,5,while循环,语法while:语义只要条件成立就反复执行循环体;当条件不成立则执行下一条语句,6,while循环的特点,循环前测试条件(pre-test)若不满足,则循环体一次都不执行循环体影响下一次条件测试否则导致无穷循环例如:for循环改写成while循环i=0#编程者设置while i 10:print i i=i+1#编程者设置若忘了最后一条语句会怎样?,条件,循环体,yes,no,7,常见循环模式:交互循环,用户根据需要来循环执行程序某一部分例如:avg2.py不输入n,由程序自己数输入的值的个数设置一个是否继续循环的标志初始化sum=0#求和初始化count=0#记录数据的个数初始化moredata=yeswhile moredata=yes:输入数据x 累积sum=sum+x 累积count=count+1 询问用户moredata?输出平均值sum/count,8,常见循环模式:哨兵循环,avg2.py不断要用户输入moredata,很烦人.改进:设置一个特殊数据值(称为哨兵)作为终止循环的信号对哨兵唯一的要求就是能与普通数据区分,9,常见循环模式:哨兵循环,模式输入第一个数据while 该数据不是哨兵:处理该数据 输入下一个数据编程实例:avg3.py(负数哨兵)(数据中有负数则无效)avg4.py(空串哨兵),10,常见循环模式:文件循环,avg1avg4都是交互式输入数据的不便处理大数据量一个输入错误即导致需要重新运行程序改进:建立一个数据文件数据处理应用中广泛使用模式:打开数据文件ffor line in f.readlines():处理每个数据编程实例:avg5.py,11,常见循环模式:EOF哨兵循环,一次性读入readlines()一次性把文件的所有行都读入内存但内存是很有限的!可能无法运行分批读入(缓存)readline()每次读入一行需要哨兵(如:空行),标志文件结束(EOF)line=f.readline()while line!=“”:处理该行 line=f.readline()编程实例:avg6.py,12,常见循环模式:嵌套循环,嵌套循环:一个循环语句的循环体内有另一个循环语句用途:遍历一维空间的元素只需一个循环变量,遍历二维空间的元素需要两个循环变量,遍历n维空间的元素需要n个循环变量如:矩阵for i in range(10):for j in range(20):print xij,13,常见循环模式:嵌套循环,例如:假设数据文件的每一行有多个数据.编程实例:avg7.py顶层循环仍如avg6.py但每次顶层循环内,需要另一个循环来处理该行上的多个数据,14,常见循环模式:嵌套循环,4-18题,word count 主要代码:lines=file.readlines()linecount=len(lines)wordcount=0charcount=0for line in lines:words=string.split(line)wordcount+=len(words)for word in words:charcount+=len(word)print linecount,wordcount,charcount,15,其他循环结构:后测试循环,问题:输入验证检查用户输入是否符合要求,不符合就要求用户重新输入,直至符合为止这是一种后测试循环:执行循环体后才测试条件循环体至少执行一次直至条件成立才退出循环有些语言提供repeatuntil语句,16,其他循环结构:后测试循环,Python未提供专门语句但可用while实现,只需确保首次进入while时条件成立x=1while x 0:,17,break语句,语法:break语义:退出break所处循环(通常是无穷循环)应用例:实现后测试循环while 1:x=input(Enter a nonnegative number:)if x=0:break 两种希望:(1)本次循环到此为止,进入下次循环-continue(2)结束循环,退出循环体-break,18,break语句,比用一个非法值(如前面的1)来强制while循环一次的做法好.试一试:为两种做法都加一句数据错误报警信息慎用break(非正常控制流,破坏了程序结构)尤其是一个循环体用多个break出口作用和某些程序语言中的go to语句类似,19,Loop and a Half半路循环、半途退出问题,循环出口在循环体中间.例如while 1:x=input(Enter a nonnegative number:)if x=0:break print negative!实现哨兵循环:while 1:读取下一数据x if x是哨兵:break 处理x,20,布尔值计算,布尔表达式:以True/False为值简单布尔表达式:关系运算(relop):=,!=数值比较字符串比较:按字典序字母序由编码(ASCII等)决定.如:大写字母在小写字母前,21,布尔值计算,复杂布尔表达式:由布尔表达式及布尔运算构成布尔运算(逻辑联结词)二元运算:and,or(并且,或者)and or 一元运算:not(非)not,22,and的定义,and表示“并且”:P and Q为真 iff P和Q都为真用真值表表示更直观,23,or的定义,or表示“或者”:P or Q为假 iff P和Q都为假,24,or的定义,or表示“或者”:P or Q为假 iff P和Q都为假“可兼或”:or这次演出,我或者跳舞,或者唱歌“不可兼或”:互斥的涵义,即二选一我今天晚上或者在家看电视,或者到体育场看球赛。,25,not的定义,not表示“否定”:not P为真 iff P为假.,26,布尔运算符的优先级,not最高,and次之,or最低思考:a or not b and c何意?最好使用括号!,27,例:判断两点是否位置相同,嵌套if-elseif p1.getX()=p2.getX():if p1.getY()=p2.getY():#points are the same else:#points are differentelse:#points are different用布尔运算符if p1.getX()=p2.getX()and p1.getY()=p2.getY():#points are the sameelse:#points are different,28,例:模拟racquetball的结束,用计算机模拟自然现象,分析可能的结果先得15分者胜while not(scoreA=15 or scoreB=15):#这里用not(and)#continue playing先得15分或7:0者胜a=15 or b=15 or(a=7 and b=0)or(b=7 and a=0)至少要多2分才胜(a=15 and a-b=2)or(b=15 and b-a=2)或(a=15 or b=15)and abs(a-b)=2,29,布尔代数,布尔运算遵循的代数定律a and False=False(零律)a and True=a(同一律)a or False=a(同一律)a or True=True(零律),30,布尔代数,布尔运算遵循的代数定律分配率a or(b and c)=(a or b)and(a or c)a and(b or c)=(a and b)or(a and c)双重否定not(not a)=a摩根律not(a or b)=(not a)and(not b)not(a and b)=(not a)or(not b),31,利用布尔代数简化条件,例如:racquetball结束条件while not(scoreA=15 or scoreB=15):#continue playing while(not scoreA=15)and(not scoreB=15):#continue playing while scoreA!=15 and scoreB!=15:#continue playing,32,布尔表达式用作控制结构,Python 2.7具有内建bool类型只有两个值:True和False此前版本用整数1和0Python的其他任何内建类型都可解释为布尔值非0整/浮点/长整数解释为True0解释为False非空字符串解释为True空串解释为False,33,布尔表达式用作控制结构,布尔运算符的操作语义(计算顺序)x and y:若x为假,返回x;否则返回yx or y:若x为假,返回y;否则返回xnot x:若x为假,返回1;否则返回0符合布尔逻辑走捷径,34,例:Python布尔运算的陷阱,期待用户输入y或Y的代码:while ans=y or ans=Y:不能写成while ans=y or Y:因为后者总是计算到True!(Why?),35,例:Python布尔运算的灵活性,期待用户输入,若无输入则赋予缺省值的代码:ans=raw_input(What flavor vanilla?)if ans!=:flavor=anselse:flavor=vanillaans=raw_input(What flavor vanilla?)if ans:flavor=anselse:flavor=vanillaans=raw_input(What flavor vanilla?)flavor=ans or vanillaflavor=raw_input(What flavor vanilla?)or vanilla,36,作业,EX 8.6 P134 8,10,37,课程讲授内容调整,4月 9日 上机改为上课4月16日 上课4月23日 上课改为上机4月28日 上机(五一节日学校调整)5月 7日 照常,38,End,39,真值表,(not P)and Q,

    注意事项

    本文(《控制结构》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开