2016-06-05 7 views
0

Dies ist mein Code:Wie kann ich sicherstellen, dass Benutzer korrekte Eingabe für Guess Spiel in Python 3.5.1 einschalten?

from random import randint 
print("What is your name?") 
name=input() 
tries=0 
number= randint(1,100) 
print("Hello, %s guess a number from 0 to 100" % name) 
while tries < 8: 
    print("Take a Guess") 
    guess=input() 
    guess=int(guess) 
    if guess < number: 
     print("Too Low") 
     tries += 1 
    if guess > number: 
     print("Too High") 
     tries += 1 
    if guess == number: 
     break 

if guess == number: 
    print("You got it, in %s tries" % tries) 

if guess != number: 
    print("Sorry try again!") 

Aber es gibt einen Fehler:

Traceback (most recent call last): 
    File "/Users/Zuazua/PycharmProjects/untitled/GuessMyNumber2.py", line 10, in <module> 
    guess=int(guess) 
ValueError: invalid literal for int() with base 10: '23!' 
+0

Fehler ist selbsterklärend. –

+0

@DmitryPoroh Vielleicht nicht für einen Neuling! – j4hangir

Antwort

0

Ändern Sie die Zeile guess=int(guess) in diese:

guess=int(re.search(r'\d+', guess).group()) 
0

Versuch mit guess=int(guess) eingegebenen Wert zu analysieren kann führen zu verschiedenen Ausnahmen. Schnelle und schmutzige Weise, es zu reparieren - ist, es in try ... except Block einzuwickeln. Wie:

try: 
    guess=int(guess) 
except ValueError: 
    print("Cannot understand your input. Pls, try again") 
    continue 

Dieser Code fängt alle ValueError-Ausnahmen ab, die beim Parsen aufgetreten sind. Hier finden Sie weitere Informationen zu Ausnahmen: https://docs.python.org/3/tutorial/errors.html#errors-and-exceptions

Verwandte Themen