Seite 1 von 1

wie füllt man den Textbuffer mit Variablen

Verfasst: Donnerstag 26. April 2007, 14:31
von htw7448
ich bin gerade auf folgende unschöne Sache gestoßen.

Wenn ich den Textbuffer mit dem Wert einer Variablen füllen will, geht dies leider nicht auf kurzem Wege wie:

Code: Alles auswählen

nr = 10
self.textbuffer.insert_at_cursor("Ergebnis : %s\n") %nr

Muss man stattdessen den String vorher umständlich selsbt generieren?

Code: Alles auswählen

nr = 10
result= "Ergebnis : %s\n") %nr
self.textbuffer.insert_at_cursor(result)

Verfasst: Donnerstag 26. April 2007, 14:40
von BlackJack
Natürlich muss man das nicht vorher machen und das Zwischenergebnis an einen Namen binden. Schau doch nochmal auf was Du im ersten Beispiel den binären Operator ``%`` anwenden willst, insbesondere was links von dem Operator steht.

Wenn ich mal raten müsste hast Du ungefähr so eine Fehlermeldung bekommen:

Code: Alles auswählen

In [39]: None % 10
---------------------------------------------------------------------------
exceptions.TypeError          Traceback (most recent call last)

/home/new/<ipython console>

TypeError: unsupported operand type(s) for %: 'NoneType' and 'int'

Verfasst: Donnerstag 26. April 2007, 15:46
von htw7448
Nach ziemlich langem probieren habe ich

Code: Alles auswählen

self.textbuffer.insert_at_cursor("Ergebnis :" +"%d"%nr)
gefunden. Das Problem war das vor dem Operator kein String zu erkennen war. Der Formatierungsoperator arbeitet nur wenn er in der Klammer steht. Denke das waren die Probleme.

Danke

Verfasst: Donnerstag 26. April 2007, 16:33
von encbladexp
htw7448 hat geschrieben:

Code: Alles auswählen

self.textbuffer.insert_at_cursor("Ergebnis :" +"%d"%nr)
Noch etwas kürzer wäre:

Code: Alles auswählen

self.textbuffer.insert_at_cursor("Ergebnis: %d" % nr)
mfg Betz Stefan