【问题标题】:In Python: how do I repeatedly Create and Delete a Turtle window?在 Python 中:如何重复创建和删除 Turtle 窗口?
【发布时间】:2020-12-15 13:50:33
【问题描述】:

我想在我的 Python 程序中做这样的事情(但到目前为止我没有尝试过):

a1。创建龟屏:my_turtle_window = turtle.Screen ()

a2。创建海龟:my_turtle_list.append (turtle.Turtle ())

a3。画海龟:my_turtle_list [number_of_my_turtles - 1].pendown ()

a4。移除 Turtle 屏幕:my_turtle_window.bye ()

b1.创建龟屏:my_turtle_window = turtle.Screen ()

b2。创建海龟:my_turtle_list.append (turtle.Turtle ())

b3.画海龟:my_turtle_list [number_of_my_turtles - 1].pendown ()

b4.移除 Turtle 屏幕:my_turtle_window.bye ()

c1.创建龟屏:my_turtle_window = turtle.Screen ()

c2。创建海龟:my_turtle_list.append (turtle.Turtle ())

c3.画海龟:my_turtle_list [number_of_my_turtles - 1].pendown ()

c4.移除 Turtle 屏幕:my_turtle_window.bye ()

但是 Turtle 库代码总是在步骤 b2 崩溃,我不知道为什么。 换句话说:您似乎无法从新的 Turtle 屏幕重新开始。 感谢您的帮助! :)

【问题讨论】:

  • 欢迎堆栈溢出,请考虑查看what topics can you ask about herehow to ask,SO 用于解决编程的具体问题,您应该提供迄今为止尝试过的代码,描述问题,显示努力一开始尝试自己解决(你之前读过什么等),“我需要这样做,给我代码”问题大多是关闭的。

标签: python screen turtle-graphics


【解决方案1】:

问题在于turtle.bye 做了什么;一旦被调用,你可能不会继续调用turtle方法。这个简单的代码可以重现错误:

import turtle

turtle.bye()
turtle.forward(100)

你可以使用turtle.clear(),而不是turtle.bye()

import turtle

my_turtle_list = list()

my_turtle_window = turtle.Screen()
my_turtle_list.append(turtle.Turtle())
my_turtle_list[len(my_turtle_list) - 1].pendown()
my_turtle_window.clear()

my_turtle_window = turtle.Screen()
my_turtle_list.append(turtle.Turtle())
my_turtle_list[len(my_turtle_list) - 1].pendown()
my_turtle_window.clear()

my_turtle_window = turtle.Screen()
my_turtle_list.append(turtle.Turtle())
my_turtle_list[len(my_turtle_list) - 1].pendown()
my_turtle_window.clear()

注意:不要每次都查找现有海龟的数量来获取最后一只海龟,而是使用索引-1,它为您提供数组的最后一个元素:

import turtle

my_turtle_list = list()

my_turtle_window = turtle.Screen()
my_turtle_list.append(turtle.Turtle())
my_turtle_list[-1].pendown()
my_turtle_window.clear()

my_turtle_window = turtle.Screen()
my_turtle_list.append(turtle.Turtle())
my_turtle_list[-1].pendown()
my_turtle_window.clear()

my_turtle_window = turtle.Screen()
my_turtle_list.append(turtle.Turtle())
my_turtle_list[-1].pendown()
my_turtle_window.clear()

最后,有了clear()函数,就不用每次都重新定义屏幕了:

import turtle

my_turtle_list = list()
my_turtle_window = turtle.Screen()

my_turtle_list.append(turtle.Turtle())
my_turtle_list[-1].pendown()
my_turtle_window.clear()

my_turtle_list.append(turtle.Turtle())
my_turtle_list[-1].pendown()
my_turtle_window.clear()

my_turtle_list.append(turtle.Turtle())
my_turtle_list[-1].pendown()
my_turtle_window.clear()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多