2014-02-05 79 views
0

我是Python的新手,我正在Python中進行數字猜測遊戲。然而,當我設置參數:Python返回不真實的值?

import random 
numberchosen = random.randint(0,100) 
numberchosenstr = str(numberchosen) 
print ("Let's play a number game") 
numberguessed = input("Guess a number ") 
print ("You guessed " + numberguessed) 

if numberguessed > '100': 
    print ("You guessed too high, choose a number below 100") 

if numberguessed < '0': 
    print ("You guessed too low, choose a number above 0") 

if numberguessed != numberchosen: 
    print ("wrong") 

但是,當我運行的模塊,並選擇比如5號,或任何數字,它是正確的範圍內,但不正確的號碼,它總是返回

Let's play a number game 
Guess a number 5 
You guessed 5 
You guessed too high, choose a number below 100 
wrong 

所以,我的問題是,爲什麼Python返回> 100錯誤,以及有什麼方法可以解決它?

+1

' '2'>「100'' - >'TRUE',不比較字符串。 –

+0

您正在比較字符串而不是數字。 – BrenBarn

+0

除了將字符串與數字進行比較之外,if語句錯誤後的打印縮進。 – Martin

回答

7

您正在比較字符串,這是按字典順序(即按字母順序,一次一個字符)完成的。但即使有一個int,字符串總是大於數字。你需要採取引號把你的比較數字,並在您input致電int(),就像這樣:

numberguessed = int(input("Guess a number ")) # convert to int 
print ("You guessed {}".format(numberguessed)) # changed this too, since it would error 

if numberguessed > 100: # removed quotes 
    print ("You guessed too high, choose a number below 100") 

if numberguessed < 0: # removed quotes 
    print ("You guessed too low, choose a number above 0")