在循环中卡住python

时间:2017-08-17 21:44:03

标签: python-3.x while-loop break

我无法让我的while循环中断。我试图从起点移动圆圈,直到它到达窗口的边缘。我可以让它移动,但它不会停止移动。我尝试过不同类型的循环,甚至添加一个中断,但它仍然不会破坏:/

from time import *
from graphics import *
from random import *
win = GraphWin("My Program", 500,400)

def MoveRight(circle):
    circle_center = circle.getCenter()
    center_x = circle_center.getX()
    center_y = circle_center.getY()
    circle.draw(win)
    for center_x in range(center_x, 450):
        circle.move(10,0)
        sleep(.15)
    circle_center = circle.getCenter()

my_circle = Circle(Point(200,50), 20)
my_circle.setFill("blue")
MoveRight(my_circle)

编辑: 这已经解决了!

1 个答案:

答案 0 :(得分:2)

我认为圆的中心位于200 x轴上 然后在行:

 for center_x in range(center_x, 450):

center_x等于200,200(center_x)和450之间的范围是250 然后这个for循环将运行250次。

代码的其余部分

circle.move(10,0)
sleep(.15)

运行250次。所以它将运行250次10步,2500步!

要解决您的问题,您应该这样做:

while center_x != 450:
    circle.move(10, 0)
    center_x += 10 # Added this
    sleep(.15)

修改: 我忘了更新center_x ...

(请记住,圆圈不会停在边缘,它会停在450处 如果边缘是450那么它应该有效。)

(圆圈不会停在450处,这个圆圈的中心会。)