繁体   English   中英

猜测随机数游戏python

[英]Guessing random number game python

我的程序应该让用户猜测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()    

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

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:
    ....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM