vhile循环的特点 循环前测试条件(pre-test) -若不满足,则循环体一次都不执行 条件 no 循环体影响下一次条件测试 一否则导致无穷循环 yes - 例如:for循环改写成while循环 i=0 #编程者设置 循环体 while i 10: print i 1=i+1#编程者设置 ■若忘了最后一条语句会怎样 6
条件 循环体 yes no
常见循环模式:交互循环 用户根据需要来循环执行程序某一部分 例如:avg2.py 不输入n,由程序自己数输入的值的个数 一设置一个是否继续循环的标志 初始化sum=0#求和 初始化count=0#记录数据的个数 初始化moredata=yes while moredata yes: 输入数据x 累积sum=sum+x 累积count=count+1 询问用户noredata? 输出平均值sum/count 7
常见循环模式:哨兵循环 avg2.py不断要用户输入moredata,很烦 人 改进:设置一个特殊数据值(称为哨兵)作为 终止循环的信号 对哨兵唯一的要求就是能与普通数据区分 8
常见循环模式:哨兵循环 模式 输入第一个数据 while该数据不是哨兵: 处理该数据 输入下一个数据 编程实例: avg3.py(负数哨兵)(数据中有负数则无效) avg4.py(空串哨兵) 9
常见循环模式:文件循环 avg1wavg4都是交互式输入数据的 -不便处理大数据量 一一个输入错误即导致需要重新运行程序 改进:建立一个数据文件 一数据处理应用中广泛使用 模式: 打开数据文件f for line in f.readlines(): 处理每个数据 编程实例avg5.py 10