python
运行
import turtle as t # 导入turtle库并简称为t,用于图形绘制
import random # 导入random库,用于随机数生成t.delay(0) # 设置绘图延迟为0,加快绘图速度
colors = ["red", "blue", "green", "yellow", "orange"] # 定义颜色列表for i in range(999999): # 循环999999次,绘制图形t.color(random.choice(colors)) # 随机选择颜色t.fd(1+i) # 向前移动(1+i)个单位,步长逐渐增加t.lt(90) # 向左转90度,形成直角
t.done() # 完成绘制,保持窗口打开
核心知识点与重点
-
turtle 库基础:
t.fd(distance)
: 向前移动指定距离t.lt(angle)
: 向左旋转指定角度(右转为rt()
)t.color(color)
: 设置画笔颜色
-
循环结构:
- 使用
for
循环控制绘图次数 - 通过
range(999999)
创建大次数循环
- 使用
-
随机数应用:
random.choice(colors)
从列表中随机选择元素- 每次循环随机改变颜色,增强视觉效果
-
数学原理:
- 每次左转 90 度形成直角,步长递增形成螺旋图案
- 数学公式:
distance = 1 + i
,导致图案呈螺旋状扩展
同难度练习题
一、填空题(答案见文末)
-
补全代码:绘制一个正方形,边长为 100
python
运行
import turtle as t for _ in range(__):t.fd(__)t.rt(90) t.done()
-
补全代码:随机生成 10 个点,每个点颜色随机
python
运行
import turtle as t import random colors = ["red", "blue", "green"] for _ in range(10):t.penup()t.goto(random.randint(-200, 200), __)t.pendown()t.dot(20, __) t.done()
-
补全代码:绘制一个六边形
python
运行
import turtle as t for _ in range(6):t.fd(80)t.rt(__) t.done()
-
补全代码:绘制彩虹色螺旋线(使用颜色列表)
python
运行
import turtle as t colors = ["red", "orange", "yellow", "green", "blue", "purple"] for i in range(100):t.color(colors[__])t.fd(i*2)t.lt(60) t.done()
-
补全代码:绘制同心圆,半径从 20 递增到 100,每次增加 20
python
运行
import turtle as t for radius in range(20, 101, __):t.penup()t.goto(0, __)t.pendown()t.circle(radius) t.done()
二、选择题(答案见文末)
-
以下哪个命令可以让海龟向右旋转 45 度?
A)t.right(45)
B)t.rt(45)
C)t.turn(45, 'right')
D) A 和 B 都正确 -
要绘制一个三角形,需要循环几次?
A) 3
B) 4
C) 5
D) 6 -
如何隐藏海龟图标?
A)t.hide()
B)t.hideturtle()
C)t.invisible()
D)t.show(False)
-
以下哪行代码会导致错误?
A)t.color('red', 'blue')
B)t.pensize(5)
C)t.goto(100, 200, 300)
D)t.speed(0)
-
绘制一个五角星需要旋转的角度是?
A) 72 度
B) 120 度
C) 144 度
D) 180 度
三、判断题(答案见文末)
turtle
库只能绘制简单图形,无法绘制复杂图案。( )t.penup()
命令会抬起画笔,移动时不绘制线条。( )- 使用
random.randint(1, 10)
可以生成 1 到 10 之间的浮点数。( ) - 绘制圆形时,
t.circle(50)
中的 50 表示圆的直径。( ) t.done()
必须放在 turtle 程序的最后一行,否则窗口会自动关闭。( )
四、编程题(答案见文末)
-
绘制彩色螺旋正方形:使用 turtle 绘制一个螺旋状的正方形图案,每次旋转后边长增加 5,颜色随机变化。
-
绘制奥运五环:绘制奥运五环标志(蓝、黄、黑、绿、红),环的半径为 50,间距为 70。
-
随机漫步:创建一个程序,让海龟在屏幕上随机移动,每次移动距离为 20-50 之间的随机数,角度为 0-360 之间的随机数。
-
绘制花朵:使用 turtle 绘制一朵花,花瓣颜色随机,花蕊为黄色,花茎为绿色。
-
绘制棋盘:绘制一个 8×8 的棋盘,交替填充黑色和白色,每个格子边长为 50。
答案与解析
填空题答案
-
4
,100
解析:正方形四条边,每条边长 100 -
random.randint(-200, 200)
,random.choice(colors)
解析:随机 Y 坐标和随机颜色 -
60
解析:六边形每个外角为 60 度(360/6) -
i % 6
解析:通过取余循环使用颜色列表 -
20
,-radius
解析:半径每次增加 20,圆心在 (0, -radius)
选择题答案
-
D
解析:t.right()
和t.rt()
都可以右转 -
A
解析:三角形有三条边,循环 3 次 -
B
解析:hideturtle()
隐藏海龟图标 -
C
解析:goto()
只能接受 x,y 两个参数 -
C
解析:五角星每个角旋转 144 度(360/5×2)
判断题答案
-
×
解析:turtle 可以绘制复杂图案 -
√
解析:penup()
抬起画笔 -
×
解析:randint()
生成整数 -
×
解析:circle(50)
中 50 是半径 -
√
解析:done()
保持窗口打开
编程题答案
-
彩色螺旋正方形
python
运行
import turtle as t import random colors = ["red", "blue", "green", "yellow", "orange"] length = 50 for _ in range(36):t.color(random.choice(colors))t.fd(length)t.rt(90)length += 5 t.done()
-
奥运五环
python
运行
import turtle as t colors = ["blue", "yellow", "black", "green", "red"] positions = [(-140, 0), (-70, -50), (0, 0), (70, -50), (140, 0)] for i in range(5):t.penup()t.goto(positions[i])t.pendown()t.color(colors[i])t.pensize(10)t.circle(50) t.done()
-
随机漫步
python
运行
import turtle as t import random t.speed(0) for _ in range(100):distance = random.randint(20, 50)angle = random.randint(0, 360)t.rt(angle)t.fd(distance) t.done()
-
花朵
python
运行
import turtle as t import random colors = ["red", "pink", "purple", "orange"] # 绘制花瓣 for _ in range(12):t.color(random.choice(colors))t.circle(100, 60)t.lt(120)t.circle(100, 60)t.rt(90) # 绘制花蕊 t.penup() t.goto(0, 70) t.pendown() t.color("yellow") t.begin_fill() t.circle(20) t.end_fill() # 绘制花茎 t.penup() t.goto(0, 0) t.pendown() t.color("green") t.pensize(10) t.goto(0, -200) t.done()
-
棋盘
python
运行
import turtle as t t.speed(0) size = 50 for row in range(8):for col in range(8):t.penup()t.goto(col * size - 200, 200 - row * size)t.pendown()if (row + col) % 2 == 0:t.fillcolor("black")else:t.fillcolor("white")t.begin_fill()for _ in range(4):t.fd(size)t.rt(90)t.end_fill() t.done()