加德老师寄语:

小朋友们,家长朋友们,大家好!

【加德老师与小朋友们的编程之旅】今天迎来第二节课——用python进行海龟作图(上)

Python被誉为现今人工智能第一语言,适合9岁以上孩子进行编程入门学习。英语是通向全球的语言,编程是通向未来的语言,加德老师与大家一起开启未来世界的大门。

模式:一共30次教学推文,即30次课程。带领小朋友们零基础学习python编程,后期组建相应学习社群,更高效帮助孩子编程入门。

课前回顾

小朋友们,在上次教学推文中,加德老师带大家进行了编程的启蒙。什么是编程,为什么学习编程,认识Python这门神奇的编程语言,并在上面进行了代码编写的展示。用一行“Hello World”打开了大家学习Python这门编程语言的大门。

另外上次的推文发出,加德老师收到了很多家长通过我们公众号发来孩子完成的作业,小朋友们对编程的喜爱让加德老师感到十分欣喜。

在进入本节课之前,相信大家都已经在自己的电脑上安装好了Python和Pycharm这两个进行编程的工具。

Python海龟作图

在本节中,加德老师将用Python编写简短的、简单的程序来创建漂亮的、复杂的视觉效果。为了做到这一点,我们可以用海龟进行作图。

那什么是海龟呢?海龟(turtle)是Python中的一个库,小朋友们可以把海龟(turtle)看成一个画笔盒,这个画笔盒就叫海龟画笔盒,里面有很多可以供小朋友们调用的画图工具。我们可以通过海龟画笔盒里的各种工具绘制出令人惊奇的图片。

第一个海龟程序

01、极简海龟程序

现在就让我们用海龟画笔盒来编写第一个程序,在Pycharm编辑器中输入如下的代码

import turtlet = turtle.Pen()for x in range(100):   t.forward(x)   t.left(45)

当我们运行这段代码的时候,会得到如下一幅长的像蜂巢的漂亮整齐图片。

那么这个一个漂亮的图片是如何形成的呢?现在加德老师来为小朋友解读一下上面的程序。

02、解读程序

第一行导入(import)绘制海龟作图的功能。加德老师给小朋友们讲的形象一点哈。刚才我们讲到可以用海龟画笔盒(turle)进行画图,我们画图首先就是要拿到这个画笔盒,这样才能进行绘制。那么我们怎么样拿到这个海龟画笔盒呢?这时候就需要用到import这个功能啦,import的中文意思是导入,当我们输入了import turtle,就表示我们的程序能够使用海龟画笔盒里的各种工具啦。

程序的第二行是t=t.turtle.Pen(),首先等号的右边,它的意思很好理解,就是我们调用了海龟画笔盒里的Pen(钢笔),另外等号的左半边就是告诉计算机,我们将使用字母t表示海龟的钢笔。这么设置是为了之后写程序变的更加简易快捷。之后我们用到turtle.Pen()就直接用t代替就可以啦。

第三行的代码最为复杂。在这里,我们创建了一个循环,即它可以重复一组指令很多次(一次又一次的循环这些代码行),这个特定的循环设置了一个范围(range),上方代码中range(100)是指x从0-99的100个数字中进行遍历(计算机几乎总是从0开始计数,而不是像我们那样通常从1开始)。因此,x(x是变量,变量储存了在程序进行的过程中可以修改的一个值)从0开始遍历,然后变为1,然后是2,以此类推,直到99,一共100个步骤。

接下来的两行代码缩进了(这里的缩进不是缩进一格,而是敲击一下键盘上的Tab键缩进4格)。这意味着这两行代码位于上面的循环之中,每次x从0-99的范围内获取一个新的数字的时候,这两行代码都会重复,直到达到100次。

现在加德老师来解读循环中的这两行代码。t.forward(x),之前提到过,t就是海龟画笔盒中钢笔(turtle.Pen())。那么这行代码就是调用了钢笔中的向前移动功能,让海龟画笔盒中的钢笔在屏幕上向前移动x个点。在一开始,因为x是0,钢笔根本不会移动,但随着x越来越大,每次钢笔移动的幅度也会随之慢慢变大。

(向前移动9实例)

t.left(45)这行代码的意思就是调用海龟画笔盒中left(向左转)这个工具进行画图,t.left(45)就是钢笔向左旋转45度。

就是这样一次一次地执行,当x到达99,即循环的最后一次运行,钢笔围绕着这个类似蜂巢结构的外围画了一条长长的线条,就形成了上面这样一个漂亮的图片哈。小朋友们觉得编程是不是很神奇呀。

变幻的海龟

01、修改数值引起的变化

现在让我们试着改变程序中的某个数值,来看看画出的图案会有怎么样的改变吧。

import turtlet = turtle.Pen()for x in range(100):    t.forward(x)    t.left(55)

大家可以看到,这个程序只是最后一行修改为了t.left(55),比之前第一个程序多转了10度,那么这样的改变,我们的图形又会做出怎么样的改变呢?小朋友们请看下图

