Python:数字猜测游戏

时间:2014-01-28 21:26:34

标签: python function

您的程序通过在1到1000(含)范围内随机选择一个整数来选择要猜测的数字。如果玩家的猜测不正确,你的程序应该循环,直到玩家最终获得正确的数字。你的程序应该一直告诉玩家太高或太低,以帮助玩家在正确答案上“归零”。游戏结束后,程序应提示用户输入“y”再次播放或“n”退出游戏。

我的问题是你每次想要再次播放时如何生成一个新的随机整数?

这是我的代码。

import random

randomNumber = random.randrange(1, 1000)

def main():
    print ""
    number = input("I have a number between 1 and 1000. Can you guess my number? Please type your first guess: ")
    guess(number)

def guess(number1):
    correct = False
    while not correct:
        if number1 > randomNumber:
            print "Too high. Try again."
            print ""
        elif number1 < randomNumber:
            print "Too low. Try again."
            print ""
        elif number1 == randomNumber:
           break
        number1 = input ("What number do you guess? ")
    if number1 == randomNumber:
       playAagain = raw_input ("Excellent! You guessed the number! Would you like to play again (y or n)? ")
       if playAagain == "y":
            main()

main()

4 个答案:

答案 0 :(得分:4)

采取这一行:

randomNumber = random.randrange(1, 1000)

并将其放在guess内:

import random

def main():
    print ""
    number = input("I have a number between 1 and 1000. Can you guess my number? Please type your first guess: ")
    guess(number)

def guess(number1):
    #########################################
    randomNumber = random.randrange(1, 1000)
    #########################################
    correct = False
    while not correct:
        if number1 > randomNumber:
            print "Too high. Try again."
            print ""
        elif number1 < randomNumber:
            print "Too low. Try again."
            print ""
        elif number1 == randomNumber:
           break
        number1 = input ("What number do you guess? ")
    if number1 == randomNumber:
       playAagain = raw_input ("Excellent! You guessed the number! Would you like to play again (y or n)? ")
       if playAagain == "y":
            main()

main()

现在,每次调用函数时都会创建一个新的随机整数。

答案 1 :(得分:1)

main()中加一个循环,并在循环开始时初始化randomNumber

答案 2 :(得分:1)

请尝试删除从随机开始到启动while循环的四个空格

import random

print " welcome to game of guessing "
print "you have 6 attempts"
num1 = random.randint(1,100)
print num1  # this is your computer generated number ( skip while running :only for test purpose)
num2 = num1+random.randint(1,15)
print " hint: number is close to " + str(num2)

count=1

while count&lt; = 6:     打印&#34;输入您认为的数字&#34;     inputnum的raw_input =()     如果inputnum == str(num1):         打印&#34;恭喜你猜错了#34;         破

elif inputnum<str(num1):
    print " number is lower than correct one "
    count=count+1
elif inputnum>str(num1):
    print "number is greater than correct one"
    count=count+1
else:
    break

答案 3 :(得分:0)

你只需要像这样定义你的main()函数。

def main():

    global randomNumber
    print ""
    randomNumber = random.randrange(1, 1000)
    number = input("I have a number between 1 and 1000. Can you guess my number? Please type your first guess: ")
    guess(number)

一切都会很完美。希望这会有所帮助。