(共17张PPT)
第9课 for循环的应用实例
for循环结构for循环语句是通过遍历某一序列对象来构建循环,循环结束的条件就是对象遍历完成。for循环语句的一般格式for<变量>in<序列>:<循环体>[else:语句块]for循环的执行流程图变量in序列循环体是否<变量>每经过一次循环,就会得到序列中的一个元素,并通过循环体处理它。<序列>通常是字符串、列表、range对象实例等。如果有else语句,程序将会在循环正常执行完成后执行。如果循环中遇到强制退出,那么else语句将不执行。for循环结构for循环字符串遍历for循环结构for循环列表遍历for循环结构for循环range函数遍历range()函数格式:range([start,]stop[,step]))功能:创建一个整数列表。参数:起始值(缺省为0),终值(但不包括),步长(缺省为1)棋盘与麦粒的故事问题分析算法设计编写代码调试运行问题分析相邻格子麦粒数的规律:后一格的麦粒数是前一格的2倍。p=p*2s=s+p累加器:在算法执行过程中,用来生成并存储数据累加和的变量。1.累加器的初值通常设置为0。2.循环体中的累加语句格式通常为s=s+x。1248···11+21+2+41+2+4+8···1+2+4+8+···格子的序号(i)当前格子存放的麦粒数(p)累加和(s)1234···641*22*22*2*22*2*2···*2(63个2)问题分析当前格子存放的麦粒数(p)麦粒累加和(s)第1格放置麦粒p=1累加器初始值:s=0目的:第n格棋盘共放置多少麦粒p=p*2重复n-1次s=s+p重复n次计数器:在算法执行过程中,用来记录某种事件发生次数的变量。1.计数器的初值通常设置为0,可以根据需要灵活设置。2.循环体中的计数语句格式通常为i=i+1。计数器(i)用来计算循环次数n计数器初始值:i=1i=i+1算法设计第1格放置麦粒:p=1p=p*2重复n-1次累加器初始值:s=0s=s+p重复n次算法流程图计数器初始值:i=1i=i+1结束开始输入棋盘格子数n第1格麦粒数置初值p←1i←i+1输出麦粒总数si≤n 是否p←p*2s←s+pp←p*2s←s+pp←p*2s←s+p计数器置初值i←1麦粒数累加器置初值s←0算法设计range()函数能创建一个整数列表,可以尝试用for循环和range()函数来实现自动计数。i≤n 开始输入棋盘格子数n第1格麦粒数置初值p←1麦粒数累加器置初值s←0i←i+1输出麦粒总数s是否p←p*2s←s+p计数器置初值i←1结束开始i in range(1,n+1)输入棋盘格子数n第1格麦粒数置初值p←1麦粒数累加器置初值s←0输出麦粒总数s结束p←p*2s←s+p是否循环是从第1格到第n格,因为包含第n格本身,所以range()的终值参数是n+1。编写代码i in range(1,n+1)输入棋盘格子数n开始第1格麦粒数置初值p←1麦粒数累加器置初值s←0输出麦粒总数s结束p←p*2s←s+p是否调试运行按F5键,输入棋盘格子数,观察运行结果。修改完善为了更好呈现麦粒重量,可以将麦粒数转化为吨数(按每粒麦子约0.03克计算)。试着在结尾处添加合适的语句并输出相应结果。修改完善想要具体地看到循环过程中每个格子的麦粒数p,又该如何添加语句。请输入棋盘格子数:40当前格子序号:1,当前格子麦粒数:1当前格子序号:2,当前格子麦粒数:2当前格子序号:3,当前格子麦粒数:4当前格子序号:4,当前格子麦粒数:8当前格子序号:5,当前格子麦粒数:16当前格子序号:6,当前格子麦粒数:32当前格子序号:7,当前格子麦粒数:64当前格子序号:8,当前格子麦粒数:128当前格子序号:9,当前格子麦粒数:256当前格子序号:10,当前格子麦粒数:512当前格子序号:11,当前格子麦粒数:1024当前格子序号:12,当前格子麦粒数:2048当前格子序号:13,当前格子麦粒数:4096当前格子序号:14,当前格子麦粒数:8192当前格子序号:15,当前格子麦粒数:16384当前格子序号:16,当前格子麦粒数:32768当前格子序号:17,当前格子麦粒数:65536当前格子序号:18,当前格子麦粒数:131072当前格子序号:19,当前格子麦粒数:262144当前格子序号:20,当前格子麦粒数:524288当前格子序号:21,当前格子麦粒数:1048576当前格子序号:22,当前格子麦粒数:2097152当前格子序号:23,当前格子麦粒数:4194304当前格子序号:24,当前格子麦粒数:8388608当前格子序号:25,当前格子麦粒数:16777216当前格子序号:26,当前格子麦粒数:33554432当前格子序号:27,当前格子麦粒数:67108864当前格子序号:28,当前格子麦粒数:134217728当前格子序号:29,当前格子麦粒数:268435456当前格子序号:30,当前格子麦粒数:536870912当前格子序号:31,当前格子麦粒数:1073741824当前格子序号:32,当前格子麦粒数:2147483648当前格子序号:33,当前格子麦粒数:4294967296当前格子序号:34,当前格子麦粒数:8589934592当前格子序号:35,当前格子麦粒数:17179869184当前格子序号:36,当前格子麦粒数:34359738368当前格子序号:37,当前格子麦粒数:68719476736当前格子序号:38,当前格子麦粒数:137438953472当前格子序号:39,当前格子麦粒数:274877906944当前格子序号:40,当前格子麦粒数:549755813888麦粒总重量(吨)数为:32985.35修改完善方法一调试运行方法二:寻找水仙花数水仙花数是指一个三位数,它每个数位上的数的3次幂之和等于它本身。例如:153是水仙花数,因为13+53+33=153。请仔细思考,在如下程序的划线处填空,并上机测试。小提示//:取整%:求余x**y:求x的y次幂153370371407