10121浏览
查看: 10121|回复: 1

[教程] Mind+Python turtle 课程——03 四色炫酷造型

[复制链接]
本帖最后由 木子呢 于 2021-9-10 15:37 编辑

第三节课 四色炫酷造型

目录:

功能介绍

在上节课的学习内容中,我们学会了海龟画正方形的方法。这节课我们将在上节课程的基础上进行程序的修改,让海龟从画一个正方形到复杂图形的转变,之后结合turtle库的pencolor()函数进行颜色的设定,制作出一个四色炫酷造型。课程会分为两个任务的形式进行,下表为课程任务及涉及到的知识点。

实现功能
知识点
任务一:画出正方形螺旋线
赋值、变量
任务二:画出四色炫酷造型
列表、取余

项目实践任务一:画出正方形螺旋线1、任务分析

经过上节课程的学习,我们进一步认识了turtle的使用方法,并学会了循环、变量、range()函数、行和缩进的使用。这节课我们在上节课的基础上,修改循环体内的内容,把之前固定海龟向前移动100像素的代码改为可以变化的,因此也再次使用到了我们之前使用过的变量,然后再进行100次循环,每次向前的像素都加1,这样就能画出正方形螺旋线了。

2、编写程序

代码如下:
import turtle#导入模块
t = turtle.Pen()#把turtle.Pen()赋值给t,后面的代码都使用t来代表
t.shape("turtle")#外形显示乌龟
for i in range(100):#定义变量执行100次
    t.forward(i)#向前移动距离i像素
    t.left(90)#左转90度
turtle.exitonclick()#点击退出

3、运行效果

点击运行程序,就可以看到海龟在弹出的窗口自己绘制图案,最终绘制成正方形螺旋线,再次点击窗口可退出。

Mind+Python turtle 课程——03 四色炫酷造型图1


4、代码释义
4.1代码中赋值运算符的使用

t = turtle.Pen()  #把turtle.Pen()赋值给t,后面的代码都使用t来代表

4.1.1代码解释
把turtle.Pen赋值给t,其中“=”号为赋值运算符,它告诉计算机,我们将使用字母t来表示海龟的画笔。这样我们后续程序的代码只需t.forward(),而不是turtle.Pen().forward(),就可以让海龟在屏幕上移动的时候用海龟的画笔进行绘制。

4.1.2赋值运算符的使用方法
赋值运算符用来把右侧的值传递给左侧的变量(或者常量),如a=c、a=6、t=turtle.Pen()等;可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。


4.2代码中的变量

for i in range(100):#定义变量执行100次
    t.forward(i)#向前移动距离i像素
    t.left(90)#左转90度

4.2.1代码解释
和上节课不同的是,我们这节课让海龟向前移动的像素是变化的,这里总共进行了100次循环,其中循环体中的i,也就是海龟向前移动的像素是从0到99不断增加的,在执行过程中就能得到正方形螺旋线了。

任务二:画出四色炫酷造型
1、任务分析

经过上面的程序设计,我们发现我们的造型相对之前的正方形来说炫酷了一些,那怎么让它更好看呢,我们这里用turtle中的pencolor()函数,来增加我们造型的颜色,让其更加炫酷。

2、编写程序

代码如下:
import turtle #导入tutle库
t=turtle.Pen() #赋值turtle.Pen()函数给t
colors=["red","yellow","blue","green"] #建立coloers列表,存储red,yellow,blue,green这四个元素
for x in range(100):  #进行100次循环
t.pencolor(colors[x%4])  #每次执行循环都对4进行取余运算
t.forward(x)  #海龟向前移动x的像素单位
t.left(90)  #海龟左转90°
turtle.exitonclick()#点击退出

3、运行效果

点击运行程序,就可以看到海龟在弹出的窗口自己绘制彩色的图案,最终绘制成四色的炫酷造型,再次点击窗口即可退出。

Mind+Python turtle 课程——03 四色炫酷造型图2


4、代码释义

4.1代码中的列表

colors=["red","yellow","blue","green"]#建立coloers列表,存储red,yellow,blue,green这四个元素

4.1.1代码解释
建立coloers列表,用来存储red,yellow,blue,green这四个元素。

4.1.2使用方法
列表使用中括号来指从哪里开始,到哪里结束,另外用逗号分隔列表内的各元素。就像创建任何变量一样,创建列表也是要为它赋某个值。另外还可以创建一个空列表,如a=[]中没有任何元素,所以这个列表是空的。不过空列表有什么用呢?为什么想要创建空列表呢?

其实很多情况下,我们是无法提前知道列表中会有些什么。我们也不知道其中会有多少元素,也不知道这些元素是什么,只知道将会有一个列表来保存这些内容。有了空列表后,程序就可以像这个列表中增加元素。这又怎么做到呢?

其实要向列表增加元素,我们需要使用append()函数。这里用到在序章说到的终端的信息交互功能,在终端中试试以下代码:
>>>a=[]
>>> a.append('mind')
>>> print (a)

你会得到这样的结果:
['mind']

记住,向列表增加元素之前,必须先创建列表(可以是空列表,也可以是非空)。

4.1.3代码中的print()函数
print函数为终端输出函数,可以让终端打印消息,如在序章中我们使用如下代码

print(“hello world“)

就可以在终端打印出hello world,这里双引号内的内容为字符串。当然我们还可以打印其它数据类型,如数字print(6)、变量print(a),这里的a需要提前定义、字符print(‘a’),字符需要放到单引号中,如有多个字符可以用”+”进行连接如print(‘a’+‘b’)等。


4.2代码中的取余
for x in range(100):  #进行100次循环
t.pencolor(colors[x%4])  #每次执行循环体都4进行取余
t.forward(x)  #海龟向前移动x的像素单位
t.left(90)  #海龟左转90°

4.2.1代码解释
t.pencolor(colors[x%4]),调用turtle库的pencolor()函数来设置绘制的颜色。每次执行此段代码时,x都会对4进行取余。x的值是从0开始的,第一次循环时x=0,0对4进行取余运算,得到的结果为0,则会获取到列表中的第一个元素也就是“red”(列表的元素位置都是从0开始计算的,而不是1)。然后进行第二次循环,x的值为1,1对4进行取余运算,得到的结果为1,则会获取列表中第二个元素也就是“yellow”,依次类推,进行了100次循环,因此会得到一个四色的炫酷造型。

4.2.2取余的使用方法
程序中 % 符号为取余符号,对于取余运算一般会用在列表中获取元素时用到会比较多。大的数对小的数取余我们小学的时候都知道,如5%4,余数为1。这里我们需要注意的是小的数对大的数取余,如4%5,余数是4。也就是如果小的数对大的数进行取余运算,获得余数的结果都是小的数本身。

项目小结


本节课我们通过四色炫酷造型的项目,进一步熟悉了turtle库函数的一些用法,实现了在弹窗中绘制出四色炫酷造型。在本节课中分别学习了赋值、列表、取余的用法,并进一步巩固了对变量的认识。通过本节课的学习,想一想我们还能画出怎样的炫酷造型呢?赶紧动手操作吧!

项目扩展


尝试画出六色六角的的炫酷造型,并和四色的炫酷造型进行比较,找出其中画正多边形的规律,然后想一想怎样能快速的制作出更多变和色彩的炫酷造型。

参考程序

import turtle
t = turtle.Pen()
turtle.bgcolor("black")
# You can choose between 2 and 6 sides for some cool shapes!
sides = 6
colors = ["red", "yellow", "blue", "orange", "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.exitonclick()#点击退出


hmilycheng  高级技师

发表于 2021-9-16 18:33:04

感谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail