【发布时间】:2017-02-19 16:05:04
【问题描述】:
我目前正在 learnpython.org 上做一个 python excersise: 我在粗体的额外练习中遇到了麻烦:
生成一个介于 1 和 9(包括 1 和 9)之间的随机数。让用户猜数字,然后告诉他们猜的太低、太高还是完全正确。 (提示:记得使用第一个练习中的用户输入课程)
附加:
让游戏继续进行,直到用户输入“退出”
记录用户猜了多少次,并在游戏结束时打印出来。
到目前为止,这是我的代码:
import random
def gameTracker():
global playedGames
playedGames = 1
playedGames = playedGames+1
def generateNumber():
global generatednumber
generatednumber = random.randint(1, 9)
def generateuserGuess():
global userguess
userguess = int(input('Pick a number between 1-9: '))
def generationProcess():
global userguess
if int(userguess) == generatednumber:
print('You have guessed the number. Congratulations.')
gameTracker()
global playAgain
playAgain = input('Want to play again? y/n: ')
if playAgain == 'y':
generateNumber()
userguess = input('Pick a new number between 1-9: ')
generationProcess()
if playAgain == 'n':
print('The game has ended. You have played: ')
print(int(playedGames))
print('games')
if int(userguess) > generatednumber:
print('You have guessed too high.')
global conConfirm
conConfirm = str(input('Guess again?: c/quit: '))
conGame()
if int(userguess) < generatednumber:
print('You have guessed too low.')
conConfirm = str(input('Guess again?: c/quit: '))
conGame()
def conGame():
if conConfirm == 'c':
global userguess
userguess = int(input('Your new guess please: '))
generationProcess()
if conConfirm == 'quit':
print('The game has ended. You have played: ')
print(int(playedGames))
print('games')
generateNumber()
generateuserGuess()
generationProcess()
当用户在玩游戏后按“n”或“退出”时,它不会打印出正确的游戏数量,这意味着 gameTracker() 写得不好/错误,但它也出于某种原因打印了游戏次数游戏已经玩过 * playAgain == 'n' 之后会发生什么。
我将如何完成这项工作?
【问题讨论】:
-
我的最终代码可以在这里找到:codepad.org/4T6v7C56 我有点作弊并为
sys.exit导入了sys模块,它停止了递归。代码不是那么漂亮,但它可以工作。如果您在玩游戏时发现了错误或其他问题,请告诉我。