Python Minigame无法正常工作

时间:2013-11-14 01:59:34

标签: python python-2.7

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

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

3 个答案:

答案 0 :(得分:2)

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

有关raw_input in the documentation

的更多信息
  

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

所以,代码应该是:

Correct = int(raw_input(""))

另外,只需确保在循环中增加NumberTimes,否则最终会进入无限循环

答案 1 :(得分:0)

您的代码有两个问题:

  1. 在将输入与randint返回的整数进行比较之前,需要将输入转换为整数。
  2. 它将永远运行,因为NumberTimes永不递增。
  3. 但是,不是使用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(""))是主要问题,改变它,然后尝试