2016-07-13 9 views
0

Ich bin neu hier, und ich bin auch neu in der Codierung. Ich lerne gerade Python, und ich habe eine Frage, weil ich schon alles versucht habe, aber ich konnte es nicht lösen.Ausnahmebehandlung bei Python

Ich habe diesen Code von einem kleinen Spiel, das ich in einem Tutorial sah. Das Ziel besteht darin, dem Benutzer die Nummer zu erraten. Was ich versuchte, ist, die Ausnahme zu behandeln, wenn der Benutzer einen Brief eingibt, dann eine Fehlermeldung anzeigt und zur Schleife zurückgeht. Wenn mir jemand hilft, werde ich dankbar sein.

import random 

highest = 200 
answer = random.randrange(highest) 
guess = raw_input("Guess a number from 0 to %d:" %highest) 
while(int(guess)!=answer): 
    if (int(guess) < answer): 
     print "Answer if higher" 
    else: 
     print "Answer is lower" 
    guess=raw_input("Guess a number from 0 to %d: " %highest) 
raw_input ("You're a winner Face!!!") 
+0

Dies kann ohne Ausnahme-Behandlung erfolgen. raw_input() gibt immer einen String zurück, strings haben die Methode isdigit(), die in einem booleschen Kontext verwendet werden kann. Möchten Sie die Ausnahmebehandlung wirklich nutzen? – sphere

Antwort

1

Dies ist, wie ich es tun würde:

auf dem while
import random 

highest = 200 
answer = random.randrange(highest) 
while True: 
    try: 
     guess = int(input("Guess a number from 0 to %d: " %highest)) 
     if guess < answer: 
      print("Answer if higher") 
     elif guess > answer: 
      print("Answer is lower") 
     else: 
      print("You're a winner Face!!!") 
      break 
    except: 
     print('Input not valid!') 
     continue 

Ich habe einen Dummy-Zustand und ich bin der Fluss aus dem Inneren der Schleife continue und break mit lenken. Ich wickelte die ganze Rate Überprüfung Verfahren in einem try-except Block, aber das einzige, was wirklich versuchte ist die Umwandlung des Eingangs zu integer. Alles andere könnte auch nach dem except Bit verschoben werden.

+0

Danke für deine Hilfe, jetzt werde ich damit lernen und mehr üben :) – Useranonimo