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

下载本文档

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

文档简介

计算机基础与应用(II)(经管类)——计算思维与Python程序设计第7讲循环结构程序设计(2)_for教师:柳青电子信箱:办公室:博识楼418电话:677038522表达式循环体真(非零)假(零)格式1:while

表达式:循环体格式2:while

表达式:循环体else:语句表达式循环体真(非零)假(零)Else语句上周示例:用break强制结束循环Python提供了一条提前结束循环的语句——break语句。当在循环过程中,某个条件被触发(一般通过if语句检查),需要立即停止循环时使用。break语句可以用在while和for循环中。教学目标For语句解决序列类型问题解决计数循环问题循环应用举例重点难点for语句语法循环体是否还有值未取吗?Python提供的另一个循环机制是

for语句,它提供了Python中最强 大的循环结构。Python中的for语句与传统的for语 句不太一样,它接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其中的一个元素。for语句的执行过程是:每次循环,判断循环索引值是否还在序列中,如果在,取出该值提供给循环体内的语句使用;如果不在,则结束循环。for

取值in序列:循环体range()函数的两种简略用法:range(end):当提供1个参数时,start为0,step为1,range()函数返回从0到end的数列,不包括end。range(start,end):当提供2个参数时,step为1,range()函数返回从

start到end的数列,不包括end

。内建函数range(),range()函数的完整语法要求提供2个或3个整型参数:语法:range(start,end,step)说明:range()函数会产生1个包含所有等差数列级数k的列表,k每次递增step,step不能为0,可正可负列表、元组、字符串都是序列。序列类型有着相同的访问模式:它的每一个元素可以通过 指定一个偏移量的方式得到;而多个元素可以通过切片操 作的方式得到。序列操作可以通过很多内建函数来实现,这些内建函数的 实现都离不开循环结构。求序列长度len();求最大值max();最小值min();求和sum();排序sort()等【示例1】通过输入,创建1个由5个分数构成的列表,求出所有分数的平均分。保存为eg1_avg1.py方法一:使用Python的内建函数sum()求和,然后再求平均分。运行结果:思考1:如果用range(5),input语句做何修改?方法二:使用for语句,通过序列索引进行迭代。程序保存为eg1_avg2.py【分析】–要求得列表元素的平均值,首先要使用循环结构求得所有元素的总和,然后再将总和除以元素个数即可得到列表元素平均值。方法三:使用for语句,通过序列项运算。程序保存为eg1_avg3.py使用内建函数range()可以把Python中的for语句变成与其他语言中的for语句更为相识的计数循环模式。编程计算1+2+3+…+100

的值。程序保存为eg3_sum.py【分析】本题使用循环结构解决,每循环一次累加一个整数值,整数的取值范围为

1~100。由于整数的范围是确定的,因此循环次数也是确定的。i

<=

100

?将i

累加到s

中i

、s

赋初值1、0开始i

自增1结束FalseTrue输出s运行结果:i的作用:循环计数变量,控制循环次数作为每次被累加的整数值思考3循环结束后,变量i的值是什么?【示例2】利用for循环求1+2+3+…+100

的值,程序保存为eg2_sum1.py运行结果:与while循环比较思考:偶数和?奇数和?求表达式𝟏

𝟏𝟐

𝟑𝒏𝟏的值,其中n值从键盘输入。如当n=10时,s=2.928968。程序保存为eg2_sum2.py运行结果:循环的嵌套是指在一个循环中又包含另外一个完整的循环,即循环体中又包含循环语句。while循环和for循环可以相互嵌套。循环嵌套的执行过程是:一次外循环对应着完整的一轮内循环。【示例3】使用for循环的嵌套结构打印“九九乘法表”程序保存为eg3_table1.py说明:\t

纵向制表符\n

换行符成思考:最后一条语句能否写

最后一条语句能否写成打印如下图所示的“九九乘法表”程序保存为eg3_table2.pyEg3_table1.pyEg3_table2.py如果不将10改为i+1,又该如何实现?将“九九乘法表”打印得更美观程序保存为eg3_table3.py【例4-8】求1

~

100之间能被7整除,但不能同时被5整除的所有整数。【分析】 本题需要对1~100范围内的所有数一一进行判断。本题的循环次数确定是100次。 在每次循环过程中需要用

if语句进行条件判断。因此本题是循环中嵌套选择的结构。图4-10整除问题的框图开始结束

False

判断i<=100?Truei

自增1为i

赋初值1判断i

是否能被7整除但不能被5

整TrueFalse输出i#coding=gbki=1

#i

既是循环变量,同时又是被判断的数print('1~100之间能被7整除,但不能同时被5整除的所有数是:')while

i

<=

100:#判断循环是否结束if

i%7==0

and

i%5!=0:

#判断本次的i是否满足条件print

i,

'\t',

#打印满足条件的ii

+=

1#每次循环i

应自增eg4_while.pyeg4_for.py求以下表达式的值,其中n值从键盘输入。参考值:当n=11时,

ss=1.833333

。程序保存为eg5_ss.pyss

=

1

++

+

+11

+

2

1

+

2

+

3

1

+

2

+

3

+

+

n1

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

s的初值只能是1、0、0.0

吗?循环体内语句的先后顺序可以随意调换吗?continue语句的作用是终止本次循环,并忽略循环体中

continue之后的语句,然后回到循环的顶端,继续执行下一次循环。while循环与for循环在用法上有哪些区别?示例1~6P65-【例4-9】将书上while循环改用for循环实现,保存为P65_4_9_1.py请设计另外一种算法实现水仙花数,保存为P65_4_9_2.pyP75-【1】第4小题,程序保存为exam1_4.py说明:请先读懂P64例4-7P75-【5】程序保存为exam5.py–

说明:请先读懂P72

例4-16P75-【9】程序依次保存为exam9_1.py,exam9_2.py,exam9_3.py,exam9_4.

温馨提示

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

评论

0/150

提交评论