如何为Python猜数字游戏添加猜数次数统计功能?
猜数字游戏:补全猜数次数统计功能
程序说明:
编写一个程序,生成1到100范围内的随机数,让用户猜测该数字。如果用户猜测的数字大于随机数,程序应显示“Too high, try again.”;如果小于随机数,显示“Too low, try again.”;如果猜对,程序应祝贺用户并生成新的随机数重新开始游戏。游戏需要记录用户的猜数次数,当用户停止游戏时,显示正确猜中的次数。
目前已完成大部分代码,仅缺少统计猜数次数的功能。
修改后的完整代码
def main(): print("********* Welcome to the random number guessing game *********") total_guesses = 0 # 记录总猜中次数 while True: # 单次游戏的猜数次数累加到总次数 total_guesses += run_game() # 判断是否继续游戏 if not play_again(total_guesses): break def run_game(): import random n = random.randrange(1, 101) # 修正范围:覆盖1到100(randrange左闭右开) guess_count = 0 # 单次游戏的猜数计数器 while True: guess = int(input("Enter any number: ")) guess_count += 1 if guess < n: print("Too low, try again.") elif guess > n: print("Too high, try again.") else: print("You guessed it right!!") return guess_count # 返回本次游戏的猜数次数 def play_again(total): while True: retry = input("Would you like to play again?: ").lower() if retry == "yes": return True elif retry == "no": print(f"Good game! Total number of guesses to win: {total}") return False else: print("Please enter either yes or no") if __name__ == "__main__": main()
关键修改说明
- 总次数统计:在
main函数中初始化total_guesses变量,每次调用run_game后累加单次游戏的猜数次数,避免原递归调用main导致的变量重置问题。 - 单次游戏计数:
run_game中新增guess_count变量,用户每输入一次猜数就自增,猜对后返回该值给main进行累加。 - 修正随机数范围:原代码
randrange(1,100)生成的是1到99的数,改为randrange(1,101)才能覆盖需求中的1到100范围。 - 统一提示语:按照需求修改提示内容为
Too low, try again.和Too high, try again.。 - 优化游戏循环:将原有的递归调用
main改为main内部的while True循环,逻辑更清晰,同时保留总次数的持续统计。 - 退出时显示总次数:修改
play_again函数,接收总次数参数,用户选择退出时打印累计的猜中次数。
内容的提问来源于stack exchange,提问作者Manuel
相关产品推荐
相关产品推荐

