大学Python学习课件第7讲-循环结构-for
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
示例1-通过序列索引进行迭代(方法二)
方法二:使用for语句,通过序列索引进 行迭代。程序保存为07_aver2.py
【分析】
要求得列表元素的平均值,首先要使用循环 结构求得所有元素的总和,然后再将总和除 以元素个数即可得到列表元素平均值。
示例1-方法2程序说明
for循环的表达式中使用内建函数len()获得score序列长度; 使用range()函数创建了要迭代的序列[0,1,2,3,4,5,6,7],变
s
1
1
1
2
1
1 2
3
1
2
1 3
Байду номын сангаас
n
【分析】 以上问题属于数学中的级数求和问题,是使用循环结构解决的一类常 见问题。 级数求和编程的重点在于找到表达式的规律,分析每次循环都要完成 的事件,写出“通式”。
该题的通式有以下几个:
➢ 分母的通式(所有分母看成:0+1+2+…+i):mu = mu + i (mu初值为0,i 初值为1)
step:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1);Step值可以为负数,如果为负数,则start的值大于end的值
示例 1-方法2程序
示例 1-通过序列索引进行迭代(方法三)
方法三:使用for语句,通过序列项运算。程序保存为 07_aver3.py
start<=k<end,k每次递增step,step不能为0
作用:
产生一个列表
参数含义:
start: 计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5), 结果是[0, 1, 2, 3, 4]
end: 计数到end结束,但不包括end。例如:range(0, 5)的结果是[0, 1, 2, 3, 4]没有5
量i对该列进行迭代,每循环一次取出列表中的一项作为列 表元素的下标。
本题用到成员测试运算符“in”,如果成员在序列中,测试结 果为“True”,否则为“False”。
range( )函数说明
内建函数range( ),
range(start, end, step) range( )函数会产生1个包含所有等差数列级数k的列表,k的范围
如果不在,则结束循环。
是 循环体
for语句
for 变量 in 序列或迭代器: 循环体
else: else语句块
for循环正常退出后,执行else 语句块;
如果是因为执行循环体中的 break语句而导致循环退出, else语句块不会执行。
还有值未取吗? 否 是
循环体
Else语句块
for语句用于序列类型
列表、元组、字符串都是序列。 序列类型有着相同的访问模式:它的每一个元素可以通过
指定一个偏移量的方式得到;而多个元素可以通过切片操 作的方式得到。 序列操作可以通过很多内建函数来实现,这些内建函数的 实现都离不开循环结构。
求序列长度len( ); 求最大值max( ) ;最小值min( ) ; 求和sum( ); 排序sorted( ) 等
循环嵌套
循环的嵌套是指在一个循环中又包含另外一个完整的循环, 即循环体中又包含循环语句。
循环嵌套的执行过程是:一次外循环对应着完整的一轮内 循环。
while循环和for循环可以相互嵌套。
示例2-利用for语句实现双层循环嵌套
【示例2】使用for循环的嵌套结构打印9-9乘法表 。程序 保存为07_comp.py
示例1-通过序列索引进行迭代 (方法一)
【示例1】创建1个由分数构成的列表,求出所有分数的平 均分。
方法一:使用Python的内建函数sum( )求和,然后再求平 均分。程序保存为07_aver1.py
示例1-方法1程序
思考题
如果不用sum函数,如何利用while循环计算列表中的和? 程序示例
Python提供的另一个循环机制是 for语句,它提供了Python中最强 大的循环结构。
for 取值 in 序列: 循环体
Python中的for语句接受可迭代对 象(例如序列或迭代器)作为其 参数,每次迭代其中的一个元素。
for语句的执行过程是:
还有值未取吗? 否
每次循环,判断循环索引值是否还 在序列中,如果在,取出该值提供 给循环体内的语句使用;
计算机基础与应用(II)(经管类) ——计算思维与Python程序设计
第7讲 循环结构-for
上一讲回顾
While循环的特点
While语句之前有一个为循环控制变量赋初值的语句 循环体中有表达式来改变循环控制变量的值
for循环语句 循环应用举例 continue语句
本讲内容
for语句
➢ 当前项的通式:t = 1.0 / mu ➢ 求和的通式:s = s + t ➢ 变量i的通式:i = i + 1
示例 3 程序
循环结构示例:示例4
【例4】求1 ~ 100之间能被7整除,但不 能同时被5整除的所有整数 。程序保存为 07_division.py。
【分析】
本题需要对1 ~ 100范围内的所有数一一进行 判断。
【分析】
9-9乘法表由9行组成,每行的列数有规律地递增。 通过观察可以看出,表达式“X * Y = Z”中的X是内循环变量j的取
值,Y是外循环变量i的取值,Z是X乘以Y的结果。
示例2-程序
循环应用-示例 3
求以下表达式的值,其中n值从键盘输入。参考值:当n = 11时,s = 1.833333 。程序保存为07_series.py
示例4:程序
示例4:思考
请问语句“i += 1”可以和语句 “print i, '\t ' ”对齐吗?
示例4:思考
如果使用for循环该如何实现?
continute语句
continue语句的作用是终止本次循环,并忽略循环体中 continue之后的语句,然后回到循环的顶端,继续执行下 一次循环。
本题的循环次数确定是100次。 在每次循环过程中需要用 if 语句进行条件判
断。因此本题是循环嵌套选择的结构。
开始
为 i 赋初值 1
判断 i <= 100? Tru e
判断 i 是否能被 7 整除但不能被 5 整
除?
Tru e 输出 i
i 自增 1
False False
结束 图 4-10 整除问题的框图