turtle.Screen() 是 Python turtle 模块中用于创建和操作绘图窗口(也称为画布)的核心类,你可以把它想象成一只小乌龟在上面爬行绘画的“画板”或“舞台”。

在使用 turtle 模块时,你通常会同时用到两个对象:
Screen对象:代表画布本身,你可以用它来设置窗口的标题、大小、背景颜色等。Turtle对象:代表那只可以绘画的“小乌龟”,你可以用它来移动、转向、改变颜色、画线等。
基本用法和工作流程
下面是一个最基本的使用流程,帮助你理解 Screen 和 Turtle 是如何协同工作的。
导入模块并创建 Screen 和 Turtle 对象
import turtle # 1. 创建一个 Screen 对象,这会弹出一个绘图窗口 screen = turtle.Screen() # 2. 创建一个 Turtle 对象,它会出现在屏幕上 my_turtle = turtle.Turtle() # 3. 你可以让 my_turtle 在 screen 上绘画了 my_turtle.forward(100) # 向前移动100像素 my_turtle.left(90) # 向左转90度 my_turtle.forward(100) # 再向前移动100像素 # 4. (重要!)保持窗口打开,直到用户点击关闭 screen.mainloop() # 或者使用 turtle.done()
当你运行这段代码时,会看到一个窗口弹出,里面有一只小乌龟画出了一个直角。
turtle.Screen() 的常用方法和属性
Screen 对象提供了很多方法来控制窗口的外观和行为,以下是一些最常用的:

设置窗口标题
titlestring)`栏文本。
screen.title("我的第一个海龟绘图")
设置窗口大小
screensize(width, height, bg): 设置画布的宽度和高度(单位是像素),并可以设置背景颜色。setup(width, height, startx, starty): 设置整个主窗口的大小和位置。
# 设置画布大小为 800x600 像素,背景为浅蓝色 screen.screensize(800, 600, "lightblue") # 设置主窗口大小为 1000x700,并在屏幕中央打开 screen.setup(1000, 700, 0, 0)
设置背景颜色
bgcolor(color)
设置画布的背景颜色,颜色可以是颜色名称(如 "red", "green")或十六进制值(如 "#FF0000")。
screen.bgcolor("lightgreen")
控制窗口事件
exitonclick(): 当用户点击窗口时,程序退出并关闭窗口。mainloop()或turtle.done(): 启动事件循环,让窗口保持打开状态,等待用户交互(如点击),这是程序结束前必须调用的方法,否则窗口会一闪而过。
# 程序会一直运行,直到你点击窗口的关闭按钮 screen.mainloop() # 或者 # turtle.done() # 两者功能类似
获取窗口信息
window_width(): 返回窗口的当前宽度。window_height(): 返回窗口的当前高度。
print(f"窗口宽度: {screen.window_width()}")
print(f"窗口高度: {screen.window_height()}")
使用 tracer() 和 update() 实现动画
默认情况下,海龟的每一步移动都会立即在屏幕上绘制出来,对于复杂的动画,这可能会很慢。tracer() 和 update() 可以用来优化性能。
tracer(n=0): 关闭屏幕的自动更新,设置n=0表示完全不更新,n=1表示每次更新后只重绘一次。update(): 手动重绘屏幕,当你完成了一系列不希望立即显示的绘图操作后,调用此方法一次性显示结果。
import turtle
screen = turtle.Screen()
screen.tracer(0) # 关闭自动更新
artist = turtle.Turtle()
artist.speed(0) # 设置为最快速度
# 绘制一个复杂的图形,比如一个旋转的螺旋
for i in range(200):
artist.forward(i)
artist.left(91)
# 手动更新屏幕,一次性显示所有内容
screen.update()
screen.mainloop()
如果不使用 tracer 和 update,你会看到海龟一步一步地画出螺旋,过程会很慢且不流畅。

监听键盘事件
listen(): 让屏幕开始监听键盘事件。
onkey(function, key): 当按下指定的按键时,调用指定的函数。
import turtle
def move_forward():
artist.forward(50)
def turn_left():
artist.left(45)
screen = turtle.Screen()
screen.title("键盘控制海龟")
artist = turtle.Turtle()
artist.shape("turtle")
# 监听键盘
screen.listen()
screen.onkey(move_forward, "Up") # 按上箭头键前进
screen.onkey(turn_left, "Left") # 按左箭头键左转
screen.mainloop()
你可以用键盘上的上箭头和左箭头来控制海龟了。
完整示例:绘制一个彩色五角星
这个例子综合了 Screen 和 Turtle 的多种用法。
import turtle
import time
# --- 1. 设置画布 ---
screen = turtle.Screen()
screen.title("彩色五角星")
screen.bgcolor("black") # 黑色背景让星星更突出
screen.setup(600, 600) # 设置一个固定大小的窗口
# --- 2. 创建海龟 ---
star = turtle.Turtle()
star.speed(1) # 设置为慢速,以便观察绘图过程
star.color("yellow") # 设置海龟和画笔的颜色
star.pensize(3) # 设置画笔粗细
# --- 3. 绘制五角星的函数 ---
def draw_star(size):
"""绘制一个五角星"""
for _ in range(5):
star.forward(size)
star.right(144) # 144度是画五角星的关键角度
# --- 4. 执行绘图 ---
draw_star(200)
# --- 5. 完成并保持窗口打开 ---
print("绘图完成!")
time.sleep(2) # 等待2秒,让用户看到结果
screen.bye() # 关闭窗口
| 类/对象 | 作用 | 常用方法/属性 |
|---|---|---|
turtle.Screen() |
画布/窗口 | title(), bgcolor(), setup(), screensize(), mainloop(), listen(), onkey(), tracer() |
turtle.Turtle() |
画笔/海龟 | forward(), backward(), left(), right(), penup(), pendown(), color(), begin_fill(), end_fill() |
记住这个核心思想:Screen 是舞台,Turtle 是演员,你需要先搭建好舞台(Screen),然后才能让演员(Turtle)在上面表演(绘图)。
