我正在尝试在python中创建代码。我已经有了一些函数和GUI,但现在我想在标签中显示函数的输出。
例如,我有一个最小的函数:
def minimum(numbers):
numbers.sort()
return numbers[0]
我有这个标签:
minimum = Label(secondFrame, text="Minumum:", font=("Verdana",10), fg="#000000")+str(minimum(list))
minimum.pack(anchor="w")
str(minimum(list))
无效,因为我的错误索引列表超出了范围。
这是完整的代码,但它是荷兰语,所以我不知道你是否能理解一切,但我真的希望有人可以帮助我。
谢谢:)
代码:
from Tkinter import *
venster=Tk()
lijst = []
#FUNCTIES
def klaar():
## while True: #Here i'm wondering how to get the last number in the list as well while you push 'klaar (ready)' instead of Volgende (next) At least this doesn't work
## e = invoer.get()
## lijst.append(e)
eersteFrame.grid_forget()
tweedeFrame.grid()
print "klaar"
return
def afsluiten():
venster.destroy()
print "afsluiten"
return
def opnieuw():
print "opnieuw"
tweedeFrame.grid_forget()
eersteFrame.grid
return
def opslaan():
print "opslaan"
return
def volgende():
while True:
e = invoer.get()
lijst.append(e)
print lijst
invoer.delete(0, END)
return
from math import sqrt
def gemiddelde(getallen):
return sum(getallen) / float(len(getallen))
def kwartiel_Q1(lijst):
list.sort(lijst)
x = len(lijst)
return lijst[x/4]
def kwartiel_Q3(lijst):
list.sort(lijst)
x = len(lijst)
Q3 = lijst[x/-4]
return Q3
def mediaan(lijst):
list.sort(lijst)
x = len(lijst)
return lijst[x/2]
def minimum(getallen):
getallen.sort()
return getallen[0]
def maximum(getallen):
getallen.sort()
return getallen[-1]
def modus(lijst):
return max(set(lijst), key=lijst.count)
def sd(lijst):
d2lijst=[]
lijst.sort()
gemiddelde = sum(lijst) / float(len(lijst))
for i in lijst:
d = i - gemiddelde
d2 = d**2
d2lijst.append(d2)
somd2n = sum(d2lijst) / float(len(lijst))
stdv = sqrt(somd2n)
return stdv
#FRAME
eersteFrame = Frame(master=venster)
eersteFrame.pack()
tweedeFrame = Frame(master=venster)
#LABEL
eersteLabel = Label(eersteFrame, text="Voer getal in en druk dan op\n 'Volgende', net zolang totdat u \nde getallen ingevoerd heb en \ndruk dan op 'Klaar'.", font=("Verdana",10), fg="#000000")
eersteLabel.pack()
derdeLabel = Label(tweedeFrame, text= "Dit zijn uw resultaten:", font=("Verdana",10), fg="#000000")
derdeLabel.pack()
aantal = Label(tweedeFrame, text="\nAantal getallen:", font=("Verdana",10), fg="#000000")
aantal.pack(anchor="w")
minimum = Label(tweedeFrame, text="Minumum:", font=("Verdana",10), fg="#000000")+str(minimum(lijst))
minimum.pack(anchor="w")
maximum = Label(tweedeFrame, text="Maximum:", font=("Verdana",10), fg="#000000")
maximum.pack(anchor="w")
gemiddelde = Label(tweedeFrame, text="Gemiddelde:", font=("Verdana",10), fg="#000000")
gemiddelde.pack(anchor="w")
modus = Label(tweedeFrame, text="Modus:", font=("Verdana",10), fg="#000000")
modus.pack(anchor="w")
mediaan = Label(tweedeFrame, text="Mediaan:", font=("Verdana",10), fg="#000000")
mediaan.pack(anchor="w")
kwartiel1 = Label(tweedeFrame, text="Eerste Kwartiel:", font=("Verdana",10), fg="#000000")
kwartiel1.pack(anchor="w")
kwartiel3 = Label(tweedeFrame, text="Derde Kwartiel:", font=("Verdana",10), fg="#000000")
kwartiel3.pack(anchor="w")
standaarddeviatie = Label(tweedeFrame, text="Standaarddeviatie:\n",font=("Verdana",10), fg="#000000")
standaarddeviatie.pack(anchor="w")
#INVOERVELD
invoer = Entry(eersteFrame, width=39)
invoer.pack()
invoer.get()
#KNOPPEN
Klaar = Button(eersteFrame, text="Klaar", width=10, command=klaar)
Volgende = Button(eersteFrame, text="Volgende", width=10, command=volgende)
Opnieuw = Button(tweedeFrame, text="Opnieuw", width=10, command=opnieuw)
Opslaan = Button(tweedeFrame, text="Opslaan", width=10, command=opslaan)
Afsluiten1 = Button(eersteFrame, width=10, text="Afsluiten", command=afsluiten)
Afsluiten2 = Button(tweedeFrame, width=10, text="Afsluiten", command=afsluiten)
Klaar.pack(anchor="se", side="right")
Volgende.pack(anchor="s", side="right")
Opnieuw.pack(anchor="se", side="right")
Afsluiten1.pack(anchor="sw", side="left")
Afsluiten2.pack(anchor="sw", side="left")
Opslaan.pack(anchor="s", side="right")
#VENSTER
venster.title("Statistiek")
venster.mainloop()
答案 0 :(得分:2)
您的功能名称会被标签名称覆盖。为函数和标签使用不同的名称。
此外,您可以使用内置的min
函数:
min(numbers)