为什么我的python程序不起作用?

时间:2016-02-12 19:09:44

标签: python-2.7

import time
import random
target = random.randrange(1, 3, 2)
print target  #for debug reasons
time.sleep(5)
shot = raw_input("Enter a random number")
while shot != target:
   print "n0pe"
   shot = raw_input("Enter a random number")
else:
    print "you won"

因为我正在测试这个有趣的游戏,所以即使我说的是正确的数字,也总是说n0pe。我不知道它有什么问题!

2 个答案:

答案 0 :(得分:2)

target是一个整数值。 raw_input()返回一个字符串。在python中,字符串和整数永远不会彼此相等。

例如:

print 1 == "1"
# prints "False"

在进行比较之前,您希望使用int()将用户输入转换为整数。

import time
import random
target = random.randrange(1, 3, 2)
print target  #for debug reasons
time.sleep(5)
shot = int(raw_input("Enter a random number"))
while shot != target:
   print "n0pe"
   shot = int(raw_input("Enter a random number"))
else:
    print "you won"

答案 1 :(得分:0)

比较不对。您正在将字符串与整数进行比较。

试试这个:

import time
import random
target = random.randrange(1, 3, 2)
time.sleep(5)
shot = raw_input("Enter a random number")
while True:
    if int(shot) != target:
        print "n0pe"
        shot = raw_input("Enter a random number")
    else:
        print "you won"
        break