Python:既不是也不是

时间:2013-12-04 03:52:44

标签: python if-statement for-loop break turtle-graphics

最奇怪的事情发生了。它非常不言自明;这里是。

for sublist in uses:
    print("for sublist in uses")
    print(uses)
    if (sublist[1] == 2):
        print("sublist[1] = 2")
        count = 1
        break
    else:   
        turtle.exitonclick()
        print("sublist[1] ≠ 2?", uses)
        break
print("*")

这就是:

for sublist in uses
[[(-100.00,-0.00), 1], [(0.00,0.00), 2], [(100.00,0.00), 1]]

然后停止。我再次点击Turtle Graphics窗口后,

sublist[1] ≠ 2? [[(-100.00,-0.00), 1], [(0.00,0.00), 2], [(100.00,0.00), 1]]
*

2 个答案:

答案 0 :(得分:0)

exitonclick()在tkinter中调用mainloop()(这就像一个无限循环),这将使龟窗保持打开状态,直到您单击画布中的任何位置。尝试将其切换为:

for sublist in uses:
    print("for sublist in uses")
    print(uses)
    if (sublist[1] == 2):
        print("sublist[1] = 2")
        count = 1
        break
    else:   
        print("sublist[1] ≠ 2?", uses)
        break
print("*")
turtle.exitonclick()

答案 1 :(得分:0)

对于循环中的第一个sublistsublist[1]1。此时,您执行等待点击的turtle.exitonclick;然后它打印预期的结果。由于sublist,您永远不会到达第二个break