当前位置: 首页 > 知识库问答 >
问题:

猜随机数游戏python

长孙鸿振
2023-03-14

我的程序应该要求用户猜测 0 到 100 之间的数字,但我似乎无法正确输出。目前,如果用户数大于随机数,它会打印出无限数量的“您的数字太高”。此外,如果第一个 UserGuess 很低,那么以下所有数字都将具有相同的提示:(“您的数字太低”),尽管它们实际上大于随机数。我不知道我做错了什么。任何帮助将不胜感激。谢谢!

from random import randint

def main():


    guessesTaken = 0

    randomNumber = randint(0,100)
    #print(randomNumber)
    giveUp = -1
    UserGuess = int(input("Take a guess" + "(The random number is: " + str(randomNumber) + "): "))

    while UserGuess != randomNumber:

        guessesTaken += 1

        if UserGuess < randomNumber:
            UserGuess = int(input("Your guess is too high.Try again: "))

        elif UserGuess > randomNumber:
            UserGuess = int(input("Your guess is too high.Try again: "))

        elif UserGuess == randomNumber or UserGuess == giveUp:
            break

    if UserGuess  == randomNumber:
        guessesTaken = str(guessesTaken)
        print("Yes, that is right!")
        print("It took you " + guessesTaken +  " guesses")
    if UserGuess == giveUp:
        guessesTaken = str(guessesTaken)
        randomNumber = str(randomNumber)
        print("Better luck next time.")
        print("You tried"+ guessesTaken +  " guesses")


    return
    print (main())

if __name__ == "__main__":
     main()    

共有1个答案

彭宏义
2023-03-14

一旦进入循环,就需要获得更多的用户输入。考虑

UserGuess = None

while UserGuess != randomNumber:
    UserGuess = int(input("Take a guess" + "(The random number is: " + str(randomNumber) + "): "))
    guessesTaken += 1
    ....

目前,你只猜了第一个。然后你反复重新评估它。因为用户没有机会改变他们的猜测,所以它会无限循环。

此外,您还需要更改if/elifs的顺序。

就目前而言,结构是

if guess (is too low)
if the guess (is not too low), and (is too high)
if the guess (is not too low), and (is not too high), and (is correct) or (is 'give up')

让它工作的一个快速方法是

if   UserGuess == randomNumber or UserGuess == giveUp:
    ...
elif UserGuess > randomNumber:
    ...
elif UserGuess < randomNumber:
    ....
 类似资料:
  • 尝试用代码块c语言编写一个程序: 生成一个从的随机密码,并要求用户猜测该数字 如果用户猜测正确,则打印猜测是正确的 对于第一个猜测,如果它不正确,应该说热 如果用户的猜测越来越接近秘密,则告诉用户他正在变热 如果他的猜测离得更远的话,也可能是冷的 游戏继续,直到猜到密码 我当前的程序在猜测是热还是冷方面给出了错误的输出,也不确定我应该将vs如果有的话,或者在哪里使用 “else if”。如果不是太

  • 在这个程序中,计算机生成一个随机数(在1-100之间),用户试图猜测它。一直运行到用户正确猜出数字为止。需要打印出在正确猜测数字之前所花费的尝试总数。程序运行正常,但存在逻辑错误。当我正确猜测数字时,什么都没有打印出来;程序只是停止。

  • 我在做一个数字猜谜游戏: 计算机在间隔内生成一个数字 我试着猜测它,并收到一个回复,不管它是高于/低于我的猜测,还是等于我的猜测,我赢了 有一个可以猜测的间隔,还有一个猜测尝试限制

  • 好吧,我知道这个以前有人问过,但我就是想不出哪里出了问题。以下是我的说明: “编写一个程序,生成1到1000之间的随机数。然后让用户猜猜数字是多少。如果用户的猜测值高于随机数,程序应该显示“太高,再试一次”。如果用户的猜测值低于随机数,程序应该显示“太低,再试一次”。程序应该使用一个循环,直到用户正确猜测出随机数。 还有,保持用户猜测次数的计数。当用户正确猜测随机数时,程序应该显示猜测的次数。输入

  • 我是JAVA新手,我一直在写一个数字猜谜游戏的代码,计算机从0-500的条件下选择数字:如果数字太低,用户输入0,计算机猜更低的数字;如果数字太高,用户输入1,计算机猜更高的数字 以5个猜测结束游戏 任何建议都将不胜感激!!!:d