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()