初学者尝试Python Turtle模块

0 投票
4 回答
5595 浏览
提问于 2025-04-17 10:44

我还是个初学者,正在尝试用Python玩玩。我写了一些非常简单的代码,使用了Turtle模块,但有个问题我搞不明白:为什么图形界面一画完就立刻关闭了?

我试过用turtle.getscreen()._root.mainloop(),还有sleep命令(不过我的命令行不识别这个),但都没用。有没有什么想法?

我知道这个问题很简单,但大家都说理解事物的最好方法就是去尝试各种事情 :)

代码(摘自评论):

from turtle import *
setup()
title("turtle test")
clear()
down()
forward(50)
right(90)
forward(50)
right(90)
forward(50)
right(90)
forward(500)
turtle.getscreen()._root.mainloop()

4 个回答

0

这样修复它

from turtle import * // 从turtle库导入所有内容

setup() // 设置画布

title("turtle test") // 给窗口起个名字,叫“海龟测试”

clear() // 清空画布上的内容

down() // 把笔放下,准备画图

forward(50) // 向前移动50个单位

right(90) // 向右转90度

forward(50) // 再向前移动50个单位

right(90) // 再向右转90度

forward(50) // 再向前移动50个单位

right(90) // 再向右转90度

forward(500) // 向前移动500个单位

done() // 完成绘图

1

屏幕不应该“消失”——只要你正确调用了mainloop()这个方法。不过,如果你的代码里有语法错误,或者其他的Python异常被触发,程序就会立刻结束。

如果你不是通过点击程序来运行它,而是从命令终端运行,你就能看到错误的详细信息。

把这些错误信息和你的代码(记得格式要正确,可以通过点击问题上的“编辑”来做到)一起发到你的提问里,这样大家才能更好地帮助你。

顺便说一下,按照你描述的方式调用mainloop方法对我来说是有效的。

还有一点:Python自带的Tkinter海龟模块大多是个玩具,真正有趣的是在交互模式下和它一起玩,边输入指令边操作,而不是写一个完整的脚本。如果你想用海龟模型做一些认真的艺术作品,自己写一个海龟可能会更好。

2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'turtle' is not defined

因为你用了 from turtle import * 这个语句,所以你没有办法使用 turtle.getscreen()._root.mainloop() 这个功能,这就导致了上面提到的错误。

你可以试试直接用 mainloop()

撰写回答