Seite 1 von 1

Verfasst: Dienstag 8. Juli 2003, 17:23
von Glamdring
Ich hab das Programm mal stückweise ausprobiert und in ausgabe() folgenden Fehler bekommen:

Code: Alles auswählen

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python22\lib\lib-tk\Tkinter.py", line 1300, in __call__
    return apply(self.func, args)
  File "C:/dewbug.py", line 25, in send
    e02 = Entry(main)
  File "C:/dewbug.py", line 200, in __init__
  File "C:/dewbug.py", line 212, in ausgabe
TypeError: bad argument type for built-in operation
was noch komisch ist:
Start/Ausführen gehe und dann cmd und dann python und den Pfad zu der Datei kam einfach garnichts, komisch oder nicht?

Hoffentlich kann jemand was damit anfagen
Gruß
Glamdring

Verfasst: Dienstag 8. Juli 2003, 17:55
von Voges
Glamdring hat geschrieben:Start/Ausführen gehe und dann cmd und dann python und den Pfad zu der Datei kam einfach garnichts, komisch oder nicht?
Eigentlich nicht, denn Dein Code enthält gar keinen mainloop()-Aufruf und rauscht einfach durch. Dass IDLE da sein eigenes Süppchen kocht, ist wieder ein Argument gegen diese IDE.

Zur Fehlermeldung: Die scheint immernoch Murks anzuzeigen. Zumindest die Zeilennummern könnten aber richtig sein. Guck Dir also die Zeile 212 an. Du wirst ums Debuggen nicht herum kommen. Wie geht das? Zum Beispiel kannst Du die Variablen, die in der Zeile verwendet werden, in einer Zeile davor mit print testweise mal ausgeben. Dann siehst Du sofort, welche davon nicht dem erwarteten Typ entspricht. Dann musst Du dem Programmlauf "rückschreitend" verfolgen, um die Stelle zu finden, an der ein falscher Typ zugewiesen wurde. Immer mal wieder hier und da print-Anweisungen reinschreiben, um zu sehen ob das Programm an einer Stelle überhaupt vorbeikommt und ob Variablen den erwarteten Wert enthalten.

Du könntest natürlich auch den 'echten' Debugger nehmen, aber das ist etwas anspruchsvoller und verlangt etwas Übung.

Jan

Verfasst: Dienstag 8. Juli 2003, 19:18
von Glamdring
Ich hab den Fehler, aber auch nen neuen.
Der Fehler war, das self.narse non type uns nicht string war.
Dann hab ich wieder weiter gemacht und hab jetzt nen neuen Fehjler, ich nehm aber an, das das an meiner IDLE liegt, da dieser Codeabaschnitt überhaupt nicht aufgerufen wird(falls man HTML als Ausgabeform hat)
Neuer fehler:

Code: Alles auswählen

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python22\lib\lib-tk\Tkinter.py", line 1300, in __call__
    return apply(self.func, args)
  File "C:\Dokumente und Einstellungen\DA niel\Desktop\Python Projekte\Python\Pythagoras\Pyth. 1.2\Pyth(on)agoras12.py", line 26, in send
    abc = Dreieck(a, b, c, h, p, q)
  File "C:\Dokumente und Einstellungen\DA niel\Desktop\Python Projekte\Python\Pythagoras\Pyth. 1.2\Pyth(on)agoras12.py", line 202, in __init__
    self.ausgabe()
  File "C:\Dokumente und Einstellungen\DA niel\Desktop\Python Projekte\Python\Pythagoras\Pyth. 1.2\Pyth(on)agoras12.py", line 226, in ausgabe
    y = "<TR><TD>c</TD><TD>%nbsp;=&</TD><TD>%f</TD></TR><TR><TD>p</TD><TD>=</TD><TD>%f</TD></TR>" %(self.ce, self.pe)
ValueError: unsupported format character 'n' (0x6e) at index 19
Die Ergebnisse werden mir aber richtig zurrückgegeben.

@ Voges: wenn ich beiden Tk aufrufen mainloop gebe stürtzt das Programm ab, darf ich nur ein Fenster als mainloop definieren, das dann schließen und dem anderem mainloop geben?


Gruß Glamdring[/quote]

Verfasst: Dienstag 8. Juli 2003, 19:28
von Dookie
Hi,

Code: Alles auswählen

"<TR><TD>c</TD><TD>%%nbsp;=&</TD><TD>%f</TD></TR><TR><TD>p</TD><TD>=</TD><TD>%f</TD></TR>"
sollte das Problem lösen.
Falls es ned auffällt, das % bei %nbsp; is der Haken.


Gruß

Dookie

Verfasst: Dienstag 8. Juli 2003, 19:45
von Glamdring
Ja, danke für die schnelle Hilfe(scheiss Tippfehler)

Gruß
Glamdring