Seite 1 von 1

Fehlermeldung, brauche Hilfe bei float

Verfasst: Samstag 5. Januar 2013, 16:29
von PheysX
Diese Fehlermeldung bekomme ich,...

Code: Alles auswählen

 File "C:\Users\Janny\Desktop\Hausarbeit\test.py", line 20, in Berechnen
    w = float(((5/384) * ((q*(l**4)) / (E*I))))
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
...,zu dieser Funktion:

Code: Alles auswählen

def Berechnen ():
    
    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 =  qwert.get()
    l =  lwert.get()
    E =  ewert.get()
    I =  iwert.get()

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

    Ergebnis = w

    E2.insert(0,Ergebnis)

Das sind die dazugehörigen Label

Code: Alles auswählen

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")
Wie kann ich die Funktion umschreiben, so dass das Programm die Formel rechnet?

Re: Fehlermeldung, brauche Hilfe bei float

Verfasst: Samstag 5. Januar 2013, 16:40
von snafu
Wenn du dir den Inhalt eines `Entry`-Objekts mittels `.get()` holst, dann wird dort Text zurückgeliefert. Und mit Text kann man schlecht rechnen. Daher kommt die Fehlermeldung. Du musst also aus jeder `.get()`-Aktion dementsprechend ein `float(dein_entry.get())` machen.

Oder du schreibst dir als Abkürzung eine kleine Funktion:

Code: Alles auswählen

def get_float(entry):
    return float(entry.get())

Re: Fehlermeldung, brauche Hilfe bei float

Verfasst: Samstag 5. Januar 2013, 16:45
von PheysX
kann ich es mir auch anders holen? so das es gleich eine Zahl bleibt?

ansonsten meinst du das so?

Code: Alles auswählen

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

Re: Fehlermeldung, brauche Hilfe bei float

Verfasst: Samstag 5. Januar 2013, 19:20
von Sirius3
@PheysX: das war in Deinem gestrigen Post auch noch so,
aber alles Gute kommt ja zum Glück wieder :D .

Re: Fehlermeldung, brauche Hilfe bei float

Verfasst: Samstag 5. Januar 2013, 19:30
von PheysX
ja aber das problem ist das er mir ja gestern in der Fehleranalyse ausgegeben hat das L keine Zahl ist, ist es aber ich gebe für jede Variable eine Zahl ein aber bei q das eine Zeile zuvor steht macht er keine Probleme

Re: Fehlermeldung, brauche Hilfe bei float

Verfasst: Samstag 5. Januar 2013, 19:37
von Sirius3
in diesem Fall hilft es aber auch nichts, statt mit einer Zahl mit einem String rechnen zu wollen.
Was liefert denn lwert.get() tatsächlich zurück?