我希望用户输入每家电影院的已售出门票数量。然而,这只是存储在变量“sålda”中的最后一个输入。我怎样才能解决这个问题
def part_of_function():
bio1 = []
i = 0
for elements in BIOGRAFVAL:
vuxen = StringVar()
pensionär = StringVar()
barn = StringVar()
Label(fönster4, text= BIOGRAFVAL[i]).pack()
Label(fönster4, text="Skriv in antal biljetter av varje sort du vill köpa").pack()
Label(fönster4, text="Max antal platser för " + BIOGRAFVAL[i] + " är " + str(PLATSER[i])).pack()
personer = [('vuxen',vuxen),('pensionär', pensionär), ('barn',barn)]
for p in personer:
sålda = välj_biograf(fönster4, p[0] + "biljett", p[1]) #välj_biograf is called*
sålda.pack()
i += 1
Button(fönster4, text="fortsätt", command=lambda: info()).pack()
def info():
fönster5=Tk()
fönster5.title("Biljettförsäljning för EN biograf.")
fönster5.geometry("350x200")
bio1.append(sålda.get())
print(bio1) #here is only the last element printed
""" *code for the function "välj_biograf" that is called
def välj_biograf(fönster, person_typ, text_variabel):
Label(fönster, text=person_typ).pack()
sålda = Entry(fönster, textvariable=text_variabel)
sålda.pack()
return sålda """
bio1
是part_of_function
函数内的局部变量。每次函数结束时,它的值都会丢失,下次调用函数时会再次重置回空白列表在函数外部创建
bio1
空列表(使其成为全局的),然后在函数内部使用global bio
,以便修改全局变量还要注意,在代码中应该只有一个
Tk()
实例。我怀疑你的代码中有不止一个。如果您想要一个新窗口,请使用Toplevel()
正如CoolCloud所指出的,您需要使用.get来获取
personer
/p
的值元组
p
的元素1是一个StringVar,因此需要使用.get()
来获取它的值相关问题 更多 >
编程相关推荐