当前位置: 首页 > 优秀作品 > 和娃一起玩Python | 第二篇for循环

和娃一起玩Python | 第二篇for循环

2023年04月26日 16:50:18 访问量:211

距离第一次学习已经快两个月了,这期间,小肥蛋找各种理由逃避,不是借口作业太多,就是装模作样要去锻炼身体,来来回回编造了不少理由,也挺费心思。正好我也乐得清闲,就一直拖到昨天。

“皮皮,今天机会难得,学一会人工智能时代的语言吧?这个东西太重要了...”

“好!”

出乎意料,答应的这么痛快,我还有好多话没说呢。

“爸爸,学完了去吃披萨。”

“那么难吃,还没饼子好吃呢。看看你的成绩,只适合吃六中门口那种没有油的干饼子。”其实如果把披萨上面乱七八糟的东西去掉,只剩下的一层薄薄的饼,脆脆的还很香。

前情回顾!

“上次学的while循环还记得么?”

“什么意思?”

“就你这还想吃?复习一下上节课内容,这段是什么意思?”

g = 1while g < 101:    print(1)    g = g + 1

“这还不简单,打印1到100。”

“又是惯性思维,看清楚了再说。”

“没问题,上节课学过的。”

“这么自信?运行一下!不要被打脸。”

“这是1到100么?明显是100个1!看题一定要仔细!print(1),括号里面只是1,计算机是由人控制的,怎么可能自己做主去打印其它的?

“现在就像你说的,要打印1到100了,在这个基础上应该怎么做?”

“想不出来。”

有点失望,上节课学的差不多都忘了。不过仔细一想,快两个月了怎能不忘?小娃娃初学这个毕竟还是比较困难的,不能轻易打击,还是要鼓励为主。

“忘了不怕,你那么聪明,再多想想,就会回忆起来!”

“首先,我们知道print(1)只能打印1对吧?那我们要打印1到100,括号里应该放什么?应该从1、2、3......一直放到100对吧?那么只放一个数字显然是不行的,应该放个可以变化的东西吧?所以这里的答案就呼之欲出了吧?”

小肥蛋皱着眉头思索良久:“放一个变量?”

“好,自己改一改试试。”

g = 1while g < 101:    print('g')    g = g + 1

“这个太有创意了,一般人写不出来,我无话可说,你自己运行一下看看!”

“哈哈,100个g。”

你要打印的是1到100,现在出来了100个g。为什么会这样呢?”

“啊,我知道了。”

g = 1while g < 101:    print(g)    g = g + 1

“我厉害吧,爸爸表扬我!”

“表扬你基础太不扎实了?这个变量你都听过几次了?这个类型的做过几次了?我确实想表扬你,但是我骗不了我自己。”

“哼......”

一定要记清楚最基本的概念,变量可以用字母表示,但字母两边加上引号就不能叫变量了,就变成字符串了。

开始新课程!

“现在我们继续学习另一种循环for循环。所有的高级语言,至少都包括两种循环,while循环和for循环。不要小看循环,循环是非常重要的基础,不论是做项目还是写算法,都不可能离开循环。

“我知道,循环就是不停的吃包子。”

“不要总想着吃,你还觉得自己瘦吗?从前有个聪明的小孩子,叫高斯......”

“从1加到100吧?这个故事我都听腻了。”

“听过我就不讲了,高斯求和的方法很巧妙,你们经过思考,也会慢慢理解。但是当时十岁的高斯就能够独自找出来这个规律,这只能说是天才。普通人呢?努力才有可能会成功,不努力呢?还想吃披萨?有凉水泡馍馍就不错了。”

“现在咱们就开始了解for循环,通过for循环来和高斯比赛计算看看谁更快。for循环和while循环在很多情况下可以互相代替,但某些特定的情况下,更适合用其中一种循环。这两个循环方式你有个印象就行,以后在练习的过程中慢慢体会。”

“先来看下面看这两行是用来做什么的。”

# 对于 i 来说在它是在 range 这个范围中取值。for i in range(1, 6, 1):    print('皮皮吃了{}个包子'.format(i))

“我又在吃包子?”

“对,和上一节的while循环一样,首先看清楚要循环打印的是变量i。那么i是多少呢?i从哪里来?”