可以看到,通过数值的修改,图形变成了上面的形状,这个图案看上去像不像一个的万花筒呢?小朋友们也可以将我们的代码数值进行相应修改,看看你们画出来的是什么样的图形哦。

02、给图形添加颜色

上面的图片万花筒的样子很好看,但是,如果能够给它们添上一些颜色,是不是会更加更酷更炫,更加一个万花筒呢?

让我们回到第二个万花筒代码,在t = turtle.Pen()这一行的后面再添加一行代码,从而将颜色设置为红色。

import turtlet = turtle.Pen()t.pencolor("red")for x in range(100):    t.forward(x)    t.left(55)

让我们来运行该程序,我们将会看到一个红色的万花筒,如下图所示:

这样一个万花筒是不是要比第一个漂亮呢?上面代码中的pencolor就是钢笔的颜色,pencolor("red")的意思就是调用海龟画笔盒中红色的那支钢笔。但是加德老师还是不满意,因为这个是万花筒,一种颜色怎么够呢?那就让我们来挑战更高的难度吧。

03、一个四色万花筒

现在加德老师带大家来画一个更加酷炫的四色万花筒,这是今天课程中最难的一个点,小朋友们有没有准备好接受挑战呢?

再画四色万花筒之前,加德老师先带小朋友们认识一下算法(algorithm)。算法就是一系列的步骤,它可以将单色的螺旋线变为4色的螺旋线。大多数的步骤和之前的螺旋线程序中相同,但是,这里还增加了一些调整:

  • 导入turtle模块并且设置一个海龟
  • 告诉计算机应该使用何种颜色
  • 设置一个循环,绘制旋螺线中的100条线段
  • 为螺旋线的每一边取一种不同的钢笔颜色
  • 向前移动海龟以绘制每一边
  • 将海龟向左转,以准备好绘制下一边

首先,我们需要创建一个颜色名称的列表。这个列表中还有四种颜色,并把这个列表用colors来表示。代码如下:

colors = ["red", "blue", "green", "yellow"]

上面代码的红、蓝、绿、黄组成了我们要绘制万花筒的四种颜色。这里需要注意的是,我们将颜色的列表放在了方括号[ ]内。小朋友们记住了哦,[ ]这个符号就是python中表示列表的符号,大家可以看成是中括号。

现在我们需要做的下一件事情是,每次遍历绘制循环的时候修改钢笔颜色。那么,我们就需要将t.pencolor函数移入到for循环下的一组指令之中,还要告诉pythoncolor函数,我们相应列表中的哪一种颜色。

