Python und Pythagoras

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

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
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

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
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

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]
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

Ja, danke für die schnelle Hilfe(scheiss Tippfehler)

Gruß
Glamdring
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
Antworten