有没有可能使这个for循环不改变变量,并且仍然得到相同的结果?

2024-10-02 04:35:51 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,我正在尝试为一个数据库制作一个gui,用于存储一个人的姓名和特定信息。现在我正处在这个项目的尾声,我遇到了一个我相信可以解决的问题。我有一个for循环,它改变了一个变量(标签),并将该变量打包到GUI中,这一切都很好,直到我被要求删除这个变量(标签),因为它被声明为最后一个变量,因为它是for循环,有什么想法吗

def read_from_database():
    global label4
    global But2
    global Counter
    global e4
    global Namelist
    if(Counter == 0):
        Counter += 1
        But4.config(relief=SUNKEN)
        But5.config(relief=SUNKEN)
        But6.config(relief=SUNKEN)
        sql = ("SELECT * FROM nameinfo")
        for row in c.execute(sql): # Here is the for loop
            Namelist = Label(root, text=row[0])
            Namelist.pack()
        label4 = Label(root, text="Name:")
        label4.pack(side=LEFT)
        e4 = Entry(root)
        e4.pack(side=LEFT)
        But2.pack()

def submit(): # submit your results
    global Readinfo
    name = (e4.get())

    label4.destroy()
    But2.pack_forget()
    e4.destroy()
    sql = ("SELECT * FROM nameinfo")
    for sql1 in c.execute(sql):
        Namelist.pack_forget()


    sql = "SELECT * FROM nameinfo WHERE name = ?"
    for row in c.execute(sql, (name, )):
        NAME = ('Name: ' + row[0])
        AGE = (', Age: ' + str(row[1]))
        COLOR = (', Favorite color: ' + row[2])
        Readinfo = Label(root, text=NAME + AGE + COLOR, bg='black', 
    fg='white')
        Readinfo.pack()

    Clear.pack(padx=8, pady=5)

def clear(): # How I later clear the results
    global Counter
    Counter += -1
    try:
        Readinfo
    except NameError:
        pass
    else:
        Readinfo.pack_forget()
Clear.pack_forget()
But4.config(relief=RAISED)
But5.config(relief=RAISED)
But6.config(relief=RAISED)

Clear = Button(root, text='Clear', fg='black', bg='green', command=clear)
But2 = Button(root, text='Submit', bg='white', fg='blue', command=submit)

好的,这就是我阅读部分包含的所有代码。我知道这是非常马虎和一些部分可能不需要或任何东西。我将在未来的节目中听取建议,可能这一次也一样,我是非常新的,将采取的建议:)


Tags: textconfigforsqlcounterrootglobalpack

热门问题