(共21张PPT)
2.3.3 语句与程序结构
之循环结构
人教/中图版 必修一《数据与计算》
《开端》是一部典型的时间循环电视,支持绘图的主要环节是时间周期。只要男主和女主在同一时间段睡觉,他们就会回到同一辆公交车上,公共汽车是开始故事的主要场所。整个故事围绕着巴士展开,所以解读的关键也是巴士。时间周期剧通常有一个主要任务。“开始”的主要任务是防止公共汽车爆炸。所以循环的条件是巴士是否爆炸。
看过《开端》吗?
所以,循环是什么?
反复做同一件事情的情况,称之循环
巴士是否爆炸?
回到巴士未爆炸节点
结束循环
找到炸弹或防止撞油罐车
是
否
循环结构
在循环结构中,一些语句在某一条件成立时,被重复执行,直到条件不成立时,才结束重复执行。这个条件称为循环控制条件,被重复执行的语句块称为循环体。Python语言使用两种基本的循环结构语句:while语句和for语句。
代码一直重复,直到条件不满足时,循环才会结束
(1)while语句的基本格式为:
while 表达式:
语句块
while语句中的表达式是循环控制条件,其值一般为布尔值(True或False),当值为True时,执行循环体内的语句,否则退出循环,执行下一条语句。注意:while后面的冒号不能省略。
循环结构——while语句
例如,计算1+2+3+4+···+100的值。
a = 1
s = 0
while a < 101:
s = s+a
a = a+1
print(s)
循环结构——while语句
循环控制条件
循环体
(2)for语句的基本格式为:
for 循环变量 in 序列:
语句块
for语句每次从序列中取出一个元素赋值给循环变量(循环变量的初值即为序列中的第一个元素值),当依次访问序列中所有元素后,循环结束。
循环结构——for语句
决定循环的次数
for语句中的序列
1.在Python语言中,可以使用函数range()返回一个等差整数序列,格式为:range(起始值,终值,步长)。函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认),并以指定的数字结束。
注意,生成的这个整数序列不包括终值,并且起始值和步长(序列中相邻两个元素之间的差)可以缺省,缺省时分别为0和1。
循环结构——for语句
函数range()举例
range(1, 5, 2) 生成从1至5(不包含5),间隔2的连续递增的等差整数序列1,3
range(1, 5) 生成从1至5(不包含5),间隔1的连续递增的等差整数序列1,2,3,4
range(5) 生成从0至5(不包含5),间隔1的连续递增的等差整数序列0,1,2,3,4
range(5, 1, –1) 生成从5至1(不包含1),间隔1的连续递减的等差整数序列5,4,3,2
循环结构——for语句
例如,计算1+2+3+4+···+100的值。
s = 0
for a in range(1, 101):
s = s+a
print(s)
循环结构——for语句
循环体
循环次数=int((终值-初值)/步长)
2.在for语句中还可以直接使用列表等序列。例如:
names=["张明","王丽","李刚","唐华"]
for name in names:
print(name)
循环结构——for语句
循环结构——for语句
3.循环嵌套
一个循环结构内可以包含另一个循环,这样的结构称为循环嵌套,也称多重循环。常用的循环嵌套是二重循环,外层循环称为外循环,内层循环称为内循环。内循环是外循环的循环体。循环嵌套的执行过程是要首先执行外层循环,外循环每执行一次,内循环则需执行一个完整的循环。
循环结构——for语句
例如,输出显示“九九乘法表”,程序示例如下:
#外循环
for i in range(1, 10):
#内循环
for j in range(1, i + 1):
#通过end=""设置函数print()不输出换行符
print(i,"*",j,"=",i*j,"\t",end ="")
#设置换行操作(函数print()不输出任何字符,只进行换行)
print()
给定字符串或制表符结尾,但是不默认换行
循环结构——for语句
循环结构——for语句
4.break语句和continue语句
在循环体中,可以使用break语句和continue语句控制程序的流程。
break语句:用于终止某个循环,使程序跳到该循环结构之外的第一个可执行语句;
continue 语句:用于终止本次循环进入下一次循环,即跳过循环体内还未执行的语句,进入下一次循环的判定。
循环结构——for语句
break和continue 语句的用法比较:
在for语句中,循环次数由序列中元素的个数决定,常用于确定循环次数的问题解决。对于不能确定次数的问题求解,需要使用while语句。实际上,while 语句既可以实现不确定次数的循环,也可以实现确定次数的循环。
课堂练习
有以下Python程序段:
s=1
for i in range(1,5):
s=s*i
print(s,i)
1、程序的运行结果为( )
A、24 5 B、120 5 C、24 4 D、120 4
2、程序s=s*i的循环次数为( )
A、1 B、2 C、3 D、4
C
D
步骤:
1、确定程序结构
2、计算range返回值
3、确定循环变量
4、循环变量依次取range返回值,每取一个值执行一次循环体
5、循环结束,输出
以下程序段运行后,s的值是( )
n=0
s=0
while s<=10:
n=n+3
s=s+n
print(s)
A、30 B、18 C、0 D、3
课堂练习
B
步骤:
1、确定程序结构
2、确定循环变量的初值
3、判断循环变量是否满足条件(控制条件是否成立)
4、条件成立,执行循环体,并再次判断循环变量
5、条件不成立,循环结束,输出
实践练习
上机练习:利用海龟编辑器进行编程,完成计算s=1*2+3*4+5*6+7*8+9*10.
#使用while语句
k= 1
s = 0
while k<11:
s=s+k*(k+1)
k=k+2
print(s)
#使用for语句
s = 0
for k in range(1,11,2):
s =s+k*(k+1)
print(s)
THANKS