绘制几何图形时默认使用的是黑色,如果想使用更多的颜色让几何图形更加生动,只要使用 t.color 函数进行颜色设置就可以了。
常用颜色
red 红色
blue 蓝色
black 黑色
grey 灰色
gray 灰色
yellow 黄色
purple 紫色
white 白色
brown 棕色
green 绿色
pink 粉红色
aqua 水绿色
aquamarine 蓝绿色
beige 灰褐色
chocolate 红褐色
ivory 象牙色
khaki 卡其色
lavender 淡紫色
maroon 褐红色
mauve 淡紫红
navy 藏蓝色
olive 橄榄绿
salmon 橙红色
violet 古紫色
使用颜色
for x in range(50):
t.color(颜色代码 ) # 改变颜色
t.circle(x) # 画半径不断改变的圆
t.left(100)
我们虽然使用了颜色,但是画出的图形还缺少颜色的变化,如果希望画出色彩斑斓,就需要让每次开始画图时都要更改一次颜色。
让颜色改变
使用容器装载颜色
什么是容器?
容器就是用来盛放物品的贮存器。
物品平时被保存在容器中,使用的时候可以很方便的取出,用完后还可以放回
python 中的容器
Python 中的容器是用来盛放数据的。
Python 中的容器包括: 字符串 str ,列表 list ,字典 dict ,元组 tuple ,集合 set
列表 list :可以用来存储任意类型的数据。
列表
colors = ['red','blue','green','pink','yellow','violet']
容器中这些表示颜色的字符串都是容器的元素。
容器中元素的个数称为容器的长度。
例如容器中现在有 6 个元素,则可以称此时容器的长度为 6 。
colors 是列表的名字,通过名字我们可以找到列表。
“=” 在 Python 中称为“赋值操作符”
列表的下标
colors =
['red','blue','green','pink','yellow','violet'] 下标 0 1 2 3 4 5
容器中的元素通过数字表示它们在容器中的位置。
数字从 0 开始,从左向右依次增大。最后一个元素的下标最大,为 5
列表中元素的获取
colors = ['red', 'blue','green','pink','yellow','violet']
利用元素的下标就可以从容器中获得元素。
colors[0] 为 'red'
colors[1] 为 'blue'
colors[2] 为 'green'
colors[3] 为 'pink'
colors[4] 为 'yellow'
colors[5] 为 'violet'
如何让元素的选择随循环改变
colors = ['red','blue','green','pink','yellow','violet'] for x in range(50): t.color( x ) colors[x] 这样改变颜色可以吗 t.circle(x) t.left(100)
作为循环变量的x,它的变化范围是从0~49。而颜色列表中最大的下标值为5,所以随着循环的进行,x的值就会超过列表的最大下标。
所以我们要限定颜色列表中下标的取值范围只能是0~5。同时我们又希望颜色随着循环不断变化。怎么办?
随机数
如何让计算机帮助我们生成0~5范围的一个随机数字?
第一步:从随机之家请出随机小子
第二步:由随机小子生成一个指定范围的随机数
from random import randint #从随机之家请出随机小子 n = randint(0,5) # 由随机小子生成指定范围内的随机数
注意:随机数是有计算机帮助我们生成,我们无法预知生成的数字是多少,我们能确定的是该数字一定是在0~5之间。
随机数与循环结合
from random import randint colors = ['red','blue','green','pink','yellow','violet'] for x in range(50): n = randint(0,5) t.color(colors[n]) t.circle(x) t.left(100)
此时我们即限定了下标的取值范围只能是0~5。同时下标值随着循环不断变化。
巧用余数
colors = ['red','blue','green','pink','yellow','violet']
容器中最大的下标值为5。
使用循环变量充当下标时,很快就会超过5导致容器报错。
利用余数的特点,任何大小的数字对6求余,得到的结果只会是从0~5。
如何求余
求余运算符为:%
计算某个数字除以6的余数:x % 6 = 余数
0 % 6 = 0 1 % 6 = 1 2 % 6 = 2 3 % 6 = 3 4 % 6 = 4 5 % 6 = 5
36 % 6 = 0 37 % 6 = 1 38 % 6 = 2 39 % 6 = 3 40 % 6 = 4 41 % 6 = 5
如何让元素的选择随循环改变
colors = ['red','blue','green','pink','yellow','violet'] for x in range(50): t.color(colors[x % 6]) #无论x怎么变化对6的余数永远不会超过5 t.circle(x) t.left(100)
还能有更多的颜色嘛?
colors = ['red','blue','green','pink','yellow','violet'] for x in range(50): t.color(???) t.circle(x) t.left(100)
巧用整除
colors = ['red','blue','green','pink','yellow','violet']
容器中的下标值为整数并且为最大不能超过5。使用循环变量充当下标时,很快就会超过5导致容器报错。
利用整除,设定一个较大的除数并且对商进行取整,就可以控制下标的变化范围在5以内并为整数。
如何取整
s = 3.1415926 n = int(s) print(n) #n为3
注意:int是英文单词integer的缩写,integer的意思是整数。
colors = ['red','blue','green','pink','yellow','violet'] for x in range(50): t.color(colors[int(x/9)]) #x的值最大为49,所以选择除数为9 #就能保证取整后的商不会超过5 t.circle(x) t.left(100)
随机选择
让计算机帮助我们从容器中选择一个颜色
第一步:从随机之家请出选择小子
第二步:由选择小子帮助我们选一个颜色
from random import choice #从随机之家请出选择小子 n = choice(colors) # 由选择小子从colors中选择一个颜色
注意:随机颜色是计算机帮助我们选择的,我们无法预知选中的颜色是哪一个,我们能确定的是被选择的颜色一定是colors之中的。
from random import choice colors = ['red','blue','green','pink','yellow','violet'] for x in range(50): t.color(choice(colors)) # 使用选择小子选中的颜色来画圆 t.circle(x) t.left(100)
让计算机帮助我们从容器中选择一个颜色
第一步:从随机之家请出样本小子
第二步:由样本小子帮助我们选一个或多个颜色
from random import sample #从随机之家请出选择小子 n = sample(colors,1) # 由样本小子从colors中选择一个颜色 c = n[0] # 样本小子获得的内容放在一个列表中
注意:随机颜色是计算机帮助我们选择的,我们无法预知选中的颜色是哪一个,我们能确定的是被选择的颜色一定是colors之中的。
from random import choice colors = ['red','blue','green','pink','yellow','violet'] for x in range(50): n = sample(colors,1) # 使用样本小子选中的颜色来画圆 t.color(n[0]) t.circle(x) t.left(100)
做的更好
from random import choice colors = ['red','blue','green','pink','yellow','violet'] for x in range(50): t.color(choice(colors)) t.circle(x) t.left(100)
import turtle from random import choice t = turtle.Turtle() 重复多次做一件事情: 步骤一:设置画笔颜色 步骤二:绘制图案
设置画笔颜色
def my_color(): cs = ['red','green','yellow','pink','brown','blue'] c = choice(cs) t.color(c)
绘制图形
def my_shape(): t.fd(50) t.left(83)
from random import choice def my_color(): … def my_shape(): … for x in range(50): my_color() my_shape()
评论0