“从in这个单词可以看出,i变量是从range函数中取得,range函数就是用来不断产生i的。这样说你是不是理解了一些?”

“不理解。”

“还是以吃包子为例,你吃的包子是哪里来的呢?”

“当然是奶奶包的。”

“对,这个range函数就可以理解为奶奶在包包子,变量i就是不断的把包子取出来,然后用print打印。所以这个过程就是奶奶在辛苦的包包子,你在不断的吃包子。”

“学过等差数列了吧?还记得吗?”

“有点印象。”

“range(1,6,1)中,第一个1是等差数列初始值,第三个1是等差数列的递增值,等差数列从1开始,不断的加1,加一之后进行判断,只要小于6,就打印出来。咱们运行一下,看看结果,有助于你理解。”

“不够,66大顺,我要吃6个。”

“那么怎样就能吃6个呢?自己改一下。”

# 对于 i 来说在它是在 range 这个范围中取值。for i in range(1, 7, 1):    print('皮皮吃了{}个包子'.format(i))

“好,理解了基本原理,现在开始从1加到100。”

s = 0a = 1for i in range(1, 101, 1):    s = s + a    a = a + 1print(s)

“短短的6行,就可以得到1+2+......+100的和,是不是很简洁?”

”我们来看运行过程。第一行的变量s是用来储存1加到100之和的,所以刚开始赋值为0。第二行变量a用来完成从1到100的变化,所以初始值为1。第三行i从1到100循环一百次。所以a从1、2...一直增到100,s用来保存1+2+...+100的值。明白了吗?”

“一点都不明白。”

”不明白就对了。我设置一个断点,一步一步执行,你仔细看每次执行时,s和a的变化。”

”是不是恍然大悟了?一会你自己运行一次,在上面的基础上修改一下。光听没用,必须多想多动手才能深刻的理解。”

“没意思,我不喜欢。”

”你不是你不喜欢,你是还没有发现你的兴趣,还没有感觉到成就感。”

思考为先,实践为主,单步执行了很多次。

“嗯,明白一点点了。我饿了。”

”课下自己多运行,多写多练。这个为了让你能理解,其实写的复杂了,还可以继续精简。”

s = 0for i in range(1, 101, 1):    s = s + iprint(s)

“看到了吗?6行又缩减到4行,还是一样的结果。是不是很巧妙?”

“不是。”

“想想为什么6行代码和4行代码有一样的执行效果呢?看一看最后打印的都是什么?都是变量s。第一段中第四行为s=s+a,第二段中第三行s=s+i,说明这两句效果一样,也就说明a和i可能相等。再仔细查看,每次刚刚进入循环进行计算时,a和i的值是不是都一样?”

“不知道。爸爸我饿了。”

“儿子辛苦了,今天太晚了,披萨店关门了,爸爸马上给你煮香香的方便面。就先简单的讲到这吧。这是for循环最基础的部分,之后的千变万化,都是在这个基础上进行的。一会吃晚饭,用我教你的方法,把两段程序一步步的执行,看看每个变量值的变化,看看程序执行的精妙之处!”

总算凑合着讲完了,嗓子又干又疼。其实讲这么多只能起一个引导的作用,关键还是在于平时的实践。只有在电脑上多写程序,并且多思考多总结,才能稳步提高。

编辑:张冬梅
上一篇:教孩子学Python之while循环
下一篇:没有了
评论区
发表评论

评论仅供会员表达个人看法,并不表明网校同意其观点或证实其描述
教育部 中国现代教育网 不良信息 垃圾信息 网警110
郑重声明:本站全部内容均由本单位发布,本单位拥有全部运营和管理权,任何非本单位用户禁止注册。本站为教育公益服务站点,禁止将本站内容用于一切商业用途;如有任何内容侵权问题请务必联系本站站长,我们基于国家相关法律规定严格履行【通知—删除】义务。本单位一级域名因备案流程等原因,当前临时借用网校二级域名访问,使用此二级域名与本单位官网权属关系及运营管理权无关。忻州市河曲中学 特此声明。

联系地址:山西省河曲县长城大街西
北京网笑科技有限公司 仅提供技术支持 违法和不良信息举报中心