2017-10-09 108 views
0

我是python的新手,並試圖編寫一個程序,要求用戶猜測一個數字,1 - 6,然後告訴他們他們是否猜對了。但是,即使用戶猜對了,else語句仍然返回。PYTHON爲什麼我的if語句總是返回false

我爲初學者問題表示歉意,雖然這確實讓我卡住了,因爲'guess'變量被正確賦值,我通過移動函數外部的print("Your guess was: ",guess)來測試這個函數,並且在函數被調用後執行,它總是返回與用戶輸入的值相同。

#Function to take guess 
def userGuess (guess): 
    guess = input("Take a guess.\n") 
    print("Your guess was: ",guess) 
    return guess 

#Define Variables 
diceNum = random.randint(1,6) 
guess = 0 

#Call Function 
guess = userGuess(guess) 

#Check answer 
if guess == diceNum: 
    print("You guessed right!, the number was: ",diceNum) 
else: 
    print("You did not guess it right, the number was: ",diceNum) 
+5

'guess'是一個字符串。 'diceNum'是一個int。轉換一個或另一個。 – khelwood

+0

[我怎樣才能讀取輸入爲整數?](https://stackoverflow.com/questions/20449427/how-can-i-read-inputs-as-integers) – SiHa

回答

2

您需要將用戶輸入轉換爲整數比較之前:

guess = int(input("Take a guess.\n")) 

如果你想要一個解釋,爲什麼你的if語句的整數之間的比較,返回false一串,看看this question