第7讲-循环结构2

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

循环应用-示例 4
输出“水仙花数”。所谓水仙花数是 指1个3位的十进制数,其各位数字的 立方和等于该数本身。例如:153是水 仙花数,因为153 = 13 + 53 + 33 。 【分析】 (1)本题需要对100 ~ 999范围内的所 有数一一进行判断。 (2)本题的变量 i 既是循环变量,同 时也是被判断的数。 (3)每次循环过程中需要用 if 语句进 行条件判断。因此本题也是循环嵌套 选择的结构。
教学目标、重点难点
• 教学目标
– For语句
• 解决序列类型问题 • 解决计数循环问题
– 循环应用举例
• 重点难点
– 循环的嵌套和层次分析 – 语句的缩进对程序运行结果的影响 – 列表下标的越界问题
1 for语句
Python提供的另一个循环机制是for语句,它提供了Python中 最强大的循环结构。Python中的for语句与传统的for语句不太一样, 它接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其 中的一个元素。
方法二:使用for语句,通过序列索引进行迭代。
【分析】
(1)以上列表score有8个元素,这 些元素的序列索引范围是“0 ~ 7”。
(2)本题用到成员测试运算符“in”, 如果成员在序列中,测试结果为 “True”,否则为“False”。 (3)本题用到计算序列长度的内建 函数len( )。
(4)本题用到内建函数range( ), range( )函数的完整语法要求提供2个 或3个整型参数: range(start, end, step)
计算机编程导论
示例 1-方法2程序
score = [70, 90, 78, 85, 97, 94, 65, 80] print '所有的分数值是:' print score #打印列表 sum = 0
#以下for语句的 i 是迭代项,内建函数len(score)的执行结果是 8 #内建函数range(8) 返回一个列表[0, 1, 2, 3, 4, 5 6,7] #运算符 in 是判断迭代项 i 是否还在列表[0, 1,2 3, 4, 5, 6 7]中
循环应用-示例 3
求以下表达式的值,其中n值从键盘输入。参考值:当n = 11时, s = 1.833333 。
s 1 1 1 1 1 2 1 2 3 1 2 3 n
【分析】 以上问题属于数学中的级数求和问题,是使用循环结构解决的一类常见问 题。 级数求和问题编程的重点在于通过观察表达式的规律,分析每次循环都要 完成的事件。通常将这些事件进行局部分解,称为“通式”。
课堂练习与课后作业
• 课堂练习
– 示例2-4
• 课后作业
– P56:1(3),2,3
示例 4 程序
i = 100 print('所有的水仙花数是:') 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 自增
改写程序A: 输出这些水仙花数。
循环应用-示例5-P75作业5
• 请修改周同学程序中的错误,并请手工演示其程序的运行过程。 • 请手工演示以下程序的运行过程。分析比较break的作用。
思考1
• 思考并编程:难度级别C。 • 1.请用列表保存税率和速算扣除数,改写 选择结构这一讲的计算税后收入的思考题 • 2.输入单位一批职工的姓名和税前收入, 按格式打印输出该批职工的:姓名,税前 收入,四金,应交税和税后收入。
for i in range(1, 10, 1): 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 换行 ……
示例 1 创建1个由分数构成的列表,求出所有分数的平均分。
方法一:使用Python的内建函数sum( )求和,然后再 求平均分。
>>> score = [70, 90, 78, 85, 97, 94, 65, 80] >>> score [70, 90, 78, 85, 97, 94, 65, 80] >>> aver = sum(score) / 8.0 >>> aver 82.375
• 请将后续运行分析补充完整
示例 2
使用for循环的嵌套结构打印9-9乘法表
【分析】9-9乘法表由9行组成,每行的列数有规律地递增。 通过观察可以看出,表达式“X * Y = Z”中的X是内循环变量 j的取值,Y是外循环变量i的取值,Z是X乘以Y的结果。
示例 2 程序
for i in range(1, 10, 1): #控制行 for j in range(1, i+1, 1): #控制列 print i, '*', j, '=', i*j, '\t’ print '\n' #每行末尾的换行
计算机应用基础(III) ——问题求解与计算思维
第7讲 循环结构程序设计2
商务信息学院
信息管理系
复习与回顾
• 循环程序设计 – While语句的语法 – 循环体内语句的缩进对程序运行结果的影响 – 循环控制变量的初始值、推进的设置 • 周度好问题:以下代码错在哪里?
翟羽佳问:我的程序错在哪里了? 郭玲同学说: 如果我不定 义x直接都用 score_list[i] 表示结果就 是对的。 为什么用了x 就不对了
该题的通式有以下几个:
分母的通式:mu = mu + i 变量i的通式:i = i + 1
ຫໍສະໝຸດ Baidu
当前项的通式:t = 1.0 / mu
求和的通式:s = s + t
示例 3 程序
请思考: (1)变量 s 的初值可以是0 吗? (2)循环体内语句的先后顺序可以随意调换吗? (3)print语句可以缩进吗? 改写程序A: 不以n控制循环的结束,而是最后一项的精度 控制循环的结束。
#以下for语句使用运算符in判断迭代项 i 是否在列表score中
for i in score: sum += i
#循环体——对列表元素求和
aver = sum / 8.0 #循环之后,求平均值 print '\naver = ', aver
1.2 利用for语句实现双层循环嵌套
• 循环的嵌套是指在一个循 环中又包含另外一个完整 的循环,即循环体中又包 含循环语句。while循环和 for循环可以相互嵌套。 • 循环嵌套的执行过程是: 一次外循环对应着完整的 一轮内循环。如下代码对 应的运行方式如右图。
for 取值 in 序列: 循环体
还有值未取吗?

是 循环体
1.1 for语句用于序列类型
• 列表、元组、字符串都是序列。序列类型有着 相同的访问模式:它的每一个元素可以通过指 定一个偏移量的方式得到;而多个元素可以通 过切片操作的方式得到。 • 序列操作可以通过很多内建函数来实现,比如 求序列长度len( );求最大值max( ) ;最小值 min( ) ;求和sum( );排序sorted( ) 等,以上这 些内建函数的实现都离不开循环结构。
for i in range(len(score)): sum += score[i] #循环体——对列表元素求和 aver = sum / 8.0 #循环之后,求平均值 print '\naver = ', aver
方法三:使用for语句,通过序列项运算。
score = [70, 90, 78, 85, 97, 94, 65, 80] print '所有的分数值是:' print score #打印列表 sum = 0
相关文档
最新文档