我的猜测游戏有什么问题?

时间:2012-07-10 13:58:57

标签: python function user-input

我试图制作一个简单的“猜猜游戏”,但它只是要求输入,就是这样。

这是我的代码:

import random

def guess():
    if a == b:
        print "Correct!"
        n = input("Press 0 to quit or 1 to try again.")
        if n == 0:
            print ""
        if n == 1:
            return guess
    else:
        print "Wrong! "
        n = input("Press 0 to quit or 1 to try again.")
        if n == 0:
            print ""
        if n == 1:
            return guess

a = random.randint(1,2000)
b = input("Guess a number between 1 and 2000 ")

1 个答案:

答案 0 :(得分:9)

您没有调用guess函数。你应该在最后添加:

guess(a, b)

您应该修改guess函数,如下所示:

def guess(a, b):
    # your code here

这是必要的,因为您需要将值ab传递给guess函数。否则,a函数中的bguess没有值(它们只是未定义的局部变量),Python不知道该怎么做。

通过以上操作,您至少可以检查您是否猜对了。但是如果你想重复猜测,你需要更多地修改代码。


作为一个例子,这里是一个有效的猜测游戏的更新版本:

import random

def guess(a):
    b = raw_input("Guess a number between 1 and 2000 ")
    if a == b:
        print "Correct!"
    else:
        print "Wrong! "
        n = raw_input("Press 0 to quit or 1 to try again.")
        if n == "0":
            print ""
        if n == "1":
            guess(a)

a = random.randint(1, 2000)
guess(a)

函数guess现在需要一个整数:需要猜测的整数。在函数内部,我们要求用户输入一个整数,然后将其存储在b中。然后我们告诉用户猜测是否正确。如果猜测正确,那么函数guess就会结束。

如果猜测错误,我们会让用户有机会再次尝试。请注意,我们现在正在检查if n == "0":而不是if n == 0:,因为n是字符串,而不是整数。如果用户输入了1,那么我们再次调用guess并输出要猜测的整数(a),然后重新开始。

相关问题