from turtle import *
def PleaseStop():
SomeWord = input("Which word?")
Screen().onkey(PleaseStop,"a")
Screen().listen()
按" a"将使程序问"哪个词?"永远。
除了关闭程序之外,没办法阻止它。如何让onkey
仅调用一次该函数?
答案 0 :(得分:0)
您需要通过calling onkey
with None
as first parameter删除事件绑定:
import turtle
def OnKeyA():
print 'Key "a" was pressed'
turtle.Screen().onkey(None, 'a')
turtle.Screen().onkey(OnKeyA, 'a')
turtle.Screen().listen()
turtle.mainloop()
答案 1 :(得分:0)
不能解决问题。两种方法都可以打印,输入()是 永远重复,即使没有重复。
我相信@Acorn正在朝着正确的方向前进,但提供的示例并不完整。我觉得这是一个更完整的解决方案:
from turtle import Turtle, Screen, mainloop
def OnKeyA():
screen.onkey(None, 'a')
some_word = raw_input("Which word? ")
turtle.write(some_word, font=('Arial', 18, 'normal'))
screen = Screen()
turtle = Turtle()
screen.onkey(OnKeyA, 'a')
print("Click on turtle window to make it active, then type 'a'")
screen.listen()
mainloop()
请注意,这种方法很尴尬,单击“乌龟图形”窗口使其处于活动状态,然后单击“ a”,然后返回到控制台窗口以键入您的单词。如果/当您使用Python 3时,可以使用乌龟函数textinput()
来提示用户输入文本,而不必从控制台使用input()
。