如何删除书面文字 - Python 3.6.4 Turtle
How to remove written text - Python 3.6.4 Turtle
我是 Python 3.6.4 的新手,我正在用乌龟创建动画。我无法从屏幕上删除一行书面文字。这是我的代码。
wn.bgcolor('purple')
time.sleep(1)
turtle.write("Welcome", font=("Lucida Sans Unicode", 16, "normal"))
time.sleep(1)
wn.bgcolor('black')
您可以查看网站https://docs.python.org/2/library/turtle.html了解更多
信息,但我的想法是你应该这样做
turtle.clear()
那么你应该把整个程序去掉文本重做。
希望对您有所帮助。
你不能。
您可以 turtle.clear()
整个屏幕,然后重做您在编写文本之前所做的事情;你可以在你放置文本等的地方放一个白色方块,但是乌龟没有 "undoing"。
turtle 模块实际上只是将 像素 绘制到 canvas 上。没有关于完成了什么的内部信息,只有 canvas 现在在绘制的地方有不同的颜色。换句话说:就像你用笔在纸上画画一样:纸在笔触及的地方有不同的颜色,但要撤销你写的东西,你需要拿出橡皮擦擦擦那些地方你写了。或者,你可以拿一张新纸重新开始,省略你写的部分。在计算机中,您经常会这样做 - 绘图占用计算机的时间非常少,如果您将乌龟的速度设置为 "fastest" 并使其不可见,您甚至不会看到屏幕已被清除之间。
好消息是,如果您处于此时,您可能非常擅长使用 turtle – 因此实际习惯存储操作并稍后重做它们的方法可能是一个好点,这样您就可以实现我上面提到的 turtle.clear()
和重做方法。
对初学者友好的方法如下:
actions = []
actions.append( ( "pen down", ) )
actions.append( ( "go to" , 10 , 8) )
actions.append( ( "write", "funny text") )
actions.append( ( "go to" , 8 , 2) )
actions.append( ( "sleep", 5) )
actions.append( ( "clear", ) )
for action in actions:
if action[0] == "pen down":
turtle.pendown()
elif action[0] == "go to":
turtle.goto(action[1], action[2])
elif action[0] == "sleep":
time.sleep(action[1])
elif action[0] == "clear":
……
你明白了。
然后,你可以通过简单的
删除假设的第三步(注意!Python 从 0 开始计算元素!)
del actions[2]
正如您想象的那样,有一个 "command list" 比每一步都尝试将命令字符串与一组命令进行比较更酷的方法,但是它们需要一些关于字典和可调用对象的知识,所以,我认为这将是一个不错的开始。
Turtle提供了一些组件来分别处理。
在你的情况下,它是一支笔,一个 RawTurtle class,可以自行绘制和清除。
您想看 RawTurtle class 吗?见https://docs.python.org/2/library/turtle.html#turtle.RawTurtle
中的解释
这是一些您可以轻松跟进的示例代码。
# First, make a turtle object
# Second, Call a .getpen() method from the instance you created before.
# Third, Write Some Text, in my case, it is 'helloworld'
# Finally, clear what you write on the screen.
import turtle
sample = turtle.Turtle()
pen = sample.getpen()
# 'Helloworld" text will show up on your screen
pen.write("Helloworld")
# 'Helloworld' will be disapeared as you type it on console.
pen.clear()
Python 3 乌龟可以撤消操作。你通常不需要 .clear()
因为它删除了乌龟所做的一切。通常,我使用专门的 turtle 来处理文本并将其停放在需要的地方。然后根据需要使用 .write()
和 .undo()
:
import time
from turtle import Turtle, Screen
screen = Screen()
turtle = Turtle(visible=False)
screen.bgcolor('purple')
time.sleep(1)
turtle.write('Welcome', align='center', font=('Lucida Sans Unicode', 32, 'normal'))
time.sleep(1)
turtle.undo()
screen.mainloop()
我是 Python 3.6.4 的新手,我正在用乌龟创建动画。我无法从屏幕上删除一行书面文字。这是我的代码。
wn.bgcolor('purple')
time.sleep(1)
turtle.write("Welcome", font=("Lucida Sans Unicode", 16, "normal"))
time.sleep(1)
wn.bgcolor('black')
您可以查看网站https://docs.python.org/2/library/turtle.html了解更多
信息,但我的想法是你应该这样做
turtle.clear()
那么你应该把整个程序去掉文本重做。
希望对您有所帮助。
你不能。
您可以 turtle.clear()
整个屏幕,然后重做您在编写文本之前所做的事情;你可以在你放置文本等的地方放一个白色方块,但是乌龟没有 "undoing"。
turtle 模块实际上只是将 像素 绘制到 canvas 上。没有关于完成了什么的内部信息,只有 canvas 现在在绘制的地方有不同的颜色。换句话说:就像你用笔在纸上画画一样:纸在笔触及的地方有不同的颜色,但要撤销你写的东西,你需要拿出橡皮擦擦擦那些地方你写了。或者,你可以拿一张新纸重新开始,省略你写的部分。在计算机中,您经常会这样做 - 绘图占用计算机的时间非常少,如果您将乌龟的速度设置为 "fastest" 并使其不可见,您甚至不会看到屏幕已被清除之间。
好消息是,如果您处于此时,您可能非常擅长使用 turtle – 因此实际习惯存储操作并稍后重做它们的方法可能是一个好点,这样您就可以实现我上面提到的 turtle.clear()
和重做方法。
对初学者友好的方法如下:
actions = []
actions.append( ( "pen down", ) )
actions.append( ( "go to" , 10 , 8) )
actions.append( ( "write", "funny text") )
actions.append( ( "go to" , 8 , 2) )
actions.append( ( "sleep", 5) )
actions.append( ( "clear", ) )
for action in actions:
if action[0] == "pen down":
turtle.pendown()
elif action[0] == "go to":
turtle.goto(action[1], action[2])
elif action[0] == "sleep":
time.sleep(action[1])
elif action[0] == "clear":
……
你明白了。
然后,你可以通过简单的
删除假设的第三步(注意!Python 从 0 开始计算元素!)del actions[2]
正如您想象的那样,有一个 "command list" 比每一步都尝试将命令字符串与一组命令进行比较更酷的方法,但是它们需要一些关于字典和可调用对象的知识,所以,我认为这将是一个不错的开始。
Turtle提供了一些组件来分别处理。
在你的情况下,它是一支笔,一个 RawTurtle class,可以自行绘制和清除。
您想看 RawTurtle class 吗?见https://docs.python.org/2/library/turtle.html#turtle.RawTurtle
中的解释这是一些您可以轻松跟进的示例代码。
# First, make a turtle object
# Second, Call a .getpen() method from the instance you created before.
# Third, Write Some Text, in my case, it is 'helloworld'
# Finally, clear what you write on the screen.
import turtle
sample = turtle.Turtle()
pen = sample.getpen()
# 'Helloworld" text will show up on your screen
pen.write("Helloworld")
# 'Helloworld' will be disapeared as you type it on console.
pen.clear()
Python 3 乌龟可以撤消操作。你通常不需要 .clear()
因为它删除了乌龟所做的一切。通常,我使用专门的 turtle 来处理文本并将其停放在需要的地方。然后根据需要使用 .write()
和 .undo()
:
import time
from turtle import Turtle, Screen
screen = Screen()
turtle = Turtle(visible=False)
screen.bgcolor('purple')
time.sleep(1)
turtle.write('Welcome', align='center', font=('Lucida Sans Unicode', 32, 'normal'))
time.sleep(1)
turtle.undo()
screen.mainloop()