(共16张PPT)
4.4运用循环结构描述问题求解过程
《数据与计算》必修一
目 录
4.4.1 for循环的应用
4.4.2 while循环的应用
4.4.2 循环嵌套的应用
4.4.2 循环控制的应用
1.for循环语句
for 循环变量 in 列表:
语句或语句组
for循环依次把列表中的每个元素逐个迭代出来。
冒号“:”代表下一行是循环的第一行,但是循环体在书写时需要缩进。
在for循环中,从for语句末尾的冒号开始至其下面没有缩进的代码之间都是其包含的需要重复执行的部分。
4.4.1 for 循环的应用
循环结构是程序设计中常用的基本机构之一。循环是让计算机自动完成重复工作的方式。常见的循环结构有for循环、while循环。
4.4运用循环结构描述问题求解过程
格式 :
2.for循环所包含的语句是以缩进为标志的
是否缩进 循环体示例
代码示例结果
有缩进 for value in [1,2,3,4,5]: print(value) print('good') 1
good
2
good
3
good
4
good
5
good
无缩进 for value in [1,2,3,4,5]: print(value) print('good') 1
2
3
4
5
good
4.4运用循环结构描述问题求解过程
3.列表的几种表达方式
循环体先定义后使用示例代码
示例
values= [1,2,3,4,5] for value in values: print(value) print('good') 1
2
3
4
5
good
(1)直接罗列的方式
value in [1,2,3,4,5]:
(2)先定义、后使用
4.4运用循环结构描述问题求解过程
range() 函数返回的是一个可迭代对象(列表是可迭代对象的一种)。
(3)使用range()函数
格式1:
range(stop)
注意事项:
range( )函数是让Python从指定的第一个值开始数,并在到达所指的第二值后停止,因此不包含第二个值。
例:range(1,6)其实是生成一个1—6的整数(不包含6),如下图所示:
range( )函数示例代码 示例结果
for value in range(1,6): print(value) print(‘good’) 1
2
3
4
5
good
4.4运用循环结构描述问题求解过程
(3)使用range()函数
格式2:
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(6)等价于range(0,6);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0,6) 是[0, 1, 2, 3, 4,5]没有6。
step:步长,默认为1。例如:range(0, 6) 等价于 range(0, 6, 1),可以为负值。
例:range(2,11,2)其实是生成一个2—10的整数,步长为2。
range( )函数示例代码 示例结果
for value in range(2,11,2): print(value) 2
4
6
8
10
4.4运用循环结构描述问题求解过程
(3)使用range()函数
格式2:
range(start, stop[, step])
使用 range()函数时,数值列表是可以降序的。
例:range(10,1,-2)其实是生成一个10至2的偶数(降序),步长为-2。
range( )函数示例代码 示例结果
for value in range(10,1,-2): print(value) 10
8
6
4
2
4.4运用循环结构描述问题求解过程
思考:如何用for 循环语句解决如下问题?
项目小组经过讨论,决定先网购单价为1元至10元的十种笔记本各一本,且每一中只买一本,计算一共要花多少钱呢?
自主探究一:
这个问题相当于要计算从1到10的累加值。1~10的累加就是计算1+2+…+10,可以用for循环结构编程来解决这个问题
一、分析问题
4.4运用循环结构描述问题求解过程
二、设计算法
根据上述分析,可设计如下算法:
(1)需要有一个循环变量从1变化到10,将该变量命名为i;
(2)还需要另外一个临时变量不断和该变量进行加法运算,并记录运算结果,将临时变量命名为sum;变量i每增加1时,就和变量sum进行一次加法运算,变量sum记录的是累加的结果。
三、编写程序
sum=0
for i in range(1,11):
sum=sum+i
print("the result:",sum)
四、调试运行程序
运行结果
1.while循环语句
while(表达式):
语句或语句组
(1)表达式一般是一个关系表达式或一个逻辑表达式,表达式的值应该是一个逻辑值真(True)或假(False)。
(2)当表达式的值为真时,执行循环体语句;当表达式的值为假时,退出循环,执行循环体外的下一条语句(即while后面没有缩进的第一条语句)。
(3)每次循环都是执行完循环体语句后回到表达式处重新开始判断,重新计算表达式的值。一旦表达式的值为假就退出循环,为真时就继续执行循环体语句。
(4)循环体中必须有改变条件表达式值的语句,否则将成为死循环。
4.4.2 while 循环的应用
格式
思考:如何用while循环语句编程解决上述的募集费用问题
项目小组为了筹集购买奖品和纪念品的费用,准备开展一次募捐活动,计划向第一个赞助人募集20元,向第二个赞助人募集25元……后一个比前一个多募捐5元,依次下去,第几个人募捐后募集到的总费用累计超过500元?
自主探究二:
一、分析问题
设所拉赞助人的数量为num(num=1,2,3,…),每次募集的费用为money,每次募集之后总费用为sum,则sum可以用如下的式子表示:
sum=20+25+30+…于是这个问题就可以转化为:当sum≥500时,求num的值。
二、设计算法
根据上述分析,可设计如下算法:
①令num=1;
②令money=20;
③令sum=20;
④num=num+1;
⑤money=money+5;
⑥sum=sum+money;
⑦如果sum<500,则返回步骤④;
⑧输出num的值;
⑨结束。
Y
N
三、编写程序
num=1
money=20
sum=20
while sum<500:
num=num+1
money=money+5
sum=sum+money
print(num)
四、调试运行程序
运行结果
2.自主尝试利用while 循环结构实现1+2+3+.......+10 ,并在班级内交流分享。
思 考:
1.对于上述问题的解法,如果改变几个变量的初值,假设令“num=0,money=20,sum=0”,程序应该如何实现?他们之间的语序能改变吗?为什么?