前面讲过三种推导式创建序列,今天用turtle库结合推导式画五彩同心圆和网格棋盘
五彩同心圆
import turtle
p = turtle.Pen() #定义画笔对象
#五彩同心圆
radius = [x*10 for x in range(1,10)] #[10,20,30....,90]
p.width(4)
my_colors = ['red','yellow','blue','green','black']
for r,i in zip(radius,range(len(radius))):
p.penup() #抬起画笔
p.goto(0,-r)
p.pendown() #放下画笔
p.color(my_colors[i%len(my_colors)])
p.circle(r)
turtle.done() #使画布一直存在,不会被清除
最终效果如下
接下来是网格棋盘
import turtle
p = turtle.Pen() #定义画笔对象
#网格
hengxian = [i for i in range(0,201,10)]
shuxian = [i for i in range(0,201,10)]
for h,s in zip(hengxian,shuxian):
p.penup()
p.goto(0,h)
p.pendown()
p.goto(200,h)
p.penup()
p.goto(s, 200)
p.pendown()
p.goto(s, 0)
turtle.done()
最终效果如下
利用序列推导式结合turtle库能画出各种各样复杂的图形
其他常见的turtle库函数如下:
命令 | 说明 |
turtle.forward(distance) | 向当前画笔方向移动distance像素长度 |
turtle.backward(distance) | 向当前画笔相反方向移动distance像素长度 |
turtle.right(degree) | 顺时针移动degree° |
turtle.left(degree) | 逆时针移动degree° |
turtle.pendown() | 移动时绘制图形,缺省时也为绘制 |
turtle.goto(x,y) | 将画笔移动到坐标为x,y的位置 |
turtle.penup() | 提起笔移动,不绘制图形,用于另起一个地方绘制 |
turtle.circle() | 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |