Frage von Phreaky, 17

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.

Antwort
von valvaris, 17

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,,,
Antwort
von P14d189, 9

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.

Expertenantwort
von TeeTier, Community-Experte für programmieren, 4

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! ><

Keine passende Antwort gefunden?

Fragen Sie die Community