用python猜单词

2024-09-28 22:24:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用另外一句话来做一个猜测游戏:你还有“x”个猜测

我基本上写了这些代码:

correctanswer = "Stackoverflow"
useranswer = ""
guesscount= -2
guesslimit = 4
outofguesses = False
while useranswer != correctanswer and not outofguesses == True:
    if guesscount <= guesslimit:
        useranswer = input("Enter your answer : ")
        guesscount += 1
        guesslimit -= 1
        print("Wrong answer , you have " + str(guesslimit) + " guess rights left")
    else: outofguesses = True

if outofguesses:
    print("You lost , sorry")
else:
    print("You won!")

但我无法做到的是,当答案正确时,它仍然会说: (“答错了,你有“+str(猜测限制)+”猜对左边”)然后“你赢了!”

我想做的是,当给出正确答案时,我不希望出现那一行。你能帮我吗


Tags: 答案answeryoutrue游戏ifelseprint
2条回答

除了使用guesslimit做一些奇怪的事情外,您总是在用户回答之后直接打印“错误答案”,而不执行任何检查以查看是否正确

correctanswer = "Stackoverflow"
guesscount = 0
guesslimit = 3
user_won = False
while guesscount < guesslimit:
    answer = input("Enter your answer : ")
    if answer == correctanswer:
        user_won = True
        break
    else:
        print(f"Wrong answer, you have {guesslimit - guesscount} guesses left")
        guesscount += 1

if user_won:
    print("You won!")
else:
    print("You lost , sorry")

您的打印行在猜测之后和检查是否为真之前处于while循环中,这意味着它仍将执行。 解决这个问题的一种方法是使用一个简单的if语句。您的代码可能看起来像这样 (请注意,guesslimit和guesscount仍将更改,如果您不希望更改,只需将if语句放在更改它们的代码之上)

correctanswer = "Stackoverflow"
useranswer = ""
guesscount= -2
guesslimit = 4
outofguesses = False
while useranswer != correctanswer and not outofguesses == True:
    if guesscount <= guesslimit:
        useranswer = input("Enter your answer : ")
        guesscount += 1
        guesslimit -= 1
        if (useranswer != correctanswer):
            print("Wrong answer , you have " + str(guesslimit) + " guess rights left")
    else: outofguesses = True

if outofguesses:
    print("You lost , sorry")
else:
    print("You won!")

相关问题 更多 >