Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:turtle-(exit)在无限循环中单击onclick?_Python_Loops_Onclick_Turtle Graphics - Fatal编程技术网

Python:turtle-(exit)在无限循环中单击onclick?

Python:turtle-(exit)在无限循环中单击onclick?,python,loops,onclick,turtle-graphics,Python,Loops,Onclick,Turtle Graphics,我正在学习Python(2.7),目前turtles在列表中 关于文档,有exitonclick()和onclick()等函数。但是,我在使用它们时遇到了一些问题 例如: 此单击事件正在工作,但仅在循环完成后: [...] for i in range(4): trtl.forward(100) trtl.left(90) scrn.exitonclick() [...] 但我想做的是这样的事情(但不起作用): 或者像这样: [...] while True: trtl

我正在学习Python(2.7),目前turtles在列表中

关于文档,有exitonclick()和onclick()等函数。但是,我在使用它们时遇到了一些问题

例如: 此单击事件正在工作,但仅在循环完成后:

[...]
for i in range(4):
    trtl.forward(100)
    trtl.left(90)
scrn.exitonclick()
[...]
但我想做的是这样的事情(但不起作用):

或者像这样:

[...]
while True:
    trtl.forward(100)
    trtl.left(91)
    scrn.screenonclick(break)
[...]
我想你已经大致了解了我要尝试的概念

使用这些onclick方法或实现onclick中断的其他方法有什么提示吗


谢谢

您是否尝试将单击处理程序移到开头?此处,将在绘图开始前绑定到单击:

def say_bye(x, y):
    bye()

scrn.onclick(say_bye)

for i in range(4):
    trtl.forward(100)
    trtl.left(90)

嗯,不幸的是,它不是一个属性:“AttributeError:“\u Screen”对象没有“screenonclick”属性。不幸的是,第二个想法也不起作用。程序只是在exitonclick()上阻塞,直到屏幕被单击为止-这显然是在进入循环之前退出屏幕^^请再试一次:)谢谢你的坚持。:-)是的,这很有效!至少以务实的方式。缺点似乎是Screen实例必须是全局变量,因此可以调用bye()-/精彩的!如果你满意这个答案,你能接受吗?以下是如何:
def say_bye(x, y):
    bye()

scrn.onclick(say_bye)

for i in range(4):
    trtl.forward(100)
    trtl.left(90)