Wie kann ich in Python3 die input-funktion auf einen bestimmten Wertebereich begrenzen?

3 Antworten

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.

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,,,
Als hässlicher Einzeiler:
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! ><