Python新手编写猜数字游戏无法统计猜测次数,求可行修改建议
猜数字游戏次数统计功能修复方案
核心问题说明
你当前的代码无法统计尝试次数的主要原因如下:
- 没有定义专门的变量在用户每次猜测时累加计数
- 现有次数相关的逻辑完全独立在猜数字主循环之外,和实际猜测行为没有关联
- 重试逻辑里的剩余次数是写死的固定值,没有和计数变量绑定
- 额外添加的第二个while循环属于无效逻辑,不会跟随用户猜测触发
修改步骤
- 在进入猜数字主循环前,初始化
guess_count = 0记录尝试次数,同时设置max_try = 5限制最大尝试次数 - 每次用户输入猜测值后,第一时间累加
guess_count - 每次猜测后先判断是否超过最大尝试次数,超过则直接结束游戏
- 用户选择再来一局时,要重置猜测计数、重新生成随机目标数字
- 删掉无效的第二个while循环,将输入接收类型从
float改为int适配整数猜数字的场景 - 可以把注释掉的随机数生成逻辑放开,不用固定目标值23
修复后完整代码
import random # 提示文本列表 tip_list = ["Hello there! How are you?", 0, "Guess a number Between 1 to 50", "Your number is too high", "Your Number is too low", "Make Your Number A Bit Higher", "Make Your Number a Bit Lower", "Congratulations You Have guessed the right number :)" ] print(tip_list[0]) name = input("What is your Name?\n=") max_try = 5 # 最大尝试次数 while True: # 每局游戏初始化:重置计数、生成新的随机数 guess_count = 0 target_num = random.randint(1, 50) print(tip_list[2]) while True: inp = int(input("=")) guess_count += 1 # 先判断是否用完次数 if guess_count >= max_try: print(f"Game Over! You have used all {max_try} tries. The right number is {target_num}") break # 输出剩余次数 print(f'You have {max_try - guess_count} tries left') # 判断猜测结果 if inp > 50: print(tip_list[3]) elif inp < 1: print(tip_list[4]) elif inp < target_num: print(tip_list[5]) elif inp > target_num: print(tip_list[6]) elif inp == target_num: print(tip_list[7]) print(f"You used {guess_count} tries in total") break # 询问是否再来一局 q = input("Do You Want to Go again? Y or N\n=") if q.capitalize() != "Y": break
内容的提问来源于stack exchange,提问作者Safayat Ibrahim
相关产品推荐
相关产品推荐

