2016-07-13 8 views
-2

Ich komme in eine Endlosschleife, wenn ich eine Nicht-Ganzzahl eingeben. Wie repariere ich es? Hier ist mein Code:eine Endlosschleife verlassen?

def inputInt(integer): 
    while True: 
     try: 
      result = int(integer) 
     except ValueError: 
      print ('Invalid input - Try again') 
      continue 
     break 
    return result 
value = input (' Enter a value:') 
number = inputInt(value) 
print ('The value is',number) 
+3

fragen Sie den Benutzer zur Eingabe eine ganze Zahl in Ihrer Funktion – Julien

+1

So wird der Benutzer erneut versuchen, wie Sie nur außerhalb der Schleife des Eingangs nehmen? –

+0

continue startet die while Schleife erneut mit dem gleichen Wert – Jens

Antwort

1

Versuchen Sie, so etwas zu erreichen?

def inputInt(acceptAny): 
    while True: 
     try : 
      value = input (' Enter a value:') 
      value = int(value) 
     except ValueError: 
      if acceptAny: 
       break 
      else: 
       print ('Invalid input - Try again') 
      continue 
     break 
    return value 

if __name__ == "__main__": 
    number = inputInt(False) 
    print ('The value is',number)