Geschweifte Klammern

Fragen zu Tkinter.
Antworten
pythonstarter
User
Beiträge: 53
Registriert: Donnerstag 15. April 2010, 20:34

Hallö,
komm nicht auf die Lösung :(
Habe bei manchen Berechnungen im Ausgabe-Label {} geschweifte Klammern und in manchen Labels nicht. wer kann mir das erklären. Die Ausgabetypen sind alle identisch (class 'float')

Code: Alles auswählen

Grundumsatz = round(66+(13.7*gewicht)+5*groesse-6.8*alter, 2)
        grundumsatzLabel ["text"] = "Grundumsatz", Grundumsatz, "kcal/d"
        grundumsatzLabel.grid(sticky = "w")
        #hier ist das Label ohne geschweifte Klammern

wasser = round(40 *gewicht, 2)
    wasserLabel ["text"] = "Wasserbedarf: ", wasser, "ml/d"
    wasserLabel.grid(sticky = "w")
    #hier ist das Label mit geschweiften Klammern
Danke für die Mühen
deets

Ich weiss nicht, warum tkinter das *unterschiedlich* handhabt, aber in beiden Faellen ist es falsch. Du setzt ein Label, und das muss ein String sein.

Du aber gibst ein Tupel rein. Geh mal in den Python-Interpreter, und mach folgendes:

Code: Alles auswählen

>>> "foo",10,"bar"
('foo', 10, 'bar')
>>> "foo" + 10+ "bar"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> "foo" + str(10) + "bar"
'foo10bar'
Wie du siehst, ist der erste Ausdruck (der deinem entspricht) etwas ganz anderes als ein String.

Aender deinen Code zu der letzten Variante, und das sollte besser hinhauen.
pythonstarter
User
Beiträge: 53
Registriert: Donnerstag 15. April 2010, 20:34

deets, danke hat wunderbar geklappt. Ich kann nur nicht ganz verstehen, warum's beim Grundumsatz schon vorher ohne {{ war.
deets

Ich auch nicht, es mag ein Artefakt von tkinter sein. Solche geschweiften Klammern kommen in TCL vor, vielleicht hat das damit zu tun.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

deets hat geschrieben:Ich auch nicht, es mag ein Artefakt von tkinter sein. Solche geschweiften Klammern kommen in TCL vor, vielleicht hat das damit zu tun.
Naja, in Tcl werden Tuples mit {}-Klammern angegeben http://wiki.tcl.tk/3947, hast also vollkommen recht.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Antworten