2016-07-13 159 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