2

好吧,我是一个非常新的 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"

而不是当您按正确的数字时,它会打印您输了。如果你按错了号码,它就会显示你输了。

4

3 回答 3

2

这是因为您需要在检查之前将输出转换raw_input("")int()。该raw_input("")值存储为字符串。

有关文档中的更多信息raw_input

该函数从输入中读取一行,将其转换为字符串(去除尾随的换行符),然后返回。

所以,代码应该是:

Correct = int(raw_input(""))

另外,只要确保你NumberTimes在循环中递增,否则你将进入无限循环

于 2013-11-14T02:02:47.303 回答
0

您的代码有两个问题:

  1. 在将输入与返回的整数进行比较之前,它需要将输入转换为整数randint
  2. 它将永远运行,因为NumberTimes永远不会增加。

但是,您可以只使用 for 循环,而不是使用 while 循环和递增变量:

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 次)。

于 2013-11-14T02:11:21.563 回答
0

correct = int(raw_input(""))是主要问题将其更改为那个然后尝试

于 2013-11-14T02:34:41.240 回答