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