Deprecation Warning im Dos-Fenster

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
Benutzeravatar
drewsilson
User
Beiträge: 21
Registriert: Dienstag 9. Januar 2007, 12:13

Hallo,
Hab ne kleine Frage:

bekomme bei einem meiner Programme im DOS-Window (und zwar nur da) immer folgende (von mir verallgemeinerte) Fehlermeldung:
programm.py:338: DeprecationWarning: integer argument expected, got
float for x in range(anynumber)
Das Programm läuft ansonsten fehlerfrei ab, bloß erscheint diese hässliche Meldung.
Starte ich das ganze im Idle, passiert das nicht.

Bin etwas ratlos, da anynumber sogar eine Ganzzahl und keine Dezimalzahl ist.

Liegts vielleicht am Coding?

Freu mich auf Eure Antworten,
Micha
Benutzeravatar
sunmountain
User
Beiträge: 89
Registriert: Montag 13. März 2006, 17:18

Ansonsten, was sagt type(anynumber) ?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

drewsilson hat geschrieben:folgende (von mir verallgemeinerte) Fehlermeldung
Hallo Micha!

Diese Fehlermeldungen sagen meist alles aus was ein Profi wissen muss. Eine vereinfachte/verallgemeinerte Fehlermeldung erschwert die Fehlersuche enorm. Teile uns beim nächsten Mal bitte die komplette Meldung mit.

Und wie sunmountain schon geschrieben hat:
Prüfe oberhalb der Schleife mit ``print type(anynumber)`` ob ``anynumber`` auch wirklich vom Typ "Integer" oder "Long" ist.
Mit ``print anynumber`` kannst du dir im Programmablauf ja auch noch ansehen, welche Zahl an die Variable gebunden wurde. Wenn es vom Programmablauf her kein Problem gibt, dann genügt es wahrscheinlich, die Zahl ``anynumber`` für die Schleife einfach in eine Integer umzuwandeln:

Code: Alles auswählen

float for x in range(int(anynumber))
Aber das ist davon abhängig, **warum** anynumber keine Integer ist...

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
drewsilson
User
Beiträge: 21
Registriert: Dienstag 9. Januar 2007, 12:13

mit int(anynumber)
bekomme ich das tatsächlich weg. type sagt, dass anynumber eine float ist.
das wär also geklärt.

rein interessehalber würde ich aber trotdem gerne wissen, wieso ich diese meldung nur im dos-fenster und nicht in idle bekomme?

@ gerold: die fehlermeldung ist 1:1 übernommen, lediglich anynumber usw. habe ich ersetzt.

grüße
micha
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

Blind geraten: idle leitet sys.stderr nicht um?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

lumax hat geschrieben:Blind geraten: idle leitet sys.stderr nicht um?
Hi Lumax!

Ich habe zu spät darauf geachtet. Das ist nur eine Warnung. Die Warnungen sind nicht länger.

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