我的程序崩溃(python.exe已停止工作)

时间:2014-12-13 21:57:21

标签: python eclipse crash tkinter

所以我为学校做了一个项目,它不会运行,我不知道为什么。每次我按下"开始"按钮我制作,整个程序冻结并停止工作,并看到我早些时候制作了一个类似的程序(这个更清洁)我真的很困惑。 这是代码:

from tkinter import *

root=Tk()
root.minsize(width=3, height=100)
root.title("Counter")

list=[]
list.append(0)

def counter():
    t = 10
    c = 0
    for row in list:
        if (t < 60) or (c < 5):
            l=Label(root, text=t).grid(row=1, column=c)
            t=10+10
            c=0+1
            list.append(t)
    print("") #This is just for debugging purpose
    for row in list:
        if (t < 110) or (c < 10):
            c=0
            ll=Label(root, text=t).grid(row=2, column=c)
            c=0+1
            t+10
            list.append(t)
    return

label=Label(root, text="...").grid(row=0, column=0)
b=Button(root, text="Start", command=counter).grid(row=0, column=1)
label=Label(root, text="...").grid(row=0, column=2)

root.mainloop()

感谢所有的提示,因为你想出来了! :d

2 个答案:

答案 0 :(得分:0)

问题在于您正在修改您正在迭代的列表。除了list不是一个好名字,因为它影响内置的名称,你总是在列表中附加一个元素。 此外,由于t始终分配给20c1,因此不会满足任何条件。

答案 1 :(得分:0)

它冻结的原因是因为你在循环时修改列表:

list.append(t)

你做了两次。你不能以这种方式做到这一点,你应该使用一个单独的列表来执行你想要做的任何事情或某种列表迭代器。同样如前所述,

 t+10 

没有任何影响,你不应该命名你的名单&#34; list&#34;无论如何,因为它是一个用于不同目的的保留字。