在IF语句

时间:2016-02-18 16:22:13

标签: python-3.x

我正在经历“绝对初学者的Python编程 - 第三版”,其中有一个词jumble游戏。其中一个练习是在用户猜错时向用户提供提示。我有它工作,但是当执行提示语句时,它还打印出不正确的猜测消息,我很难过如何使它在提示中不打印不正确的猜测消息。

以下是代码:

guess = input("\nYour guess: ")
wrong_guess_msg = "Sorry that was not correct. Try again."
while guess != correct and guess != "":
    print(wrong_guess_msg)
    guess = input("Your guess: ")
    guess_count += 1
    # Ask the user if they would like a hint after 4 wrong guesses
    if guess_count == 4:
        hint_response = input("Would you like a hint?: ")
        if hint_response.lower() == "yes":
            print("Here is your hint: {}".format(hint))
    else:
        guess = input("Your guess: ")

我尝试将if guess_count语句从while循环中拉出来,但它永远不会执行。我尝试更改while循环以包含guess_count != 4和那种工作的条件,这意味着当我得到提示时我没有得到错误的猜测,但它退出了程序。

只是不确定我在这里缺少什么。

1 个答案:

答案 0 :(得分:2)

您可以以不同方式构造整个循环,从而也消除了循环开始之前的第一个提示:

wrong_guess_msg = '...'
while True:
    guess = input('Your guess: ')
    guess_count += 1
    if guess == correct:
        break
    if guess_count == 4:
        ...

您可能会认为这会使while条件未被使用,但是通过这种情况,您将有机会直接编写代码并清理,这完全是因为您没有被迫将正确性检查正确在每次迭代之前。总是(如果可能的话)让自己受到如何在向下一个人解释算法时如何拼写算法的指导,而不是通过循环机制或其他技术约束。