第2单元 微项目3 用循环结构程序自动化计算 教案

资源下载
  1. 二一教育资源

第2单元 微项目3 用循环结构程序自动化计算 教案

资源简介

微项目3:用循环结构程序自动化计算
教学目标:
能够利用for、while等基础的循环语句用循环嵌套设计程序,体验自动化数据处理的原理,学会利用循环结构程序进行基本的数据加工与统计。
?
1.用计数循环统计数据
利用for循环结构来完成已知次数的自动化处理,掌握计数循环结构应用方法。思考循环的初值、终值的作用是什么。
?
【程序范例】
模拟抛硬币现象,探究随机概率。
(1)体验随机,对应数列信息,体会用数据描述现象
import
random??
#导入随机数模块
mn=['正面','反面']???
#列表存储显示信息
ms=random.randint(0,1)?
#产生0或1随机数
print("计算机抛出:",mn[ms])
?
(2)模拟抛硬币10次,体验自动化程序设计,认识循环的自动控制作用
mport
random??
#导入随机数模块
mn=['正面','反面'];???
#列表存储显示信息
for
i?
in
range(10):
???ms=random.randint(0,1)?
#产生0或1随机数
???
print("计算机第:",i+1,"次抛出:",mn[ms])
?
?
(3)模拟抛硬币1000次,深入体验自动化程序,了解概率、统计
import
random??#导入随机数模块
mc=[0,0]?
#用列表存储正、反面数量
for
i?
inrange(1000):
???ms=random.randint(0,1)?
#产生0或1随机数
???
if
ms==0
:
??????
mc[0]+=1????
???
else:
??????
mc[1]+=1???????
print("正面抛出次数:",mc[0]),?
print("反面抛出次数:",mc[1])?
?
【技术体验】
1.?体验range()的范围限定
for
i?
in?range(10):
??print("i=",i)
?
for
j?
in?range(11):
??print("j=",j)
?
2.体验范围的变化:初值、终值、步长
for
a?
in?range(5,10):
?print("a=",a)
?
for
b?
in?range(1,10,2):
?print("b=",b)
【知识了解】
了解计数循环的结构:for?变量?range(初值,?终值[,?步长])
计数循环是能够预计循环的开始与结束的数值变化,适合解决有规律变化的数据处理。
?
【学习指导】
1.理解循环是控制反复地做事情。
可举例“篮球场跑圈练体能”,跑第一圈计1分,跑第二圈计2分,跑第三圈计3分,跑10圈计算得分多少?
2.观察循环变量的数值变化
可通过range(1,10,2)变化步长来观察。
?
【程序实验】
1.寻找100以内的偶数
for?i
in
range(101):
??
if
i%2==0:
?????
print(i)
2.寻找100以内的奇数
3.寻找100以内3的倍数
?
?
2.用条件循环寻找答案
利用while循环结构实现未知次数的自动化处理,掌握条件循环结构应用方法。反思如何设定循环条件。
?
【程序范例】
1.输入正确验证码跳出循环,体验循环条件的作用
importrandom
#导入随机数模块
mc=""#初始化验证码
for
i
inrange(0,6):??#(0,6)
与(6)
等效
???ms=random.randint(0,9)
#产生0-9的随机整数
??
mc=mc+str(ms)
#存储验证码数字
print(mc)#显示验证码
?
mi=""
#初始化输入验证码
while
mc!=mi:
?mi=input("请正确输入以上验证码")
?
2.输入错误时需要更换新的验证码,体会循环体的作用
mc="0"#初始化验证码
mi="1"
while
mc!=mi:
??
mc=""
#清空验证码
?
??
for
i
in
range(0,6):?
?#(0,6)与(6)等效
????
ms=
random.randint(0,9)
#产生0-9的随机整数
????
mc=mc+str(ms)
#存储验证码数字
??
print(mc)
#显示验证码
??
mi=input("请正确输入以上验证码")
?
【技术体验】
1.体验循环条件
#
求1+1/2+1/3...
...?
当i等于什么时候刚刚大于3?
s=0
i=1
while?
s<3:
?
i=i+1
?
s=s+1/i
?
print("i=",i)
?
print("s=",s)
?
2.体验随机范围
importrandom
#导入随机数模块
s1=random.randint(5,8)
#产生5-8的随机整数
s2=random.randint(100,200)
#产生100-200的随机整数
s3=random.randint(0,9)
#产生0-9的随机整数
print(s1)
print(s2)
print(s3)
?
3.观察随机值
import
random
#导入随机数模块
for
i
inrange(20):
??s3=random.randint(0,9)
#产生0-9的随机整数
?
print(s3)
4.死循环
while?
1<3:
print("勇往直前,永不停止")
?
思考:
(1)
1<3换成1
效果一样吗?
(2)
1<3换成
True效果一样吗?
?
【知识了解】
了解当循环结构:while
条件表达式:
当循环的意义在于在一定条件下循环,不符合条件了即结束循环,适用于不知何时结束的的情况。比计数循环更灵活、更具动态变化的特点。
?
?
【学习指导】
1.死循环:当循环容易设计出错的原因是结束条件无法达成,构成死循环。
2.循环中的断点测试:可以多用print()来在各点进行数据测试,看看能否运行到此处,数值是否正确。
?
【程序实验】
会算术的小猫,输入两个非零个位数x、y,大数除以小数得商n,即能输出n个“喵”。
???算法提示:
(1)输入两个数。
容错设计:如果其中一个等于0,全部重新输入。可用循环条件为x==0
or?
y==0
(2)校准设计:判断两数大小,如果y大则交换。
(3)用x//y
整除得到n。
(4)用循环显示n个“喵”。
x=0
y=0
while
x==0?
or?
y==0:
?x=int(input("x="))
?y=int(input("y="))
if
x?x,y=y,x
print(x,y)
n=x//y
print(n)
for
i
in
range(n):
?print("喵")
?
尝试:
1.如何给小朋友设计一个乘法口诀训练软件
(1)随机出现两个一位的自然数。
(2)输入积。
(3)判断输入的结果如果正确计一分。
(4)共10道题目,输入总分。
?
?科学探究:用乘法口诀表探究多层循环,了解多重循环的执行特点。
for
i
in
range(1,10):
?
?for
j
in
range(1,i+1):
????????print('{}×{}={}\t'.format(j,i,j
i),end='')
???print()
(1)所有循环都可以嵌套,学习基础语言结构时不宜过早、过难应用多层循环的嵌套,了解即可。
判断嵌套因为有思维推理,或者打破砂锅问到低的需求,容易理解。
(2)显示格式了解即可,不宜深入学习。
'{}×{}={}\t'.format(j,
i,j
i)提供了一种输出格式,可以让数据按照一种固定格式显示。当然,我们把数字转换为字符串显示也是可以的。
end=''表示同行显示。
print()是换行作用,并没有显示内容,目的是在一行内的列循环完成后取消end=''的作用
(3)循环嵌套,如果要涉及可以结合行列关系进行探索。
?
#星星
for
lin
in
range(10):
?for
col
in
range(lin):
?
?print("
",end="")
?print()
??
for
lin
in
range(10):
?for
col
in
range(10-lin):
?
?print("
",end="")
?print()
?
?
for
lin
in
range(10):?????????????
??for
k
in
range(20-lin):???
#生成空格
?
?
print("",end="")
for
col
in
range(lin
2-1):????
??print("
",end="")
??print()
?
注:以上程序,重在体会外层循环控制行,观察lin的变化;内层循环控制列,观察col的变化。
?
?
技术探索:寻找内容的循环,探索循环的灵活应用
1.元素查找
mc=['苹果',
'桔子','菠萝',
'荔枝','芒果']
print('荔枝'
in
mc)
?
if
?'菠萝'
?in
?mc:
?
?print('我有菠萝'
)
?
for
?x
?in
?mc:
?
?print(x)
?
2.字母查找
mc='I
like
playing
football'
for
x
inmc:
?
print(x)
?
注意:x作为访问变量,与变量名无关。

展开更多......

收起↑

资源预览