Seite 1 von 1

Geschweifte Klammern

Verfasst: Dienstag 15. März 2011, 23:42
von pythonstarter
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

Re: Geschweifte Klammern

Verfasst: Dienstag 15. März 2011, 23:50
von 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.

Re: Geschweifte Klammern

Verfasst: Mittwoch 16. März 2011, 00:26
von pythonstarter
deets, danke hat wunderbar geklappt. Ich kann nur nicht ganz verstehen, warum's beim Grundumsatz schon vorher ohne {{ war.

Re: Geschweifte Klammern

Verfasst: Mittwoch 16. März 2011, 00:31
von deets
Ich auch nicht, es mag ein Artefakt von tkinter sein. Solche geschweiften Klammern kommen in TCL vor, vielleicht hat das damit zu tun.

Re: Geschweifte Klammern

Verfasst: Dienstag 22. März 2011, 01:18
von Xynon1
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.