首页 > 解决方案 > 初学者:当限制设置为三个最大值时,为什么我的代码执行第四次猜测?

问题描述

如果您的猜测在“三次猜测”限制内,则下面的代码运行良好,但如果您第三次猜测错误,则猜测任务会出于某种原因再次询问。这不是我想要的。即使你第三次做对了,程序也会结束。该怎么办?

代码:

    secret_number = 6 #random.randint(1, 12)
    print("We are going to play a guessing game.")
    guess_count = 3
    guess = int(input('Try figuring out the computers number between 1 and     12: '))
    while guess_count > 0:
        if int(guess) != int(secret_number):
            if int(guess) > int(secret_number):
                guess = input('Too high. Try again: ')
                guess_count = guess_count - 1
            elif int(guess) < int(secret_number):
                guess = input('Too low. Try again: ')
                guess_count = guess_count - 1
        elif int(guess) == int(secret_number):
            print("THAT'S CORRECT!")
            break
    else:
        print("Well, you tried.")

输出:

    We are going to play a guessing game.
    Try figuring out the computers number between 1 and 12: 12
    Too high. Try again: 1
    Too low. Try again: 4
    Too low. Try again: 6
    Well, you tried.

标签: python

解决方案


每次用户在循环中猜错时,guess_count减 1,并调用该input函数要求用户再次猜测。所以这会做三遍;但是该input函数也在循环之前使用,给用户一个额外的猜测。

要解决此问题,您可以guess_count在循环之前设置为 2,以便用户在循环中获得两次猜测,包括循环之前的一共有三个猜测。但是最好input只在循环开始时使用该函数,而不是在循环之前,也不是在错误猜测之后;按照您目前的方式,即使用户没有任何猜测,在错误猜测后也会再次询问用户。


推荐阅读