Seite 1 von 1

Neuling-Problem

Verfasst: Dienstag 18. Mai 2010, 19:57
von Time_O
Hallo miteinander :)

Ich bin relativ neu in Python und habe vor kurzem angefangen auch längere Programme zu schreiben.
Jetzt stehe ich aber vor meinem ersten Problem:

Wenn ich vom Benutzer eine Eingabe in der Form n = int(raw_input('Eingabe')) erwarte, gibt es einen Fehler wenn etwas anderes als eine Zahl eingegeben wird. Kann man das irgendwie umgehen ? Ich meine das in der Art, dass das Programm bevor es den input akzeptiert prüft, ob es sich um eine Zahl handelt und wenn das nicht so ist sowas wie 'bitte nur Zahlen eingeben' ausgibt.

Was ich mir so gebastelt hab:

n = raw_input('Eingabe')
if n == ( Hier wüsste ich nicht welcher Operator prüfen würde, ob n eine Zahl ist)
n = int(n) ( Ist das so richtig ? )
else:
print 'bitte nur Zahlen eingeben'

Wie gesagt, ich bin noch ziemlich unerfahren und hab vorher im Internet nach 'ner Lösung gesucht, wusste aber auch nicht recht, nach was ich suchen soll :(

MFG :?:

Re: Neuling-Problem

Verfasst: Dienstag 18. Mai 2010, 20:02
von hendrikS
Mit isdigit sollte es funktionieren. Bsp.:

Code: Alles auswählen

>>> "34".isdigit()
True
>>> "3P".isdigit()
False

Re: Neuling-Problem

Verfasst: Dienstag 18. Mai 2010, 20:21
von Hyperion
Wobei auch der Weg über eine Exception durchaus pythonisch wäre:

Code: Alles auswählen

try:
    n = int(raw_input('Eingabe'))
except ValueError:
    print "Bitte geben Sie eine Zahl ein!"

Re: Neuling-Problem

Verfasst: Dienstag 18. Mai 2010, 20:53
von b.esser-wisser
Häuft sich diese Frage in letzter Zeit, oder hab ich da bloß nie drauf geachtet?
Ich tu 'meine' Lösung mal zu den Code-snippets

hth, Jörg

Re: Neuling-Problem

Verfasst: Dienstag 18. Mai 2010, 22:29
von Darii
Time_O hat geschrieben:Wenn ich vom Benutzer eine Eingabe in der Form n = int(raw_input('Eingabe'))
Was hat dich bloß geritten dieses üble Türkis zu nehmen? :shock: Auf hellblau ist das ja wirklich gut zu erkennen… :K

Re: Neuling-Problem

Verfasst: Dienstag 18. Mai 2010, 22:34
von DasIch
``.isdigit()`` prüft ob ein String aus Ziffern besteht, nicht ob es eine Zahl ist.

Re: Neuling-Problem

Verfasst: Dienstag 18. Mai 2010, 23:53
von gkuhl
Womit ``isdigit`` völlig ungeeignet ist:

Code: Alles auswählen

>>> '-34'.isdigit()
False
>>> ' 34'.isdigit()
False
Grüße
Gerrit