2017-09-26 70 views
-3

我正在写一个简单的程序,比较两个变量在Python中比较两个变量不起作用?

from random import randint 
result = (randint(1, 6)) 

guess = input('Guess the number: ') 
if guess == result: 
    print('You got it right') 
else: 
    print('Wrong') 
    print(result) 

程序设置变量result作为一个随机数,然后将用户输入一个数字,他们猜测。但是,即使他们获得了正确的号码,也会说他们错了。

我怎样才能得到它,以便当他们得到正确的号码时,它说他们是正确的?

提前致谢!

+1

变化'猜测= INT(输入(猜数:“)' –

+0

我看到这也有关于变量比较和一个猜测数游戏问题的一些类似的问题。嗡嗡声......这么奇怪,为什么有这么多人想猜数字游戏? – Sraw

+3

可能重复[我怎样才能读取输入为整数?](https://stackoverflow.com/questions/20449427/how-can -i-read-inputs-as-integers) –

回答

3

可以将INTEGER类型设置为STRING,反之亦然,以便进行比较。两种不同类型(INT和STR)不能比较。

例如代码01 [两个比较变量都是字符串]

from random import randint 
result = (randint(1, 6)) 

guess = input('Guess the number: ') 
if guess == str(result): 
    print('You got it right') 
else: 
    print('Wrong') 
    print(result) 

例如,代码02 [二者相比变量是整数]

from random import randint 
result = (randint(1, 6)) 

guess = input('Guess the number: ') 
if int(guess) == result: 
    print('You got it right') 
else: 
    print('Wrong') 
    print(result) 
+0

真棒,非常感谢你!不记得你能做到这一点,这工作完美。非常感谢你! –

+1

很高兴听到这个。你可以进一步添加错误处理,因为现在如果用户输入一个字符而不是DIGIT,程序将会崩溃。 –

3

这里您将intstring进行比较,归因于返回类型input()string。这总是会给False

更改您的输入guess到:

guess = int(input()) 

所以,

IN : result = 5 
IN : guess = 5 
OUT : 'You got it right' 
0

变化guess = input('Guess the number: ')guess=int(input(Guess the number : ')

因为input()字符串作为用户输入。