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
Neuling-Problem
Mit isdigit sollte es funktionieren. Bsp.:
Code: Alles auswählen
>>> "34".isdigit()
True
>>> "3P".isdigit()
False
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
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!"
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- b.esser-wisser
- User
- Beiträge: 272
- Registriert: Freitag 20. Februar 2009, 14:21
- Wohnort: Bundeshauptstadt B.
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
Ich tu 'meine' Lösung mal zu den Code-snippets
hth, Jörg
Womit ``isdigit`` völlig ungeeignet ist:
Grüße
Gerrit
Code: Alles auswählen
>>> '-34'.isdigit()
False
>>> ' 34'.isdigit()
False
Gerrit