第7讲-循环结构2_第1页
第7讲-循环结构2_第2页
第7讲-循环结构2_第3页
第7讲-循环结构2_第4页
第7讲-循环结构2_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机应用基础(计算机应用基础(III)问题求解与计算思维问题求解与计算思维第第7讲讲 循环结构程序设计循环结构程序设计2商务信息学院 信息管理系复习与回顾循环程序设计 While语句的语法 循环体内语句的缩进对程序运行结果的影响 循环控制变量的初始值、推进的设置周度好问题:以下代码错在哪里?郭玲同学说:如果我不定义x直接都用score_listi表示结果就是对的。为什么用了x就不对了翟羽佳问:我的程序错在哪里了?教学目标、重点难点 教学目标 For语句 解决序列类型问题 解决计数循环问题 循环应用举例 重点难点 循环的嵌套和层次分析 语句的缩进对程序运行结果的影响 列表下标的越界问题1 fo

2、r语句语句for 取值取值 in 序列序列:循环体循环体 Python提供的另一个循环机制是提供的另一个循环机制是for语句,它提供了语句,它提供了Python中中最强大的循环结构。最强大的循环结构。Python中的中的for语句与传统的语句与传统的for语句不太一样,语句不太一样,它接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其它接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其中的一个元素。中的一个元素。 循环体循环体是是否否还有值未取吗?还有值未取吗? 列表、元组、字符串都是序列。序列类型有着相同的访问模式:它的每一个元素可以通过指定一个偏移量的方式得到;而多个元素可以通

3、过切片操作的方式得到。 序列操作可以通过很多内建函数来实现,比如求序列长度len( );求最大值max( ) ;最小值min( ) ;求和sum( );排序sorted( ) 等,以上这些内建函数的实现都离不开循环结构。 1.1 for语句用于序列类型 创建创建1个由分数构成的列表,求出所有分数的平均分。个由分数构成的列表,求出所有分数的平均分。方法一:使用方法一:使用Python的内建函数的内建函数sum( )求和,然后再求和,然后再求平均分。求平均分。 score = 70, 90, 78, 85, 97, 94, 65, 80 score70, 90, 78, 85, 97, 94, 6

4、5, 80 aver = sum(score) / 8.0 aver82.375 示例 1计算机编程导论方法二:使用方法二:使用for语句,通过语句,通过序列索引序列索引进行迭代。进行迭代。 【分析分析】(1)以上列表)以上列表score有有8个元素,这个元素,这些元素的序列索引范围是些元素的序列索引范围是“0 7”。(2)本题用到成员测试运算符)本题用到成员测试运算符“in”,如果成员在序列中,测试结果为如果成员在序列中,测试结果为“True”,否则为,否则为“False”。(3)本题用到计算序列长度的内建)本题用到计算序列长度的内建函数函数len( )。(4)本题用到内建函数)本题用到内建

5、函数range( ),range( )函数的完整语法要求提供函数的完整语法要求提供2个个或或3个整型参数:个整型参数:range(start, end, step) score = 70, 90, 78, 85, 97, 94, 65, 80print 所有的分数值是:所有的分数值是:print score #打印列表打印列表sum = 0#以下以下for语句的语句的 i 是迭代项,内建函数是迭代项,内建函数len(score)的执行结果是的执行结果是 8#内建函数内建函数range(8) 返回一个列表返回一个列表0, 1, 2, 3, 4, 5 6,7#运算符运算符 in 是判断迭代项是判断

