我的python函数中缺少什么? (初学者)

时间:2013-04-03 19:24:37

标签: python python-2.7

编写一个名为guess_number的函数,它接收1个数字参数。它询问用户1到10之间的数字,直到用户猜出参数中的数字。它返回用户猜到的次数。

到目前为止,这是我的代码,但我似乎无法弄清楚我错过了什么。它在输入阶段停止。

def guess_number(x):
    count = 0
    a = input('Guess my number between 1 and 10')
    while a!= x:
        count += 1
    else:
        count += 1
        return count

6 个答案:

答案 0 :(得分:0)

您只需要用户输入一次。

进入while循环后,系统不会提示用户输入新猜测。这意味着a的值永远不会改变,所以你永远陷入了循环。

尝试添加其他input声明:

def guess_number(x):
    count = 0
    a = input('Guess my number between 1 and 10')
    while a != x:
        count += 1
        a = input('Guess again!')
    else:
        count += 1
        return count

答案 1 :(得分:0)

以下是工作代码:

def guess_number(x):
    count = 1
    a = input('Guess my number between 1 and 10')
    while a != x:
        count += 1
        a = input('Guess my number between 1 and 10')
    return count

答案 2 :(得分:0)

你的程序在这一点上陷入困​​境:

while a!= x:
        count += 1

假设x为5,a为3。 在这种情况下,!= x将计算为True,您将进入循环,并且计数将递增,但您将永远不会离开while循环,因为a将始终与x不同。

此代码应该这样做:

def guess_number(x):
    count = 1
    while True:
        a = input('Guess my number between 1 and 10')
        if a != x:
            count += 1
        else:
            return count

答案 3 :(得分:0)

除了在input循环中移动while之外,除非您打算将x作为字符串传递,否则您还需要转换a in在进行比较之前到int

def guess_number(x):
    count = 0
    while int(input('Guess a number.')) != x:
        count += 1
    return count

在样式注释中,除非函数实际限制可以从中拾取的数字范围,否则不应在提示中烘焙范围(1到10); x可以是任何东西。我知道这个问题给出了具体的要求,但你应该质疑那些具有不良设计含义的要求。

答案 4 :(得分:0)

def guess_number(x):
    count = 0
    while True:
        a = input('Guess my number between 1 and 10')
        if a!= x:
            count += 1
        else:
            count += 1
            return count

答案 5 :(得分:0)

你有几个问题。首先,你的input需要在循环中,否则只会被问到一次。所以你想要这个:

def guess_number(x):
    count = 0
    while int(raw_input('Guess my number between 1 and 10')) != x:
        count += 1
    else:
        count += 1
        return count

请注意(非常重要!)使用int(raw_input(...))代替input!允许你的用户在你的函数中执行任意代码是一个可怕的坏主意,这就是为什么他们改变了{3}在Python 3中的行为来做input在Python 2中做的事情。