当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)CT08 控制结构——循环语句

资源类别:文库,文档格式:PPT,文档页数:25,文件大小:317.5KB,团购合买
点击下载完整版文档(PPT)

控制结构 循环语句

控制结构 循环语句

for循环:回顾 。语法 for in : ·语义:循环标志变量var取遍序列sequence中的每 个值;对var所取的每个值执行一遍循环体body. Lu Chaojun,SJTU 2

Lu Chaojun, SJTU 2 for循环:回顾 • 语法 for in : • 语义:循环标志变量var取遍序列sequence中的每 个值;对var所取的每个值执行一遍循环体body

编程实例:求平均值 ·需求:输入若干个数,求平均值 ·显然可用熟悉的累积器算法模式 ·算法: 输入数值个数n 初始化累积变量sum=0 循环n次 输入数值x 累加到sum 输出平均值sum/n o 翻译到Python:avgl.py Lu Chaojun,SJTU 3

编程实例:求平均值 • 需求:输入若干个数,求平均值. • 显然可用熟悉的累积器算法模式 • 算法: 输入数值个数n 初始化累积变量sum=0 循环n次 输入数值x 累加到sum 输出平均值sum/n • 翻译到Python: avg1.py Lu Chaojun, SJTU 3

while循坏 ·avgl.py的缺点:需要用户输入n -不适合事先不知道n的场合 ·不知道n则不能用确定的计数循环for 。不确定的条件循环:while 一语法 while : 一语义:只要条件成立就反复执行循环体,当条 件不成立则执行下一条语句. Lu Chaojun,SJTU 4

Lu Chaojun, SJTU 4 while循环 • avg1.py的缺点:需要用户输入n – 不适合事先不知道n的场合 • 不知道n则不能用确定的计数循环for • 不确定的条件循环:while – 语法 while : – 语义:只要条件成立就反复执行循环体;当条 件不成立则执行下一条语句. Lu Chaojun, SJTU

while循环的特点 ·循环前测试条件 一若不满足,则循环体一次都不执行 ·循环体影响下一次条件测试 no 条件 一否则导致无穷循环 -例如:for循环改写成while循环 yes i=0 while i<10: 循环体 print i i=1+1 人若忘了最后一条语句会怎样? Lu Chaojun,SJTU 5

Lu Chaojun, SJTU 5 while循环的特点 • 循环前测试条件 – 若不满足,则循环体一次都不执行 • 循环体影响下一次条件测试 – 否则导致无穷循环 – 例如:for循环改写成while循环 i = 0 while i < 10: print i i = i + 1 ©若忘了最后一条语句会怎样? 条件 循环体 yes no

常见循环模式:交互循环 ·用户根据需要来循环执行程序某一部分 例如:avg2.py -不输入n,由程序自己数输入的值的个数 一设置一个是否继续循环的标志 初始化sum=0 初始化count=0 初始化moredata=yes while moredata =yes: 输入数据x 累积sum=sum+x 累积count=count+1 询问用户moredata? 输出平均值sum/count Lu Chaojun,SJTU 6

常见循环模式:交互循环 • 用户根据需要来循环执行程序某一部分 • 例如:avg2.py – 不输入n,由程序自己数输入的值的个数 – 设置一个是否继续循环的标志 初始化sum = 0 初始化count = 0 初始化moredata = yes while moredata = yes: 输入数据x 累积sum = sum + x 累积count = count + 1 询问用户moredata? 输出平均值sum/count Lu Chaojun, SJTU 6

常见循环模式:哨兵循环 ·avg2.py不断要用户输入moredata,很烦人. ·改进:设置一个特殊数据值(称为哨兵)作为终止 循环的信号 一对哨兵唯一的要求就是能与普通数据区分 。模式: 输入第一个数据 while该数据不是哨兵: 处理该数据 输入下一个数据 09 编程实例:avg3.py(负数哨兵),avg4.py(空串哨兵) Lu Chaojun,SJTU 7

常见循环模式:哨兵循环 • avg2.py不断要用户输入moredata,很烦人. • 改进:设置一个特殊数据值(称为哨兵)作为终止 循环的信号. – 对哨兵唯一的要求就是能与普通数据区分 • 模式: 输入第一个数据 while 该数据不是哨兵: 处理该数据 输入下一个数据 • 编程实例:avg3.py(负数哨兵),avg4.py(空串哨兵) Lu Chaojun, SJTU 7

常见循环模式:文件循环 ·avgl~avg4都是交互式输入数据的 一不便处理大数据量 一一个输入错误即导致需要重新运行程序 ·改进:建立一个数据文件 一数据处理应用中广泛使用 ·模式: 打开数据文件f for line in freadlines() 处理每个数据 0 编程实例:avg5.py Lu Chaojun,SJTU 8

常见循环模式:文件循环 • avg1~avg4都是交互式输入数据的 – 不便处理大数据量. – 一个输入错误即导致需要重新运行程序. • 改进:建立一个数据文件. – 数据处理应用中广泛使用 • 模式: 打开数据文件f for line in f.readlines(): 处理每个数据 • 编程实例:avg5.py Lu Chaojun, SJTU 8

常见循环模式:EOF哨兵循环 ·一次性读入 -readlines()一次性把文件的所有行都读入内存 一但内存是很有限的!可能无法运行 ·分批读入 - readline()每次读入一行 需要哨兵(如:空行),标志文件结束(EOF) line f.readline() while1ine!=ww: 处理该行 line f.readline() - 编程实例:avg6.py Lu Chaojun,SJTU 9

常见循环模式:EOF哨兵循环 • 一次性读入 – readlines()一次性把文件的所有行都读入内存 – 但内存是很有限的!可能无法运行. • 分批读入 – readline()每次读入一行 – 需要哨兵(如:空行),标志文件结束(EOF) line = f.readline() while line != “”: 处理该行 line = f.readline() – 编程实例:avg6.py Lu Chaojun, SJTU 9

常见循环模式:嵌套循环 ·嵌套循环:一个循环语句的循环体内有另一个循 环语句 ·用途:遍历一维空间的元素只需一个循环变量, 遍历二维空间的元素需要两个循环变量, 遍历n维空间的元素需要n个循环变量. ·例如:假设数据文件的每一行有多个数据 编程实例:avg7.py 顶层循环仍如avg6.py 一但每次顶层循环内,需要另一个循环来处理该行上的 多个数据 Lu Chaojun,SJTU 10

常见循环模式:嵌套循环 • 嵌套循环:一个循环语句的循环体内有另一个循 环语句. • 用途:遍历一维空间的元素只需一个循环变量, 遍历二维空间的元素需要两个循环变量,……, 遍历n维空间的元素需要n个循环变量. • 例如:假设数据文件的每一行有多个数据. • 编程实例:avg7.py – 顶层循环仍如avg6.py – 但每次顶层循环内,需要另一个循环来处理该行上的 多个数据 Lu Chaojun, SJTU 10

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共25页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有