另外,为了这个万花筒能够呈现更佳的视觉效果,我们现在把图片的背景颜色修改成黑色,这时就需要调用海龟画笔盒中turtle.bgcolor( “black")这个函数了。现在让我们看代码:

import turtlet = turtle.Pen()turtle.bgcolor("black")colors = ["red", "blue", "green", "yellow"]for x in range(100):    t.pencolor(colors[x%4])    t.forward(x)    t.left(55)

4种颜色的列表起作用了,让我们现在看下运行上面代码会绘制出怎么样的图形来。

怎么样,这个万花筒是不是要比前面两个要漂亮很多呢?

但上面的代码中有一个难点,也就是第6行代码。这行代码中[x%4]叫做取模操作符,表示一次除法运算中的余数。例如6除以4余数为2,7除以4余数为3,以此类推。但我们想要遍历列表中一定数目的项时,比如我们对4种颜色列表所做的操作,取模操作符很有用。

具体的回到上面代码中,例如当x=0时,0除以4,余数是0,那就是取颜色列表中的第0个颜色(列表序列从0开始),也就是红色。当x=1时,1除以4,1除以4,余数是1,那就是取颜色列表中的第一个颜色,也就是蓝色,一次类推遍历100次(从0到99)。那么我们这个万花筒就包含了25条红色,25条蓝色,25条绿色,25条黄色。

好了,本次的课程内容到这里就结束啦!

本章小结

在本章中,加德老师带领小朋友们使用turtle库的工具绘制了令人印象深刻的彩色形状。我们使用import命令把这个库导入到自己的程序中,同时了解到,以这种方式来写程序是编程的最强大的功能之一!

(加德的小可爱)

我们还介绍了程序中像x和sides这样的变量。这些变量储存或记住一个数字或值,以便我们学习变量的作用。变量这个知识点是在我们以后的python运算课程中非常重要的一个知识点。

通过今天的课程 ,我们应该能够做如下事情:

  • 运用import这个命令导入python的各种第三方库
  • 用turtle库绘制简单的图形
  • 使用变量来储存简单的数值和字符串
  • 在Pycharm中修改、运行和保存程序

(以上内容小朋友们在遇到问题需要帮助时,欢迎在父子课堂在线微信公众号进行留言,我们会及时为大家指导)

课后作业

本次作业,加德老师希望小朋友能够用海龟作图完成下方图形的绘制,这其实是一道非常简单的哦,小朋友可以大胆的尝试下。

作业完成后,还是像上次一样,让爸爸妈妈把写好的程序发到微信公众号后台。加德老师等着小朋友们交作业哦。

【加德老师与小朋友们的编程之旅】下节课程:海龟作图——用Python绘图(下)

python turtle绕原点旋转_「加德老师与小朋友们的编程之旅」Python海龟作图(上)相关推荐

  1. python turtle绕原点旋转_每天一个Python小技巧,用Python 画个多啦A梦,小猪佩奇,文末还有Python入门学习视频

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

  2. python turtle绕原点旋转_分享给大家几段有趣的代码,学会python画画可以不用自己动手啦...

    前言 Python 是一门简单易学且功能强大的编程语言,无需繁琐的配置,掌握基本语法,了解基本库函数,就可以通过调用海量的现有工具包编写自己的程序,轻松实现批量自动化操作,可以极大提高办公和学习效率. ...

  3. python turtle绕原点旋转_用Python也能画图?用Python来画个“python”

    Death is so final, whereas life is so full of possibilities.死了可什么都没了,而活着就有无限的可能.<权力的游戏> 往日回顾:来 ...

  4. python turtle绕原点旋转_python习题

    python习题 第一章习题测试 1[单选题] Python语言是由哪个人创造的?(      ) A.Dennis Ritchie B.Linus Benedict Torvalds C.Guido ...

  5. python turtle绕原点旋转_Python基本图形绘制

    turtle库的使用 turtle库概述 turtle(海龟)库是turtle绘图体系的Python体现 标准库之一 入门级绘图函数库 标准库:随解释器直接安装到操作系统中的功能模块 第三方库:通过安 ...

  6. python turtle绕原点旋转_Python教程小小turtle绘图教学 (二)

    对于一开始学习Python的同学来说,强烈给大家安利Python中的turtle库!原因有三:直观 有趣 易上手通过Python的turtle库,你可以很容易的使用循环,判断以及自定义函数等基础的编程 ...

  7. matlab控制三角形绕原点旋转任意角度

    项目中遇到一个问题,需要把正三角形绕原点旋转任意角度,平时操作图片的时候,顺便旋转,感觉好像很简单,但是自己去做的时候还是有些困难. 我觉得旋转的难点在于由原始点计算新的目标点上,因为你需要考虑点位于 ...

  8. python程序如何执行死刑_「Python基础知识」Python生成器函数

    原标题:「Python基础知识」Python生成器函数 对于程序而言,内存也是很重要的,因为程序中很多数据都是保存在内存中的,如果内存中存储的数据过多,那么系统就会崩溃,这是人们不希望发生的. 可以采 ...

  9. 用python turtle画棒棒糖源代码_【自学Python】DAY 4 绘画大师——turtle库(超详细)

    自学Python DAY 4 目录turtle库介绍 turtle库使用 turtle的实例(源代码分享) 库我之前发的百科已经详细的介绍了,不知道的点击下方链接查看!博文-宇辰:[Python百科] ...

最新文章

  1. 测试几款STC下载电路
  2. express运行原理
  3. 读文件 —— WEB前端读取本地文件内容哪些事(前台解析txt文件)……
  4. ASM(active shape models)算法介绍
  5. QT的QDnsLookup类的使用
  6. DELPHI下的SOCK编程(转)
  7. android -support-v4.jar是什么文件
  8. 2010-12-1至2011-06-11
  9. C语言中的编译,链接,运行简单复习
  10. IDEA启动Tomcat 中文乱码问题
  11. MongoDB数据库练习题
  12. 转载: WebKit介绍及总结(一)
  13. 牛腩新闻发布--TODO
  14. ELK-logstash 的 grok与dissect 测试应用
  15. 计算机硬件 系统安装维护教程 02安装基础篇-01:启动热键、BIOS与UEFI
  16. centos6.8经典实用大全、教程
  17. 判断字符长度,区分中英文(中文两个字符,英文一个字符)
  18. 计算机应用基础中课程表怎么制作,浅谈《计算机应用基础》课程中Word表格的制作课程教学...
  19. Android文件存储---内部存储,外部存储以及各种存储路径解惑
  20. 爱情来的太快就像龙卷风

热门文章

  1. 开启Ubuntu root 远程登录
  2. 并发编程 07—— 任务取消
  3. DEBUG -- CLOSE BY CLIENT STACK TRACE问题的两种解决方案,整理自网络
  4. 【Python】嵌套类的定义与使用
  5. 内的 对象 获取 键值对_前端系列——Object对象数据类型详细剖析
  6. OpenGL EGL GPU工作流程理解(十四)
  7. android:Read-only file system解决
  8. 非标准硬件控制之增加系统API
  9. 一次新生代民工工友切磋经历
  10. vue 打包css路径不对_vue项目打包后css背景图路径不对的问题