2017-10-09 113 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