Programmoptimierung
Verfasst: Sonntag 30. Juni 2019, 13:07
Hallo Leute,
ich bin neu was die Programmierung mit Python betrifft und deswegen hab ich eine Frage. Im nachstehenden Programmcode habe ich 10 Entry Fenster auf einer GUI plaziert, weil ich mit jedem Wert einzeln arbeiten muss. Ich würde das ganze gerne verkürzen durch eine "for" oder "while" -Schleife. Es muss ja lediglich der Index geändert werden. Allerdings weiß ich nicht wie.. Ich hoffe ihr könnt mir helfen. Danke im vorraus.
Hier der Code:
[from tkinter import *
# Fenster erstellen
fenster = Tk()
fenster.title("GUI - Abschlussprojekt")
fenster.geometry("800x600")
#Eingabe x erstellen
eingabe_x1=Entry(fenster)
eingabe_x1.grid(row=2, column=1, padx=5, pady=5)
eingabe_x2=Entry(fenster)
eingabe_x2.grid(row=3, column=1, padx=5, pady=5)
eingabe_x3=Entry(fenster)
eingabe_x3.grid(row=4, column=1, padx=5, pady=5)
eingabe_x4=Entry(fenster)
eingabe_x4.grid(row=5, column=1, padx=5, pady=5)
eingabe_x5=Entry(fenster)
eingabe_x5.grid(row=6, column=1, padx=5, pady=5)
eingabe_x6=Entry(fenster)
eingabe_x6.grid(row=7, column=1, padx=5, pady=5)
eingabe_x7=Entry(fenster)
eingabe_x7.grid(row=8, column=1, padx=5, pady=5)
eingabe_x8=Entry(fenster)
eingabe_x8.grid(row=9, column=1, padx=5, pady=5)
eingabe_x9=Entry(fenster)
eingabe_x9.grid(row=10, column=1, padx=5, pady=5)
eingabe_x10=Entry(fenster)
eingabe_x10.grid(row=11, column=1, padx=5, pady=5)
#Eingabe y erstellen
eingabe_y1=Entry(fenster)
eingabe_y1.grid(row=2, column=2, padx=5, pady=5)
eingabe_y2=Entry(fenster)
eingabe_y2.grid(row=3, column=2, padx=5, pady=5)
eingabe_y3=Entry(fenster)
eingabe_y3.grid(row=4, column=2, padx=5, pady=5)
eingabe_y4=Entry(fenster)
eingabe_y4.grid(row=5, column=2, padx=5, pady=5)
eingabe_y5=Entry(fenster)
eingabe_y5.grid(row=6, column=2, padx=5, pady=5)
eingabe_y6=Entry(fenster)
eingabe_y6.grid(row=7, column=2, padx=5, pady=5)
eingabe_y7=Entry(fenster)
eingabe_y7.grid(row=8, column=2, padx=5, pady=5)
eingabe_y8=Entry(fenster)
eingabe_y8.grid(row=9, column=2, padx=5, pady=5)
eingabe_y9=Entry(fenster)
eingabe_y9.grid(row=10, column=2, padx=5, pady=5)
eingabe_y10=Entry(fenster)
eingabe_y10.grid(row=11, column=2, padx=5, pady=5)
#Bestandteile auf Oberfläche
lab = Label(fenster, text="x")
lab.grid(row=1, column=1)
lab2 = Label(fenster, text="y")
lab2.grid(row=1, column=2)
#Funktionen definieren
def Flaecheninhalt():
x1=float(eingabe_x1.get())
x2=float(eingabe_x2.get())
x3=float(eingabe_x3.get())
x4=float(eingabe_x4.get())
x5=float(eingabe_x5.get())
x6=float(eingabe_x6.get())
x7=float(eingabe_x7.get())
x8=float(eingabe_x8.get())
x9=float(eingabe_x9.get())
x10=float(eingabe_x10.get())
y1=float(eingabe_y1.get())
y2=float(eingabe_y2.get())
y3=float(eingabe_y3.get())
y4=float(eingabe_y4.get())
y5=float(eingabe_y5.get())
y6=float(eingabe_y6.get())
y7=float(eingabe_y7.get())
y8=float(eingabe_y8.get())
y9=float(eingabe_y9.get())
y10=float(eingabe_y10.get())
fläche=0.5*((x2*(y3-y1))+(x3*(y4-y2))+(x4*(y5-y3))+(x5*(y6-y4))+(x6*(y7-y5))+(x7*(y8-y6))+(x8*(y9-7))+(x9*(y10-y8)))
ausgabe.configure(text=("Flächeninhalt:=",fläche))
def close_fenster():
fenster.destroy()
#Buttons erstellen
Button1 = Button(fenster, text="Berechnen", command=Flaecheninhalt)
Button1.grid(row=12, column=1 , padx=5, pady=5)
Button2 = Button(fenster, text="Beenden", command=close_fenster)
Button2.grid(row=12, column=2, pady=5)
lab3=Label(fenster)
lab3.grid(row=4, column=2)
ausgabe=Label(fenster)
ausgabe.grid(row=1, column=4)
mainloop()][/code]
ich bin neu was die Programmierung mit Python betrifft und deswegen hab ich eine Frage. Im nachstehenden Programmcode habe ich 10 Entry Fenster auf einer GUI plaziert, weil ich mit jedem Wert einzeln arbeiten muss. Ich würde das ganze gerne verkürzen durch eine "for" oder "while" -Schleife. Es muss ja lediglich der Index geändert werden. Allerdings weiß ich nicht wie.. Ich hoffe ihr könnt mir helfen. Danke im vorraus.
Hier der Code:
[from tkinter import *
# Fenster erstellen
fenster = Tk()
fenster.title("GUI - Abschlussprojekt")
fenster.geometry("800x600")
#Eingabe x erstellen
eingabe_x1=Entry(fenster)
eingabe_x1.grid(row=2, column=1, padx=5, pady=5)
eingabe_x2=Entry(fenster)
eingabe_x2.grid(row=3, column=1, padx=5, pady=5)
eingabe_x3=Entry(fenster)
eingabe_x3.grid(row=4, column=1, padx=5, pady=5)
eingabe_x4=Entry(fenster)
eingabe_x4.grid(row=5, column=1, padx=5, pady=5)
eingabe_x5=Entry(fenster)
eingabe_x5.grid(row=6, column=1, padx=5, pady=5)
eingabe_x6=Entry(fenster)
eingabe_x6.grid(row=7, column=1, padx=5, pady=5)
eingabe_x7=Entry(fenster)
eingabe_x7.grid(row=8, column=1, padx=5, pady=5)
eingabe_x8=Entry(fenster)
eingabe_x8.grid(row=9, column=1, padx=5, pady=5)
eingabe_x9=Entry(fenster)
eingabe_x9.grid(row=10, column=1, padx=5, pady=5)
eingabe_x10=Entry(fenster)
eingabe_x10.grid(row=11, column=1, padx=5, pady=5)
#Eingabe y erstellen
eingabe_y1=Entry(fenster)
eingabe_y1.grid(row=2, column=2, padx=5, pady=5)
eingabe_y2=Entry(fenster)
eingabe_y2.grid(row=3, column=2, padx=5, pady=5)
eingabe_y3=Entry(fenster)
eingabe_y3.grid(row=4, column=2, padx=5, pady=5)
eingabe_y4=Entry(fenster)
eingabe_y4.grid(row=5, column=2, padx=5, pady=5)
eingabe_y5=Entry(fenster)
eingabe_y5.grid(row=6, column=2, padx=5, pady=5)
eingabe_y6=Entry(fenster)
eingabe_y6.grid(row=7, column=2, padx=5, pady=5)
eingabe_y7=Entry(fenster)
eingabe_y7.grid(row=8, column=2, padx=5, pady=5)
eingabe_y8=Entry(fenster)
eingabe_y8.grid(row=9, column=2, padx=5, pady=5)
eingabe_y9=Entry(fenster)
eingabe_y9.grid(row=10, column=2, padx=5, pady=5)
eingabe_y10=Entry(fenster)
eingabe_y10.grid(row=11, column=2, padx=5, pady=5)
#Bestandteile auf Oberfläche
lab = Label(fenster, text="x")
lab.grid(row=1, column=1)
lab2 = Label(fenster, text="y")
lab2.grid(row=1, column=2)
#Funktionen definieren
def Flaecheninhalt():
x1=float(eingabe_x1.get())
x2=float(eingabe_x2.get())
x3=float(eingabe_x3.get())
x4=float(eingabe_x4.get())
x5=float(eingabe_x5.get())
x6=float(eingabe_x6.get())
x7=float(eingabe_x7.get())
x8=float(eingabe_x8.get())
x9=float(eingabe_x9.get())
x10=float(eingabe_x10.get())
y1=float(eingabe_y1.get())
y2=float(eingabe_y2.get())
y3=float(eingabe_y3.get())
y4=float(eingabe_y4.get())
y5=float(eingabe_y5.get())
y6=float(eingabe_y6.get())
y7=float(eingabe_y7.get())
y8=float(eingabe_y8.get())
y9=float(eingabe_y9.get())
y10=float(eingabe_y10.get())
fläche=0.5*((x2*(y3-y1))+(x3*(y4-y2))+(x4*(y5-y3))+(x5*(y6-y4))+(x6*(y7-y5))+(x7*(y8-y6))+(x8*(y9-7))+(x9*(y10-y8)))
ausgabe.configure(text=("Flächeninhalt:=",fläche))
def close_fenster():
fenster.destroy()
#Buttons erstellen
Button1 = Button(fenster, text="Berechnen", command=Flaecheninhalt)
Button1.grid(row=12, column=1 , padx=5, pady=5)
Button2 = Button(fenster, text="Beenden", command=close_fenster)
Button2.grid(row=12, column=2, pady=5)
lab3=Label(fenster)
lab3.grid(row=4, column=2)
ausgabe=Label(fenster)
ausgabe.grid(row=1, column=4)
mainloop()][/code]