python海龟漂亮图案代码⼤全_Python:海龟绘图(六)——
来点颜⾊看看
文本编辑器上传图片路径隐藏
可能这⼏节课以来,您⼼⾥⼀直有个疑问——绘制的图形虽然越来越复杂了,可还是不够漂亮啊!难道海龟只能绘制⿊⾊的线条吗?
当然不是!今天,我们就要给您点“颜⾊”看看。string函数c语言
其实,让海龟画出不同的颜⾊并不难,只需要调⽤⼩海龟的“pencolor()”⽅法。所谓“⽅法”,暂时可以理解为⼩海龟“会做的事”,在⼩海龟后使⽤“.”符号进⾏调⽤,形成“t.pencolor()”语句,就可以让⼩海龟绘出您喜欢的颜⾊了(如下图)。
假设您对“红⾊”情有独钟,那么按“F5”键运⾏后,就会得到如下的结果:
矢量图边框素材嗯,果然不再是单调的⿊⾊线条了,如您所愿,现在已经变成了单调的红⾊线条。
什么,这不是您想要的?您想要的是“绚丽多彩”?
好吧,谁让我在今天项⽬的前导部分答应您了呢。说到就要做到,现在我们就来研究⼀下绚丽多彩。
既然是“多彩”,肯定就要在程序运⾏的过程中多次使⽤“t.pencolor()”语句,并且每次使⽤都要设定为不同的颜⾊。
我们再来看⼀下这段“单调的红线条”代码:
这段代码可以分为两⼤部分:
第⼀部分(1  )主要进⾏⼀些绘图前参数的设置,⾏话叫“初始化”,以现在计算机的运⾏速度,这部分会在不到1毫秒的时间内被“⼀笔带过”。
第⼆部分(2  )才是真正绘图的部分,我们使⽤了⼀个“计数循环”,让⼩海龟在这个循环中“转悠”上百次,来为我们绘制美丽的图形。如果要让您多次使⽤“t.pencolor()”语句且每次都要设定不同颜⾊,您会把这些语句放在哪⼉?是“初始化部分”还是“循环部分”呢?
经过之前的分析,相信您会作出明智的选择。因为⼩海龟在绘图的过程中需要“不断”的改变画笔颜⾊,如果放在“初始化部分”,就会在“瞬间”被执⾏完毕,⼜如何能在整个绘图过程中“持续”发挥作⽤呢?所以,正确的“姿势”⾃然是将“设定画笔颜⾊”的积⽊放在循环部分。
我们知道,“t.pencolor()”语句每次可以将⼀种颜⾊设定为我们喜欢的颜⾊,现在需要6种颜⾊,应该需要6⾏这样的语句吧?那么现在问题⼜来了——“循环部分”⼀共只有4句话,如何能“塞下”这6⾏“t.penco
lor()”呢?
让我们再来仔细分析⼀下现在的处境——⼩海龟每次循环只绘制“1条边”并转向,⽽这个图形是在每次转向后、绘制下条边之前变换颜⾊,那么我们是需要每次循环变换1次颜⾊呢、还是变换6次颜⾊呢?当然是每次循环变换1次颜⾊。变换1次颜⾊也就只需要⼀
句“t.pencolor()”。这下好了,不⽤担⼼循环⾥堆满“t.pencolor()”了。
现在还有最后⼀个问题——如何⽤“1句”t.pencolor()变换“6种”颜⾊?这就要请出我们今天的核⼼技术——列表——来帮忙了。
在之前的项⽬中我们使⽤过“变量”,⽐如“sides”、“length”,都是变量。1个变量可以存储1个“值”或1个“数据”。
与变量不同,“列表”可以存储“多个值”,从⽽使程序可以⾼效的处理“⼀系列”的数据。就像是平时我们⽤的“整理箱”,单个的整理箱就像是“变量”,把好⼏个整理箱摞在⼀起再“编上号”,就成为了⼀个“列表”。为什么要强调“编上号”呢?因为我们往列表
中“放”数据或是从列表中“取”数据,都是根据这个“编号”来进⾏的。先说这么多,下⾯看具体使⽤⽅法。
阿里云maven私有仓库在Python中创建“列表”很简单。因为我们需要建⽴⼀个跟“颜⾊”有关的列表,所以这⾥我们给列表起名叫“colors”(复数,因为列表中要放“⼀系列”颜⾊)。使⽤下⾯的语句即可创建出“colors”列表,列表⽤⼀对⽅括号“[ ]”表⽰:
没看到颜⾊是吧?因为此时的列表是“空的”,还没有“装”上我们要⽤的数据。给列表装数据的⽅法很多,主要分为“定义列表的同时装⼊初始数据”和“在程序运⾏过程中通过‘追加’等⽅式为列表添加数据”两种⽅式。今天我们选择第1种⽅式——在定义列表时直接把数据装⼊列表,为此,我们修改之前定义colors列表的语句如下,把预先定义好的“颜⾊名称”放⼊列表中:
列表创建好之后,“读取”列表中的数据(⾏话叫“元素”),也使⽤⽅括号“[ ]”,并在“[ ]”内填上⼀个“整数”,代表你要读取
第“⼏”个数据(⾏话叫“索引”或“下标”,外国话叫“index”)。对于上述列表,列出各元素就是:
⚠  “red”对应的索引值是“0”⽽不是“1”,也就是说,所有的列表的第1个元素是“[0]”所对应的元素,切记!
现在准备⼯作已就绪,看看我们的代码中该如何使⽤“列表”中已经存好的数据。经过前⾯的分析可知,⼩海龟每次循环只绘制“1条
边”并转向,⽽这个图形是在每次转向后、绘制下条边之前变换颜⾊,⽽且要⽤“1句”t.pencolor()循环使⽤”6种颜⾊。那么我们⾃然就想让⼩海龟在绘制“第1条边”时使⽤列表中的“第1个颜⾊”,也就是“colors[0]”,绘制“第2条边”时使⽤列表中的“第2个颜
⾊”(colors[1]),……以此类推,绘制“第7条边”时再次使⽤colors[0],绘制“第8条边”时使⽤colors[1]……
如何做到这⼀点呢?我们希望最好能有⼀个变量,在绘图的过程中能“从0开始逐⼀增加到5”,然后再回到“0”,再“逐⼀增加到5”。怎样得到这样的变量呢?这⾥有⼀个编程界常⽤的⽅法(⽤个流⾏词叫“套路”),就是“求余数”。如果您对⼩学数学还有点印象的话,应该对下⾯的计算不太陌⽣:
0  6 = 0 0
1  6 = 0 (1)
2  6 = 0 (2)
ssh原理详解3  6 = 0 (3)
4  6 = 0 (4)
5  6 = 0 (5)
6  6 = 1 0
7  6 = 1 (1)
8  6 = 1 (2)
……
观察⼀下上述算式中省略号后的余数,我们发现,这些余数组成了⼀个“从0到5”的循环,刚好对应colors列表中“从0到5”这5个索引!现在对“为什么列表的索引从0开始”有点“感觉”了吧?如果“从1开始”,我们就还得给每个余数都“加上1”,远不如这样⽅便嘛!
现在已经确定“余数”完全符合我们的要求,那么⽤谁去除以6得到我们想要的余数呢?看看循环⾥,从0开始不断增加的那个“变量”是什么?对!就是循环的计数器“i”。
被除数和除数都有了,还记得求余数应该什么运算符吗?对,就是“%”。关于求余数的问题在之前的“在Python中算算数”⼀课中讲过(点此复习),时间稍微有点久远,⼤家可以翻看以前的课程复习⼀下。
所以,我们这条“核⼼语句”应该分以下步骤写成:
(1)计算“计数器i”除以“6”的余数——i % 6;
(2)⽤这个算出余数作为“索引”,获取列表colors中的数据——colors[i % 6];
(3)⽤从列表colors中获取的数据,改变海龟画笔的颜⾊——t.pencolor(colors[i % 6])。
python代码画图案把这条“核⼼语句”放到循环中,得到我们最终的代码如下:
忙活了⼤半天,终于要看到成果了。赶快按下“F5”运⾏⼀下吧!
您可能也觉得有些颜⾊在⽩⾊的背景下看起来不够靓丽,您尽可以在列表中设定⾃⼰喜欢的颜⾊值,或是使⽤上图中红框中
的“turtle.bgcolor(“black”)”语句将画布的背景⾊设定为⿊⾊,就像下⾯视频中的那样。您是否也得到了这样的结果呢?
项⽬⼩结:
在今天的项⽬中,我们:
学会了⼩海龟“设定画笔颜⾊”的⽅法——t.pencolor( “red”) ;
学会了如何“创建列表”,以及“设置和读取列表中数据”的⽅法;
学会了使⽤“求余数运算符(%)”,通过循环,得到⼀个数字序列的⽅法;
学会了如何把上述3种新技能结合起来,让⼩海龟画出绚丽多彩图形的⽅法;
学会了“设定画布背景颜⾊”的⽅法——turtle.bgcolor(“black”) 。
⚠  今天课程内容较多,⽽且“列表”的创建和使⽤是⼀个难点,⼤家要认真体会。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。