Countdown, aber anders...

Du hast eine Idee für ein Projekt?
skypa
User
Beiträge: 97
Registriert: Freitag 5. Januar 2007, 03:13

Dienstag 22. Januar 2008, 16:27

Ahhh, ich rast aus. Ja hast recht, das wollt ich noch entfernt haben.
Nur versteh ich eben halt nicht, warum er nörgelt wenn ich erst GetValue() mache und danach split(':')...

Ich probiers weiter...

MfG skypa
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 22. Januar 2008, 16:39

skypa hat geschrieben:Nur versteh ich eben halt nicht, warum er nörgelt wenn ich erst GetValue() mache und danach split(':')...
Definiere 'nörgelt'. :?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
skypa
User
Beiträge: 97
Registriert: Freitag 5. Januar 2007, 03:13

Dienstag 22. Januar 2008, 16:54

Mit nörgelt mein ich, dass es zu einer Fehlermeldung kommt.

http://paste.pocoo.org/show/22992/

Die Umrechnung funktioniert nicht so wie Sie soll...
Hab mein Fehler erkannt den ich zuvor hatte mit dem array,
die Fehlermeldung lautet nun:

type for timedelta seconds component: unicode
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Dienstag 22. Januar 2008, 17:12

skypa hat geschrieben:type for timedelta seconds component: unicode
Hallo skypa!

Jetzt hast du hier schon über 60 Beiträge in diesem Board geschrieben. Und trotzdem zeigst du uns immer noch nicht die volle Fehlermeldung. :roll:

Ich rate dir **dringend** einen Debugger einzusetzen. Ich laden den Code in mein WingIDE. Dann führe ich das Programm aus. Sobald ein Fehler passiert, bleibt WingIDE genau in der Zeile stehen, in der der Fehler passiert ist. Dann sehe ich die Fehlermeldung: "TypeError: unsupported type for timedelta seconds component: unicode"

Sofort sieht man, dass hier versucht wird, ein ``datetime.timedelat``-Objekt zu erstellen. Ein solches Objekt kann nicht mit einem Unicode-Objekt erstellt werden. Es braucht für den Parameter ``seconds`` ein Integer-Objekt. Also gebe ich im Debug-Test-Fenster "diff_seconds" ein um zu überprüfen, was da in der Zeile 88 denn so als Parameter übergeben wird.

Das Ergebnis sieht so aus:

Code: Alles auswählen

>>> diff_seconds
u'180000'
>>> 
Ahh! Also ein Unicode-Objekt und dann noch falsch zusammengesetzt. Jetzt weiß ich was zu tun ist.

In Zeile 85 wird mit ``diff_seconds = hours+minutes+secondes`` ein Unicode-String zusammengesetzt. Das kann natürlich nicht funktionieren...


Das war eine kleine Anleitung zum Debuggen von Programmen. ;-) Und ja ich weiß: $179.00 für WingIDE sind recht viel. Aber bei mir hat sich diese Ausgabe schon tausendfach rentiert.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Dienstag 22. Januar 2008, 17:24

Ohne jetzt näher in den Code geschaut zu haben: `timedelta` arbeitet mit Zahlen, hat lauf Fehlermeldung aber anscheinend etwas vom Typ `unicode` bekommen. Das sollte eigentlich recht deutlich sein.
skypa
User
Beiträge: 97
Registriert: Freitag 5. Januar 2007, 03:13

Dienstag 22. Januar 2008, 17:32

Den Fehler hab ich schon erkannt keine Angst ;)
Ich find grad nur nix, wie ich aus unicode ein int Objekt mache.

http://paste.pocoo.org/show/23002/

:cry:
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 22. Januar 2008, 18:11

skypa hat geschrieben:Ich find grad nur nix, wie ich aus unicode ein int Objekt mache.
``int()`` ist dir bekannt, oder?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten