0

我试图制作一个简单的“猜谜游戏”,但它所做的只是要求输入,仅此而已。

这是我的代码:

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 ")
4

1 回答 1

9

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

guess(a, b)

你应该修改guess函数如下:

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

a这是必要的,因为您需要将值传递b给您的guess函数。否则,a函数b内部guess没有值(它们只是未定义的局部变量),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),然后整个事情又开始了。

于 2012-07-10T14:00:46.043 回答