初学者尝试Python Turtle模块
我还是个初学者,正在尝试用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 个回答
这样修复它
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()
// 完成绘图
屏幕不应该“消失”——只要你正确调用了mainloop()这个方法。不过,如果你的代码里有语法错误,或者其他的Python异常被触发,程序就会立刻结束。
如果你不是通过点击程序来运行它,而是从命令终端运行,你就能看到错误的详细信息。
把这些错误信息和你的代码(记得格式要正确,可以通过点击问题上的“编辑”来做到)一起发到你的提问里,这样大家才能更好地帮助你。
顺便说一下,按照你描述的方式调用mainloop方法对我来说是有效的。
还有一点:Python自带的Tkinter海龟模块大多是个玩具,真正有趣的是在交互模式下和它一起玩,边输入指令边操作,而不是写一个完整的脚本。如果你想用海龟模型做一些认真的艺术作品,自己写一个海龟可能会更好。
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()
。