停止Python中的无限循环虽然语句
我正在研究一个简单的python程序,它涉及到创建一个圆圈“按钮”,然后让用户在圆圈内单击。如果他们没有点击该圈子,则会显示一条消息,指出他们已经在圈子外点击并应该再试一次。但是,在最后一部分,尽管使用了中断,但我仍然在代码中获得了无限循环。有什么方法可以帮助人们查看是否有错误?谢谢!停止Python中的无限循环虽然语句
r = 75
while True:
# to determine if click is within circle
length = math.sqrt(((x-100)**2) +((y-250)**2))
if length == r or length < r:
break
# prints if user does not click within the range
print("Please click within the spin button")
x
和y
从不在while
环路内更新,这样,如果他们在第一次迭代你的圈子之外,length
将始终保持在相同的值(大于r
),以及break
语句永远不会被执行。
另外,使用if length >= r:
。无需分别检查两个条件。 (从逻辑上讲,它应该是if length > r:
,因为点击圆的边缘仍然应该计数。)
非常感谢!这工作! – Kara 2014-11-02 17:47:16
如果您想对点击做出反应,您通常会使用某种GUI框架,TKinter,GTK,QT, wx类似的东西或围绕PythonCard的封装。用你可以连接一个事件,比如点击一个元素到一个应该包含你的代码的方法。这样,代码不会在循环中运行,而只会在点击发生时运行。 实际的代码很大程度上取决于您选择的GUI框架,但您并未提供任何有关该信息的信息。
r = 75
while True:
# to determine if click is within circle
length = math.sqrt(((x-100)**2) +((y-250)**2))
if length == r or length < r:
break
else:
# prints if user does not click within the range
print("Please click within the spin button")
您的代码是正确的,只需要其他语句。 else语句在if语句为false时运行。 所以在这里假设如果语句是正确的,那么代码将会中断,但是如果语句为false,代码将转到else语句并打印请点击旋转按钮。
谢谢。
这个答案只是没有任何解释的代码。 – BDL 2014-12-12 21:27:20
当我使用长度的数值时,代码对我来说工作正常,看看您得到的x和y坐标是否正确以及您使用的公式。 – 2014-11-02 06:20:16