2016-02-26 71 views
-3
# start of number game. 
import random 

guessesTaken = 0 
guessesLeft = 6 

def numberGuess(): 
    guessesTaken = 0 
    guessesLeft = 6 
    number = random.randint(1, 10) 
    print('I am thinking of a number between 1 and 10.' + "\n" + 'Can you guess the number?') 
    print('You have 6 guesses.') 

while guessesTaken < 6: 
    guess = input("Your guess:") 

    try: 
     guess = int(guess) 
    except ValueError: 
     print("That's not a number stupid") 

    guessesTaken = guessesTaken + 1 
    guessesLeft = guessesLeft - 1 

    if guess < number: 
     print('Your guess is too low.') 

    if guess > number and guess <= 10: 
     print('Your guess is too high.') 

    if guess > 10: 
     print('Please use a number 1-10.') 

    if guessesLeft <= 5 and guessesLeft != 0 and guess != number: 
     print ('You have ' + str(guessesLeft) + ' guesses left.') 

    if guess == number: 
     break 

if guess == number: 
    guessesTaken = str(guessesTaken) 
    print('Good job! You guessed my number in ' + guessesTaken + ' guesses!' + "\n" + "\n" + 'Lets play again!') 
    numberGuess() 

if guess != number: 
    number = str(number) 
    print('Nope. ' + number + ' was the number I was thinking of.' + "\n" + "\n" + 'Lets play again!') 
    numberGuess() 

猜數字()回溯(最近最後一次通話):(在trinket.io作品,但不是3.4/2.7.11)

所以基本上是在trinket.io工作完全正常(你可以看到這裏; http://sobieski.codes/guess/
但由於某種原因,如果我運行它閒置IDE或我的Ubuntu服務器(運行3.4)我得到這個錯誤。

Your guess:a 
That's not a number stupid 
Traceback (most recent call last): 
    File "loopgame.py", line 49, in <module> 
    numberGuess() 
    File "loopgame.py", line 48, in numberGuess 
    numberGuess() 
    File "loopgame.py", line 43, in numberGuess 
    numberGuess() 
    File "loopgame.py", line 25, in numberGuess 
    if guess < number: 
TypeError: unorderable types: str() < int() 

正如你所看到的,它正確地確定其不是一個數字,但還是給了我一個回溯,你能告訴我爲什麼?

NameError: name 'a' is not defined 

IDLE ide錯誤。

回答

0

我認爲一個比較和string提高int在Python 3.4不是一個ValueErrorTypeError,但是在Python 2.7它提出了一個ValueError,您應該添加多個try except一部分處理這些異常。

+0

謝謝你的答案,但仍然回來沒有定義(實際上不工作在任何3)對我沒有意義的是它在trinket.io它也運行修改後的版本3. *但它是在除了片段之外的某處。我會繼續關注那個鏈接,因爲有很多我不知道,所以謝謝。 – Osiris

0

沒有完成處理除了只需要添加繼續以便知道它捕獲並打印錯誤後進行。 IDLE IDE是因爲2.7和3.5不能很好地混合,將空閒的IDE升級到3.5,並且它運行得很好。

相關問題