Python 如何在循环进行时保持相同的随机数,但在完成后改变
这个问题很难解释,我希望这个标题不会让人困惑 因此,我必须让用户从1到100猜出一个数字,如果用户猜对了数字,我希望它重新启动游戏,但生成一个新的数字,并再次显示欢迎信息。此外,用户只能尝试10次,然后出现“游戏结束”消息。 我一直在尝试显示新消息,生成一个新号码,让号码在整个循环中保持不变,并在用户尝试10次时失败 如果这让人困惑,我再次道歉 这就是我所拥有的:Python 如何在循环进行时保持相同的随机数,但在完成后改变,python,loops,Python,Loops,这个问题很难解释,我希望这个标题不会让人困惑 因此,我必须让用户从1到100猜出一个数字,如果用户猜对了数字,我希望它重新启动游戏,但生成一个新的数字,并再次显示欢迎信息。此外,用户只能尝试10次,然后出现“游戏结束”消息。 我一直在尝试显示新消息,生成一个新号码,让号码在整个循环中保持不变,并在用户尝试10次时失败 如果这让人困惑,我再次道歉 这就是我所拥有的: import random import time def getInput(): x = random.randrange
import random
import time
def getInput():
x = random.randrange(100)
print(x) # for testing
print("***Welcome! Guess and try to find a number between 1 and 100!***")
while True:
userGuess = int(input("Enter Your Guess: "))
if (userGuess > x):
print("Lower! Enter Again: ")
elif (userGuess < x):
print("Higher! Enter Again: ")
elif (userGuess > 100):
print("Guess must be between 1 and 100")
elif (userGuess < 1):
print("Guess must be greater then 0")
elif (userGuess == x):
print("You win!")
time.sleep(3)
continue
def main():
getInput()
main()
随机导入
导入时间
def getInput():
x=随机。随机范围(100)
打印(x)#用于测试
打印(***欢迎!猜测并尝试查找介于1和100之间的数字!***”)
尽管如此:
userGuess=int(输入(“输入您的猜测:”)
如果(userGuess>x):
打印(“降低!再次输入:”)
elif(userGuess100):
打印(“猜测必须介于1和100之间”)
elif(用户猜测<1):
打印(“猜测必须大于0”)
elif(userGuess==x):
打印(“你赢了!”)
时间。睡眠(3)
持续
def main():
getInput()
main()
如果我在解释,你想在10次猜测后结束。我试图将更改保持在最小,以便你容易理解,请参阅@Tom的答案以了解更好的方法
import random
import time
def startNewGame():
x = random.randrange(100)
print(x) # for testing
print("***Welcome! Guess and try to find a number between 1 and 100!***")
numberOfTries = 0
while numberOfTries<10:
userGuess = int(input("Enter Your Guess: "))
numberOfTries += 1
if (userGuess > x):
print("Lower! Enter Again: ")
elif (userGuess < x):
print("Higher! Enter Again: ")
elif (userGuess > 100):
print("Guess must be between 1 and 100")
elif (userGuess < 1):
print("Guess must be greater then 0")
elif (userGuess == x):
print("You win!")
time.sleep(3)
return
print("You Lose!")
time.sleep(3)
def main():
startNewGame()
while(True):
again = input("Would you like to play again?(yes/no) ")
if again == "yes":
startNewGame()
elif again == "no":
break
main()
随机导入
导入时间
def startNewGame():
x=随机。随机范围(100)
打印(x)#用于测试
打印(***欢迎!猜测并尝试查找介于1和100之间的数字!***”)
次数=0
而NumberOfX):
打印(“降低!再次输入:”)
elif(userGuess100):
打印(“猜测必须介于1和100之间”)
elif(用户猜测<1):
打印(“猜测必须大于0”)
elif(userGuess==x):
打印(“你赢了!”)
时间。睡眠(3)
返回
打印(“你输了!”)
时间。睡眠(3)
def main():
startNewName()
虽然(正确):
再次=输入(“您想再次播放吗?(是/否)”)
如果再次==“是”:
startNewName()
elif再次==“否”:
打破
main()
每次循环开始时,您需要生成一个新的随机数,然后将尝试次数重置为0
import random
import time
def getInput():
x = random.randrange(100)
print(x) # for testing
print("***Welcome! Guess and try to find a number between 1 and 100!***")
tries = 0 # we need a variabe to see how many tries the user has had
while True:
userGuess = int(input("Try "+str(tries + 1)+" Enter Your Guess: "))
if (userGuess == x):
print("You win!")
print("***Think you can win again? Guess and try to find a number between 1 and 100!***")
x = random.randrange(100)
tries = 0 # reset tries
print(x) # we need a new random number for the user to guess
time.sleep(3)
continue
elif (userGuess > x):
print("Lower! Enter Again: ")
elif (userGuess < x):
print("Higher! Enter Again: ")
if (userGuess > 100):
print("Guess must be between 1 and 100")
elif (userGuess < 1):
print("Guess must be greater then 0")
else:
tries = tries + 1 # add 1 to tries unless they make an invalid guess
if tries == 10:
print("<<GAME OVER>>")
break # end
def main():
getInput()
main()
随机导入
导入时间
def getInput():
x=随机。随机范围(100)
打印(x)#用于测试
打印(***欢迎!猜测并尝试查找介于1和100之间的数字!***”)
tries=0#我们需要一个变量来查看用户进行了多少次尝试
尽管如此:
userGuess=int(输入(“Try”+str(trys+1)+“输入您的猜测:”)
如果(userGuess==x):
打印(“你赢了!”)
打印(***你认为你能再次获胜吗?猜测并尝试找到一个介于1和100之间的数字!***”)
x=随机。随机范围(100)
尝试次数=0#重置尝试次数
打印(x)#我们需要一个新的随机数供用户猜测
时间。睡眠(3)
持续
elif(userGuess>x):
打印(“降低!再次输入:”)
elif(userGuess100):
打印(“猜测必须介于1和100之间”)
elif(用户猜测<1):
打印(“猜测必须大于0”)
其他:
尝试=尝试+1#在尝试中添加1,除非他们做出无效猜测
如果尝试=10:
打印(“”)
中断#结束
def main():
getInput()
main()
以下是我的建议。我用三个哈希值添加了注释,并在其中进行了更改:
import random
import time
def playMany():
def play():
x = random.randrange(100)
print(x) # for testing
print("***Welcome! Guess and try to find a number between 1 and 100!***")
for attempt in range(10): ### try 10 times at the most
userGuess = int(input("Enter Your Guess: "))
### change the order of the tests:
if (userGuess > 100):
print("Guess must be between 1 and 100")
elif (userGuess < 1):
print("Guess must be greater then 0")
elif (userGuess > x):
print("Lower!") ### Don't ask to "enter" here
elif (userGuess < x):
print("Higher!")
else: ### no need to test for equality: it is the only possibility left
print("You win!")
return True ### Exit play() with True (to play again)
### Deal with too many wrong guesses
print('Too many wrong guesses. Game over')
return False
while play(): ### Keep repeating the game until False is returned
time.sleep(3) ### Move sleep here
def main():
playMany() ### Use a more telling function name
main()
随机导入
导入时间
def playMany():
def play():
x=随机。随机范围(100)
打印(x)#用于测试
打印(***欢迎!猜测并尝试查找介于1和100之间的数字!***”)
对于范围内的尝试(10):###最多尝试10次
userGuess=int(输入(“输入您的猜测:”)
###更改测试的顺序:
如果(userGuess>100):
打印(“猜测必须介于1和100之间”)
elif(用户猜测<1):
打印(“猜测必须大于0”)
elif(userGuess>x):
打印(“放低!”)35;###不要在这里要求“进入”
elif(userGuess
请参阅“继续运行”。如果还有其他方法,请参见此处:
import random
import time
def matchGuess(randNumber, userGuess):
if userGuess > 100 : print "Guest must be between 1 and 100"
elif userGuess < 0 : print "Guest must be greater than 0"
elif userGuess > randNumber : print "Lower! Enter Again:"
elif userGuess < randNumber : print "Higher! Enter Again:"
elif userGuess == randNumber : print "You win!"
if __name__ == "__main__":
print "***Welcome! Guess and try to find a number between 1 and 100!***"
for i in range(10):
userGuess = int(raw_input("Enter Your Guess:"))
randNumber = random.randrange(100)
matchGuess(randNumber, userGuess)
随机导入
导入时间
def matchGuess(随机数,用户猜测):
如果userGuess>100:打印“来宾必须介于1和100之间”
elif userGuess<0:打印“来宾必须大于0”
elif userGuess>randNumber:打印“降低!再次输入:”
elif userGuess
import random
import time
def matchGuess(randNumber, userGuess):
if userGuess > 100 : print "Guest must be between 1 and 100"
elif userGuess < 0 : print "Guest must be greater than 0"
elif userGuess > randNumber : print "Lower! Enter Again:"
elif userGuess < randNumber : print "Higher! Enter Again:"
elif userGuess == randNumber : print "You win!"
if __name__ == "__main__":
print "***Welcome! Guess and try to find a number between 1 and 100!***"
for i in range(10):
userGuess = int(raw_input("Enter Your Guess:"))
randNumber = random.randrange(100)
matchGuess(randNumber, userGuess)