Wie kann ich in Python3 die input-funktion auf einen bestimmten Wertebereich begrenzen?
Ich möchte es so machen, dass der Input eine ganzzahlige Zahl von 1 bis 3999 ist.
Weiß aber leider nicht, wie ich das machen kann, dass eben nur diese Werte angenommen werden.
3 Antworten
![](https://images.gutefrage.net/media/user/P14d189/1445033763201_nmmslarge.jpg?v=1445033763000)
Es ginge mit einer If-Abfrage, dies wäre meiner Meinung zwar nicht so schön wie die Variante meines Vorredners aber rein programmiertechnisch wäre dies möglich.
![](https://images.gutefrage.net/media/default/user/7_nmmslarge.png?v=1438863662000)
Die genaue Syntax ist mir jetzt nicht auf Anhieb im Kopf, aber sowas wie
d=0;
while !
isinstance(d, ( int, long ) ) || (d<1 || d>3999):
d = input("Bitte gib eine ganze Zahl von 1-3999 ein");
weiter im Text,,,
![](https://images.gutefrage.net/media/default/user/0_nmmslarge.png?v=1438863662000)
lo, hi = 1, 3999
val = max(lo, min(hi, int(input('%d-%d: ' % (lo, hi)))))
Danach hat "val" mindestens den Wert 1 und maximal 3999. Allerdings würde ich das ganze in einen try-except-Block packen, da dir sonst ein ValueError um die Ohren fliegt, falls jemand ganz schlau ist, und "abc" eingibt. :)
Disclaimer: Die gewöhnungsbedürftige Code-Formatierung in zwei separaten Boxen liegt am GF-Editor und den habe nicht ich verbrochen! ><