python第一课乌龟画图(加德老师与小朋友们的编程之旅)
python第一课乌龟画图(加德老师与小朋友们的编程之旅)另外上次的第二节课程,加德老师收到了很多家长通过我们公众号发来孩子完成的作业,而且是不仅仅基于作业,还发过来了很多更加漂亮的图形,孩子们对编程的喜爱让加德老师感到十分欣喜。小朋友们,在上次教学推文中,加德老师带大家进行了Python的海龟作图操作,我们使用了turtle库这个海龟画笔盒绘制了很多令人惊叹的图形。相信小朋友们已经掌握了最基本的海龟作图技能。模式:一共30次教学推文,即30次课程。带领小朋友们零基础学习python编程,后期组建相应学习社群,更高效帮助孩子编程入门。课前回顾
加德老师寄语:
小朋友们,家长朋友们,大家好!
【加德老师与小朋友们的编程之旅】今天迎来第三节课——用python进行海龟作图(下)
Python被誉为现今人工智能第一语言,适合9岁以上孩子进行编程入门学习。英语是通向全球的语言,编程是通向未来的语言,加德老师与大家一起开启未来世界的大门。
模式:一共30次教学推文,即30次课程。带领小朋友们零基础学习python编程,后期组建相应学习社群,更高效帮助孩子编程入门。
课前回顾
小朋友们,在上次教学推文中,加德老师带大家进行了Python的海龟作图操作,我们使用了turtle库这个海龟画笔盒绘制了很多令人惊叹的图形。相信小朋友们已经掌握了最基本的海龟作图技能。
另外上次的第二节课程,加德老师收到了很多家长通过我们公众号发来孩子完成的作业,而且是不仅仅基于作业,还发过来了很多更加漂亮的图形,孩子们对编程的喜爱让加德老师感到十分欣喜。
(部分学生后台作品展示)
上面的图形是很多孩子通过我们微信公众号后台发给我的,真的是非常不错。看来我们很多孩子都已经有很扎实的编程基础了。今天,就让我们进阶python海龟作图,加德老师带领大家用Python绘制出更加迷人的图形吧。
Python海龟作图进阶
01
奇妙的斑斓螺旋线
到目前为止,我们已经使用变量来修改颜色、大小以及一些直线形图案,那么我们怎么来画螺旋线呢?比如下方这个图案如何实现呢?
其实非常简单,大家可以看到这个螺线线其实是由一条条不同颜色的直线组合而成的,只不过是视觉上给我们的展现效果的是一个螺旋线。我们只要修改下我们上一次课程中的最后一行代码的变量即可。
现在让我们看看它的代码吧。
import turtle
t= turtle.Pen()
turtle.bgcolor("gray")
turtle.speed(0)
colors = ["orange" "blue" "green" "yellow"]
for x in range(1000):
t.pencolor(colors[x%4])
t.forward(x)
t.left(91) # 变量从55改成91
大家可以看到我们把第九行代码中left内的变量从原来的55改成了91。然后整个图形就发生了巨大的变化。
加德小普及:大家看到第九行代码“#”这个符号了吗?“#”是程序中表示注释代码的意思。
Python程序里的注释是很重要的。主要有两个功能,第一它们可以用自然语言告诉你某段代码的功能是什么。第二是在你想要临时移除一段代码时,你还可以用注解的方式将这段代码临时禁用。
02
跟加德一起画圈圈吧
关于如何用turtle直接画出圆圈,比如像下方这样有四种颜色组成的色彩斑斓的圆圈图是如何画出的呢?我们需要修改之前程序中的哪些代码呢?
这时大家可以联想到英文里面的圆的单词叫什么呢?对,是circle,python是一门很深动的语言所以我们画圆直接从海龟笔画盒中直接调用circle这个工具即可。具体代码展示如下:
import turtle
t = turtle.Pen()
turtle.bgcolor("gray")
turtle.speed(0)
colors = ["orange" "blue" "red" "yellow"
for x in range(1000): t.pencolor(colors[x%4]) t.circle(x) # 原来的forward(往前直行)替换成circle t.left(91)turtle.done()
在circle(radius extent)函数中,参数radius为弧形半径、extent取角度的整数值,两参数均可取正负值。circle()函数以画笔当前方向(y')为y轴方向,以经过画笔当前绝对坐标(x0 假设y0=0)、垂直于y轴的方向为x轴方向,则圆心(即原点)坐标为(x0-radius=0 0),由当前画笔位置(x0 y0)为弧线起始点,画出extent角度的圆弧。
具体让我们用代码来举例
import turtle
t = turtle.Pen()
t.circle(100 180)
turtle.done()
在上方代码中,我们看到第三行用到了circle函数。按照之前讲解的,circle函数内第一个数值100,即表示画半径为100的圆弧,第二个数值为180,即表示画180度的圆弧,也就是半个圆圈。运行上方代码,我们可以看到海龟绘制出了下方的图案。
(半径为100,弧度为180度的圆弧)
circle这个函数功能在海龟作图中占据着十分重要的功能,很多美妙的图形都是通过circle来画出的。
03
一个变量搞定一切
现在,我们已经使用变量来修改颜色、大小以及螺旋线形状的旋转角度。让我们再添加一个sides变量,来表示形状的边数。这个新的变量如何改变我们的螺旋线呢?如果要搞清楚这一点,我们需要重新写一个程序。
import turtle
t = turtle.Pen()
turtle.bgcolor("gray")
turtle.speed(0)
sides = 6
colors = ["orange" "blue" "red" "yellow" "green" "purple"]
for x in range(360):
t.pencolor(colors[x%sides])
t.forward(x*3/sides x)
t.left(360/sides 1)
t.width(x*sides/200)
turtle.done()
先来解读这个程序,我们在这个程序中的第5行,插入了一代代码,它的意思是把6这个数值赋值给了‘sides‘,以后的代码中只要出现sides,它就表示数值6的意思。
接着,我们在for循环内的每一笔海龟作图就引用了sides,这使得我们的图形变的更加奇幻。
值得注意的是,我们在本次程序中使用了一条新的命令t.width(),它修改了海龟钢笔的宽度。在这个的程序中,随着钢笔绘制的形状越来越大,钢笔变得越来越粗。现在让我们来看看以上代码绘制出的图形效果吧。
用Python画哆啦A梦
小朋友们知道吗?Python不仅可以画很多奇妙的图案,还能画出很多你喜欢的卡通人物,比如小猪佩琦、皮卡丘、哆啦A梦等。
比如上方的图片就可以用我们Python画出哦,现在小朋友们是不是迫不及待来呢?下面加德老师来为大家演示一下如何画出哆啦A梦吧
由于代码比较长(共236行),加德老师就不在文章中做详细解释了哦,如果大家有兴趣,可以在我们父子课堂在线公众号后台留言,加德老师将会把代码分享给大家。
最后,加德老师相信,通过大家对python海龟作图的不断探索和学习,小朋友们一定能够绘制出自己喜欢的图形。加德老师期待小朋友们更多的作品发送到我们微信公众号后台。
好了,本次的课程内容到这里就结束啦!
课后作业
本次作业有两题,第一题加德老师希望小朋友能够用海龟作图完成下方三角形图形的绘制,这道题目主要是考察大家几何性质的逻辑思维能力,非常简单!
第二题是一道综合题,里面考察了大家对circle函数、for循环的运用,大家可以大胆尝试下。
(作业一绘图)
(作业二绘图)
作业完成后,还是像上次一样,让爸爸妈妈把写好的程序发到微信公众号后台。加德老师等着小朋友们交作业哦。
本章小结
在本章中,加德老师带领小朋友们进阶了Python海龟作图,在之前的基础上我们学习到了只要改变程序中的一个变量,整个海龟画出来的图案将会产生巨大的变化。并给大家解读了海龟作图中一个十分重要的函数circle。
通过今天的课程 ,我们应该能够做如下事情:
- 基本掌握海龟作图中circle函数的用法
- 会运用在代码中设置变量让整个程序绘制出各式的图案
- 会运用python中的“#”注释,来解读程序
- 在Pycharm中保存、运行、修改程序
编程犹如浩瀚的星空,里面的工具犹如天上的星星,我们本次的python海龟作图上下两节的讲解全部结束了,因为有很多python的其它知识点还没有和大家讲解,所以我们关于海龟作图只能到这里了。我们讲的只是海龟作图中的一点皮毛,加德也仅仅是帮助小朋友们进行编程启蒙而已。
未来还有更加广阔的空间等待着大家去探索,加德老师愿陪一路陪伴着小朋友们探索奇妙的编程世界,就像今天在文章中给大家推荐的歌曲——欧阳娜娜的《树洞》歌词中写到的那样:
还来不及叛逆
就已经长大
多勇敢
期盼
和你每个晚安
下个十年再作伴
(以上内容小朋友们在遇到问题需要帮助时,欢迎在父子课堂在线微信公众号进行留言,我们会及时为大家指导)
往期精彩回顾
【加德老师与小朋友们的编程之旅】Python编程初体验
【加德老师与小朋友们的编程之旅】Python海龟作图(上)