《教孩子学编程(Python语言版)》——2.4 添加颜色

2.4 添加颜色

这些螺旋线的形状不错,但是,如果它们能够更多彩一些,是不是更酷呢?让我们回到正方形螺旋线代码,在t = turtle.Pen()这一行的后面再添加一行代码,从而将钢笔颜色设置为红色。

SquareSpiral3.py

import turtle
t = turtle.Pen()
t.pencolor(“red”)
for x in range(100):
    t.forward(x)
    t.left(91)

运行该程序,我们将会看到正方形螺旋线的一个更多色彩的版本,如图2-4所示。

我们尝试用另一种常用的颜色(如“blue”或“green”)来替换掉“red”或“green”并且再次运行该程序。我们可以通过Turtle库使用数百种不同的颜色,包括一些奇怪的颜色,如“salmon”和“lemon chiffon”(访问http://www.tcl.tk/man/tcl8.4/TkCmd/colors.htm 可以查看完整的列表)。让整个螺旋线呈现一种不同的颜色是很不错的一步,但是,如果想要让每一边都显示一种不同的颜色,我们该怎么办呢?这需要对程序做一些更多的修改。

2.4.1 一个四色螺旋线

让我们来考虑一下算法(algorithm)。算法就是一系列的步骤,它可以将单色的螺旋线变为4色的螺旋线。大多数的步骤和之前的螺旋线程序中相同,但是,这里还增加了一些调整:

(1)导入turtle模块并且设置一个海龟;

(2)告诉计算机应该使用何种颜色;

(3)设置一个循环,绘制螺旋线中的100条线段;

(4)为螺旋线的每一边选取一种不同的钢笔颜色;

(5)向前移动海龟以绘制每一边;

(6)将海龟向左转,以准备好绘制下一边。

首先,我们需要颜色名称的一个列表,而不是单个的颜色,因此,我们要创建一个名为colors的列表变量并且在列表中放置4种颜色,如下所示。

colors = [“red”, “yellow”, “blue”, “green”]

这个4种颜色的列表,将会针对正方形的每一边给出一种颜色。注意,我们将颜色的列表放在了方括号“[”和“]”之间。这里要确保引号中的每一种颜色名都像我们在第1章中打印出来的单词一样,因为这些颜色名都是字符串(string)或文本值,这是我们稍后要传递给pencolor函数的值。正如前面所提到的,我们使用一个名为colors的变量来存储4种颜色的列表。因此,任何时候,当想要从列表中获取颜色的时候,我们都要使用colors变量来表示钢笔的颜色。记住,变量存储的值是变化的,这正如同其名称一样,变量嘛。

我们需要做的下一件事情是,每次遍历绘制循环的时候修改钢笔颜色。为了做到这一点,我们需要将t.pencolor()函数移入到for循环下的一组指令之中,还需要告诉pencolor函数,我们想要使用列表中的哪一种颜色。

我们输入如下的代码并运行它。

ColorSquareSpiral.py

import turtle
t = turtle.Pen()
colors = [“red”, “yellow”, “blue”, “green”]
for x in range(100):
    t.pencolor(colors[x%4])
    t.forward(x)
    t.left(91)

4种颜色的列表起作用了,我们在这个运行的示例中看到了它们(如图2-5所示)。到目前为止,一切还不错。

pencolor函数中唯一的新增部分是(colors[x%4])。这条语句中的x和我们在程序中其他地方所使用的x是同一个变量,因此,x将持续从0~99增加,就像我们前面所见到的那样。圆括号中的colors变量名告诉Python,从我们在程序前面所添加的、名为colors的颜色名称列表中选取一种颜色。

[x%4]告诉Python我们将使用colors列表中的前4种颜色,即编号从0~3的颜色并且每当x变化的时候就遍历它们。在这个例子中,我们的颜色列表只有4种颜色,因此,我们需要一次又一次地遍历这4种颜色。

colors = [“red”, “yellow”, “blue”, “green”]
       0       1        2       3

[x%4]中的“%”叫作模除操作符(modulo operator),表示一次除法运算中的余数(remainder)(5÷4商1余1,因此,5可以包含4一次并且还剩下1;6÷4余2,以此类推)。当我们想要遍历列表中一定数目的项时,例如我们对4种颜色列表所做的操作,模除操作符很有用。

在100步中,colors[x%4]将遍历4种颜色(0、1、2和3,分别表示红色、黄色、蓝色和绿色)整整25次。如果我们有时间(并且有一个放大镜),可以数一数图2-5中有25条红色的、25条黄色的、25条蓝色的和25条绿色的线段。第1次遍历绘制循环的时候,Python使用列表中的第一种颜色,红色;第2次遍历的时候,它使用黄色,以此类推。第15次遍历循环的时候,Python又回过头来使用红色,然后是黄色,等等;每通过循环4次之后,总是又回过头来使用红色。

2.4.2 修改背景颜色

让我们再次加入一点内容,创造出比图2-5更漂亮一些的内容。正如我5岁的儿子Alex所指出来的那样,黄色部分太难以识别出来了。这就像是在白色的绘画纸上使用黄色的蜡笔一样,屏幕上的黄色像素无法在白色背景上明显地显示出来。让我们把背景颜色修改为黑色,来修正这个问题。我们在程序中的import行之后的任何位置,输入如下的代码行。

turtle.bgcolor(“black”)

添加这一行之后,图片更加漂亮,所有的颜色现在都处在一个黑色的背景之上。注意,海龟钢笔(在程序中由变量t表示)没有任何变化。相反,我们修改了海龟屏幕的一些内容,也就是背景颜色。turtle.bgcolor()命令允许我们将整个绘制屏幕修改为Python中指定的任何颜色。在turtle.bgcolor(“black”)这一行中,我们选择了黑色作为屏幕颜色,因此,红色、黄色、蓝色和绿色都显示得很好。

此外,我们可以将循环中的range()修改为200甚至更大,以使得螺旋线中的正方形更大。在黑色背景上显示200个线段的新版本的图片,如图2-6
所示。

Alex总是想帮助我的程序变得更为惊人,他要求再做一项修改:如果现在把线段替换为圆,那会怎么样呢?那会不会是最酷的图片呢?好吧,我必须承认,这甚至会更酷。完整的代码如下所示。

ColorCircleSpiral.py

import turtle
t = turtle.Pen()
turtle.bgcolor(“black”)
colors = [“red”, “yellow”, “blue”, “green”]
for x in range(100):
    t.pencolor(colors[x%4])
    t.circle(x)
    t.left(91)

我们可以在图2-7中看到结果。

时间: 2024-09-11 18:13:57

《教孩子学编程(Python语言版)》——2.4 添加颜色的相关文章

《趣学JavaScript——教孩子学编程》——导读

前言 趣学JavaScript--教孩子学编程 欢迎阅读本书!在本书中,你将学习用一种Web语言(JavaScript)来编写程序.但是更重要的是,你将成为一名程序员,即不仅会使用计算机而且会控制计算机的人.一旦学会了编程,你可以让计算机遵从你的意愿去做你想做的任何事情. JavaScript是一门不错的语言,值得学习,因为它随处可用.诸如Chrome.Firefox和Internet Explorer这样的Web浏览器,都使用JavaScript.借助JavaScript的强大功能,Web程序

《趣学JavaScript——教孩子学编程》——第1章 认识JavaScript1.1 认识JavaScript

第1章 认识JavaScript 趣学JavaScript--教孩子学编程 计算机是功能强大到令人难以置信的工具,它能够执行很多惊人的操作,例如,下国际象棋比赛.提供数以千计的Web页面,或者在数秒钟之内执行数百万次复杂的计算.但是,深入去看,计算机实际上是很傻的.计算机只能够执行人类告诉它的事情.我们使用计算机程序告诉计算机采取什么动作,而程序只是令计算机遵从的指令集合.没有程序的话,计算机什么也干不了. 1.1 认识JavaScript 更糟糕的是,计算机不能理解英语或任何人类语言.计算机程

《趣学JavaScript——教孩子学编程》——第2章 类型与变量2.1 数字和运算符

第2章 类型与变量 趣学JavaScript--教孩子学编程 编程其实就是操作数据,可什么是数据呢?数据就是我们保存在计算机程序中的信息.例如,你的名字就是一条数据,年龄也是一条数据.你头发的颜色,有几个兄弟姐妹,住在什么地方,是男生还是女生--所有这些都是数据. JavaScript中有3种基本的数据类型:数字.字符串和Boolean(布尔类型).number用来表示数字.例如,年龄可以用一个number表示,身高也可以用number表示.JavaScript中的数字如下所示: 字符串用来表示

《教孩子学编程(Python语言版)》——导读

前 言 什么是编程,为什么编程很适合孩子 计算机编程是每个孩子都应该学习的一项重要技能.我们使用计算机解决问题,玩游戏,帮助我们更有效地工作,执行重复性的任务,存储和查找信息,创建新的内容,同时与我们的朋友和世界联系.理解如何编写代码,将会把这一切力量付诸于我们的指尖. 每个人都能够学习编程,这就像是求解一个谜题或一个谜语.你可以应用逻辑,尝试一种解决方案,更多地试验一下,然后解决问题.开始学习编程的时机就是现在!我们处在一个前所未有的历史时期,在此之前,人们不可能像我们今天一样,通过计算机每天

《教孩子学编程(Python语言版)》——第1章 Python 基础—认识环境 1.1 认识Python

第1章 Python 基础-认识环境 如今,几乎任何东西之中都有一个计算机,例如电话.汽车.手表.电子游戏机.跑步机.贺卡或者机器人.计算机编程或编码,就是要告诉计算机如何执行一项任务,因此,理解如何编写代码,可以将计算机的能力控制在你的指间. 计算机程序,也叫作应用程序(applications或App),它告诉计算机做什么.Web App可以告诉计算机如何记录你喜欢的音乐:游戏App告诉计算机如何用逼真的图像显示一个古代的战场:一个简单的App可以让计算机绘制出如图1-1所示的类似六边形的.

《教孩子学编程(Python语言版)》——第2章 海龟作图—用Python 绘图 2.1 第一个海龟程序

第2章 海龟作图-用Python 绘图 在本章中,我们将编写简短的.简单的程序来创建漂亮的.复杂的视觉效果.为了做到这一点,我们可以使用海龟作图软件.在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动.这个海龟带着一只钢笔,我们可以让海龟无论移动到哪都使用这只钢笔来绘制线条.通过编写代码,以各种很酷的模式移动海龟,我们可以绘制出令人惊奇的图片. 使用海龟作图,我们不仅能够只用几行代码就创建出令人印象深刻的视觉效果,而且还可以跟随海龟看看每行代码如何影响到它的移动.这能够帮

《教孩子学编程(Python语言版)》——1.4 本章小结

1.4 本章小结 学习编写代码就像是学习走迷宫.猜谜语或者玩脑筋急转弯.你从一个问题开始,应用所知道的信息,同时一路获知新的东西.当你完成的时候,你锻炼了大脑并且解决了问题.希望你能够乐在其中. 在本章中,我们解决第一个主要的问题:在计算机上安装了Python编程语言,以便能够开始编写代码.这很容易,我们只需要下载文件,安装文件并运行它. 在后面的各章中,我们将学习如何使用代码解决问题.我们首先从一个简单的可视化的谜题开始,例如在计算机屏幕上(或者平板电脑或手机的屏幕上)绘制形状,然后,搞清楚如

《教孩子学编程(Python语言版)》——2.6 本章小结

2.6 本章小结 在本章中,我们使用Turtle库的工具绘制了令人印象深刻的彩色形状.我们使用import命令把这个库导入到自己的程序中,同时了解到,以这种方式来重用代码是编程的最强大的功能之一.一旦编写了有用的内容,或者借用某些人慷慨分享的代码,我们不仅能够节省时间,而且能够使用这些导入的代码做全新的事情. 我们还介绍了程序中像x和sides这样的变量.这些变量存储或记住一个数字或值,以便我们能够在程序中多次使用它,甚至修改其值.在第3章中,我们将学习变量的作用以及Python如何能够帮助你完

《教孩子学编程(Python语言版)》——1.5 编程挑战

1.5 编程挑战 在每一章的最后,我们可以通过尝试一些挑战来练习所学的内容,甚至创建一个更酷的程序(如果你遇到困难,请访问http://www.nostarch.com/teachkids/ 寻找示例解答). #1:Mad Libs 简单的YourName.py App具备了构建更为有趣的程序所需的所有内容.(例如,老式的Mad Libs单词游戏,如果你以前没有尝试过这种游戏,请访问http://www.madlibs.com.) 我们来修改YourName.py程序并将其保存为MadLib.p