带有限猜测的Python循环数猜测游戏

2024-03-29 11:06:42 发布

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

对于课堂作业,我尝试做一个猜数游戏,在这个游戏中,用户决定答案和猜测次数,然后在有限的圈数内猜测数字。我应该使用while循环和and运算符,但不能使用break。然而,我的问题是,我不确定如何格式化程序,以便当达到最大圈数时,程序不会打印提示(高/低),而只会告诉你你丢失了/答案是什么。如果我选择将最大猜测数设为1,它就不起作用了。它不只是打印“You lose;the number was uuu”,它还会打印一个提示。这是我最好的尝试,接近于做这个程序应该做的一切。我做错什么了?在

answer = int(input("What should the answer be? "))
guesses = int(input("How many guesses? "))

guess_count = 0
guess = int(input("Guess a number: "))
guess_count += 1
if answer < guess:
    print("The number is lower than that.")
elif answer > guess:
    print("The number is higher than that")

while guess != answer and guess_count < guesses:
    guess = int(input("Guess a number: "))
    guess_count += 1
    if answer < guess:
        print("The number is lower than that.")
    elif answer > guess:
        print("The number is higher than that")

if guess_count >= guesses and guess != answer:
    print("You lose; the number was " + str(answer) + ".")
if guess == answer:
    print("You win!")

Tags: andtheanswer程序numberinputifthat
1条回答
网友
1楼 · 发布于 2024-03-29 11:06:42

像这样的怎么样?在

answer = int(input("What should the answer be? "))
guesses = int(input("How many guesses? "))
guess_count = 1
guess_correct = False

while guess_correct is False:
    if guess_count < guesses:
        guess = int(input("Guess a number: "))
        if answer < guess:
            print("The number is lower than that.")
        elif answer > guess:
            print("The number is higher than that")
        else:  # answer == guess
            print("You win!")
            break
        guess_count += 1
    elif guess_count == guesses:
        guess = int(input("Guess a number: "))
        if guess != answer:
            print("You lose; the number was " + str(answer) + ".")
        if guess == answer:
            print("You win!")
        break

它非常类似于您的程序,但是其中有两个break语句。这将告诉Python立即停止执行该循环并转到下一个代码块(在本例中为空)。这样,在开始下一个循环之前,您不必等待程序评估为while循环指定的条件。如果这有助于解决你的问题,那就请你在我的帖子上打勾

相关问题 更多 >