2016-07-13 126 views
0

我是新来的,我也是编码方面的新手。 我其实是在学习Python,而且我有一个问题,因为我已经试过了所有的东西,但是我无法解决它。Python上的异常处理

我从我在教程中看到的一个小游戏中获得了这段代码。目标是向用户猜测数字。我想要做的是处理异常,如果用户输入一个字母,然后显示错误消息并返回到循环。如果有人帮助我,我将不胜感激。

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

这可以在没有异常处理的情况下完成。 raw_input()总是返回一个字符串,字符串有isdigit()方法,可以在布尔上下文中使用。你真的想使用异常处理吗? – sphere

回答

1

这是我应该怎样做:

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 

我对while虚设状态,我使用continuebreak内环路引导气流。我在try-except区块中包裹了整个猜测检查程序,但唯一真正尝试是将输入转换为integer。其他的东西也可以在except之后移动。

+0

感谢您的帮助,现在我将学习与此并练习更多:) – Useranonimo