停止Python While语句中的无限循环
我正在开发一个简单的python程序,其中包括创建一个圆圈“按钮”,然后让用户在圆圈内单击。如果他们没有点击圆圈,会出现一条消息,说明他们在圆圈外点击,应该再试一次。然而,在最后一部分,我得到了一个关于代码的无休止的循环,尽管使用了中断。是否有任何人可以帮助查看是否存在错误?谢谢停止Python While语句中的无限循环,python,python-3.x,while-loop,conditional-statements,Python,Python 3.x,While Loop,Conditional Statements,我正在开发一个简单的python程序,其中包括创建一个圆圈“按钮”,然后让用户在圆圈内单击。如果他们没有点击圆圈,会出现一条消息,说明他们在圆圈外点击,应该再试一次。然而,在最后一部分,我得到了一个关于代码的无休止的循环,尽管使用了中断。是否有任何人可以帮助查看是否存在错误?谢谢 r = 75 while True: # to determine if click is within circle length = math.sqrt(((x-100)**2) +((y-250
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")
r=75
尽管如此:
#确定单击是否在圆内的步骤
长度=数学sqrt((x-100)**2)+(y-250)**2))
如果长度==r或长度x
和y
不会在while
循环中更新,因此如果它们在第一次迭代中不在您的循环中,长度将始终保持相同的值(大于r
),并且break
语句将永远不会执行
另外,如果长度>=r:
,则使用。无需分别检查这两种情况。(从逻辑上讲,如果长度>r:
无论如何都应该是,因为点击圆的边缘应该仍然有效。)如果你想对点击做出反应,你通常会使用某种GUI框架,TKinter、GTK、QT、wx或者类似的东西,或者是PythonCard周围的包装器。使用is,您可以连接事件,如单击元素到方法,该方法应包含您的代码。这样,代码不会在循环中运行,而是仅在单击发生时运行。
实际的代码在很大程度上取决于您选择的GUI框架,但您没有提供任何相关信息。r=75
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")
尽管如此:
#确定单击是否在圆内的步骤
长度=数学sqrt((x-100)**2)+(y-250)**2))
如果长度==r或长度
您的代码是正确的,只需要else语句。当if语句为false时,else语句将运行。
所以这里假设if语句是正确的,那么代码就会中断,但是当if语句是false时,代码会转到else语句并打印,请单击spin按钮
多谢各位 当我使用一个长度的数值,看看你得到的x和y坐标是否正确,以及你使用的公式时,代码对我来说运行良好。