好的,我是一个非常新的Python程序员,我在Python之前只用Lua编程。我做了一个小字游戏,进入一个大字游戏,但它没有按预期工作。可以告诉我我做错了什么吗?
NumberTimes = 0
from random import randint
while NumberTimes < 12:
RandNum = randint(0,9)
print RandNum
Correct = raw_input("")
if Correct == RandNum:
print "Correct"
if Correct != RandNum:
print "YOU LOSE"
而不是当你按正确的数字时,它打印你输了。如果你按错了号码,就会输出你输了。
答案 0 :(得分:2)
这是因为您需要在检查之前将raw_input("")
的输出转换为int()
。 raw_input("")
值存储为字符串。
有关raw_input
in the documentation
该函数从输入中读取一行,将其转换为字符串(剥离尾部换行符),然后返回该行。
所以,代码应该是:
Correct = int(raw_input(""))
另外,只需确保在循环中增加NumberTimes
,否则最终会进入无限循环
答案 1 :(得分:0)
您的代码有两个问题:
randint
返回的整数进行比较之前,需要将输入转换为整数。NumberTimes
永不递增。但是,不是使用while循环和递增变量,而是使用for循环:
from random import randint # Import the 'randint' function
for _ in xrange(12): # Loop 12 times
RandNum = randint(0,9) # Get a random integer
print RandNum # Print it
try: # Start a try/except block
Correct = int(raw_input()) # Get the input as an integer
if Correct == RandNum: # If it equals 'RandNum'...
print "Correct" # ...print "Correct"
else: # Otherwise...
print "YOU LOSE" # ...print "YOU LOSE"
except ValueError: # But, if a ValueError is thrown...
print "Bad input" # ...then the input wasn't a number
For循环运行一段代码一定次数(在本例中为12)。
答案 2 :(得分:0)
correct = int(raw_input(""))
是主要问题,改变它,然后尝试