Richtige Ausgabe von einer Berechnung in einem Label

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
PheysX
User
Beiträge: 5
Registriert: Donnerstag 3. Januar 2013, 14:02

Code: Alles auswählen

from tkinter import *
from math import *

F = Tk ()
F.title ("Hausarbeit")

u_max, v_max =499, 399 
g = Canvas(F,width=u_max+1, height=v_max+1, bg="white")


def Berechnen ():
    
    q = float(qwert.get())
    l =  float(lwert.get())
    E =  float(ewert.get())
    I =  float(iwert.get())

    w = ((5/384) * ((q*(l**4)) / (E*I)))

    Ergebnis = w
    
    TA.insert (0,Ergebnis)


g.create_line(0,400,600,400, fill="#d9d9d9")

# Anzeigebild:
bild = PhotoImage(file="grafik_410x306.gif")
Label(image = bild).grid (row=0, column=0, columnspan=3)


# Labels: q l E I Werte:
g.grid(column=0,row=0,columnspan=3)

Label(text="q= ").grid(row=1,column=0,sticky="e")
qwert=Entry(width=10)
qwert.grid(row=1,column=1, sticky="w")

Label(text="l= ").grid(row=2,column=0,sticky="e")
lwert=Entry(width=10)
lwert.grid(row=2,column=1,sticky="w")

Label(text="E= ").grid(row=3,column=0,sticky="e")
ewert=Entry(width=10)
ewert.grid(row=3,column=1,sticky="w")

Label(text="I= ").grid(row=4,column=0,sticky="e")
iwert=Entry(width=10)
iwert.grid(row=4,column=1,sticky="w")


# Buttons Berechnen und Ergebnisse anzeigen:
b=Button(text="Berechnen", width=10, command=Berechnen).grid(row=1,column=1,sticky="e")
b=Entry(width=10)
b.grid(row=2,column=1,sticky="w")

# Ausgabe von w:
Ergebnis=StringVar()
Label (textvariable=TA).grid(row=5,column=1,sticky="w")


F.update()
F.mainloop()

Ich habe jetzt 2 Probleme, das Ergebnis wird nicht in der Variable ausgegeben und ich bekomme immer die Fehlermeldung das es nicht in float konvertiert ist. Ich weiß echt nicht wie ich das ändern soll, ich brauche eure Hilfe
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo PheysX,

bitte immer den Code so posten, wie Du ihn auch benutzt.

Wo tritt der Fehler auf?
Welches »es« ist nicht in float konvertiert?
PheysX
User
Beiträge: 5
Registriert: Donnerstag 3. Januar 2013, 14:02

Das ist der genaue Quelltext den ich benutze:

Code: Alles auswählen

from tkinter import *
from math import *

F = Tk ()
F.title ("Hausarbeit")

u_max, v_max =499, 399 
g = Canvas(F,width=u_max+1, height=v_max+1, bg="white")


def Berechnen ():
    #try:
    print ("Diese Funktion berechnet mit den eingegebenen Daten q,l,e und i die Verformung eines, wie in der Grafik sehbaren Balkens!")     #Definition Berechnen

    q =  float(qwert.get())
    l =  float(lwert.get())
    E =  float(ewert.get())
    I =  float(iwert.get())

    w = ((5/384) * ((q*(l**4)) / (E*I)))

    Ergebnis = w
    
    TA.insert(0,Ergebnis)

    #except: print ("Sorry")

g.create_line(0,400,600,400, fill="#d9d9d9")

# Anzeigebild:
bild = PhotoImage(file="grafik_410x306.gif")
Label(image = bild).grid (row=0, column=0, columnspan=3)


# Labels: q l E I Werte:
g.grid(column=0,row=0,columnspan=3)

Label(text="q= ").grid(row=1,column=0,sticky="e")
qwert=Entry(width=10)
qwert.grid(row=1,column=1, sticky="w")

Label(text="l= ").grid(row=2,column=0,sticky="e")
lwert=Entry(width=10)
lwert.grid(row=2,column=1,sticky="w")

Label(text="E= ").grid(row=3,column=0,sticky="e")
ewert=Entry(width=10)
ewert.grid(row=3,column=1,sticky="w")

Label(text="I= ").grid(row=4,column=0,sticky="e")
iwert=Entry(width=10)
iwert.grid(row=4,column=1,sticky="w")


# Buttons Berechnen und Ergebnisse anzeigen:
b=Button(text="Berechnen", width=10, command=Berechnen).grid(row=1,column=1,sticky="e")
b=Entry(width=10)
b.grid(row=2,column=1,sticky="w")

# Ausgabe von w:
TA=StringVar()
Label (textvariable=TA).grid(row=5,column=1,sticky="w")



F.update()
F.mainloop()
Das ist die Fehlermedlung

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1442, in __call__
return self.func(*args)
File "C:\Users\...\Desktop\Hausarbeit\hausarbeit.py", line 16, in Berechnen
l = float(lwert.get())
ValueError: could not convert string to float:
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Dein l-Wert ist keine Zahl.
Antworten