raw_input mit Zeitspanne als Bedingung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
GunnarB
User
Beiträge: 2
Registriert: Sonntag 14. Januar 2018, 20:11

Hallo allesamt.

Ich habe eine Frage, wie ich neben der Bedingung "Eingabe als Zahl" weiter fordern kann, dass die eingegebene Zahl zwischen 1960 und 1990 liegt.

Hat da jemand eine Idee?

Vielen Dank!

Code: Alles auswählen

raw = None
while raw is None:
    print "Bitte geben sie das zu berechnende Jahr zwischen 1960 und 1990 an: "
    the_string = raw_input()
    try:
        raw = int(the_string) #or int(raw) < 1959 or int(raw) > 1991
    except ValueError:
       print 'Fehlerhafter Wert. Bitte geben Sie das Jahr korrekt an.'
year = int(raw)
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Du könntest in der Schleife noch die Anweisung einfügen

Code: Alles auswählen

raw = raw if 1960 <= raw <= 1990 else None
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da du schon einen ValueError abfaengst, kannst du einfach einen schmeissen, wenn die Zahl nicht dem gewuenschten Zeitraum entspricht.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@GunnarB: statt `raw` einen künstlichen Wert (None) zu geben, solltest Du eine Endlosschleife benutzen und die nur dann verlassen, wenn raw einen von Dir gewünschten Wert hat.
Antworten