6、迭代项 i 是否还在列表是否还在列表0, 1,2 3, 4, 5, 6 7中中for i in range(len(score):sum += scorei #循环体循环体对列表元素求和对列表元素求和aver = sum / 8.0 #循环之后,求平均值循环之后,求平均值print naver = , aver示例示例 1-方法方法2程序程序方法三:使用方法三:使用for语句,通过语句,通过序列项序列项运算。运算。 score = 70, 90, 78, 85, 97, 94, 65, 80print 所有的分数值是:所有的分数值是:print score #打印列表打印列表sum = 0#以

7、下以下for语句使用运算符语句使用运算符in判断迭代项判断迭代项 i 是否在列表是否在列表score中中for i in score:sum += i #循环体循环体对列表元素求和对列表元素求和aver = sum / 8.0 #循环之后,求平均值循环之后,求平均值print naver = , aver 循环的嵌套是指在一个循环中又包含另外一个完整的循环,即循环体中又包含循环语句。while循环和for循环可以相互嵌套。 循环嵌套的执行过程是:一次外循环对应着完整的一轮内循环。如下代码对应的运行方式如右图。1.2 利用for语句实现双层循环嵌套for i in range(1, 10, 1)

8、: for j in range(1, i+1, 1): print i, *, j, =, i*j, t print n #每行末尾的换行每行末尾的换行i=1时,时, j=1 输出输出1*1=1 换行换行i=2时时, j=1,2 输出输出2*1=2 2*2=4 换行换行i=3时时 j=1,2,3 输出输出3*1=3 3*2=6 3*3=9 换行换行 请将后续运行分析补充完整使用使用for循环的嵌套结构打印循环的嵌套结构打印9-9乘法表乘法表 【分析分析】9-9乘法表由乘法表由9行组成,每行的列数有规律地递增。行组成,每行的列数有规律地递增。通过观察可以看出,表达式通过观察可以看出,表达式“X

9、 * Y = Z”中的中的X是内循环变量是内循环变量j的取值,的取值,Y是外循环变量是外循环变量i的取值,的取值,Z是是X乘以乘以Y的结果。的结果。 示例 2for i in range(1, 10, 1): #控制行控制行for j in range(1, i+1, 1): #控制列控制列print i, *, j, =, i*j, tprint n #每行末尾的换行每行末尾的换行示例示例 2 程序程序求求以下表达式的值,其中以下表达式的值,其中n值从键盘输入。参考值:当值从键盘输入。参考值:当n = 11时,时,s = 1.833333 。ns321132112111循环应用-示例 3【分

10、析】【分析】v以上以上问题属于数学中的级数求和问题,是使用循环结构解决的一类常见问问题属于数学中的级数求和问题,是使用循环结构解决的一类常见问题。题。v级数求和级数求和问题编程的重点在于通过观察表达式的规律,分析每次循环都要问题编程的重点在于通过观察表达式的规律,分析每次循环都要完成的事件。通常将这些事件进行局部分解,称为完成的事件。通常将这些事件进行局部分解,称为“通式通式”。 v 该题的通式有以下几个:该题的通式有以下几个:分母分母的通式的通式:mu = mu + i变量变量i的通式的通式:i = i + 1当当前项的通式前项的通式:t = 1.0 / mu求和求和的通式的通式:s = s

11、 + t请思考:请思考:(1)变量变量 s 的的初值初值可以可以是是0 吗?吗?(2)循环体循环体内语句的先后顺序可以随意调换吗内语句的先后顺序可以随意调换吗?(3)print语句可以缩进吗?语句可以缩进吗?改写程序改写程序A:不以不以n控制循环的结束,而是最后一项的精度控制循环的结束,而是最后一项的精度控制循环的结束。控制循环的结束。示例 3 程序输出输出“水仙花数水仙花数”。所谓水仙花数是。所谓水仙花数是指指1个个3位的十进制数,其各位数字的位的十进制数,其各位数字的立方和等于该数本身。例如:立方和等于该数本身。例如:153是水是水仙花数,因为仙花数,因为153 = 13 + 53 + 3

12、3 。【分析】【分析】(1)本题需要对)本题需要对100 999范围内的所范围内的所有数一一进行判断。有数一一进行判断。(2)本题的变量)本题的变量 i 既是循环变量,同既是循环变量,同时也是被判断的数。时也是被判断的数。(3)每次循环过程中需要用)每次循环过程中需要用 if 语句进语句进行条件判断。因此本题也是循环嵌套行条件判断。因此本题也是循环嵌套选择的结构。选择的结构。循环应用-示例 4i = 100print(所有的水仙花数是:所有的水仙花数是:)while i = 999: #判断循环是否结束判断循环是否结束bai = int(i / 100) #分离分离 i 的百位数的百位数shi = int(i % 100) / 10) #分离分离 i 的十位数的十位数ge = int(i % 10)#分离分离 i 的个位数的个位数if bai * 3 + shi * 3 + ge * 3 = i: #判断条件判断条件print i #打印水仙花数打印水仙花数i += 1 #变量变量 i 自增自增示例 4 程序改写程序改写程序A:输出这些水仙花数。输出这些水仙花数。循环应用-示例5-P75作业5 请修

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论