如何修改猜数字游戏Python代码,实现每次猜测后缩小显示范围?
修改方案:动态缩小猜数字范围的实现
修正后的完整代码
import random lucky_number = random.randint(1, 100) min_range = 1 max_range = 100 while True: print(f"Guess our lucky number between <{min_range}> and <{max_range}>: ") try: user_guess = int(input("Enter your guess: ")) if user_guess < min_range or user_guess > max_range: print(f" The feasible range is between <{min_range}> and <{max_range}>. Try something more reasonable...") elif user_guess < lucky_number: print(f" Your guess <{user_guess}> is too small, try again!") min_range = user_guess + 1 # 缩小范围:最小值更新为猜测数+1 elif user_guess > lucky_number: print(f" Your guess <{user_guess}> is too large, try again!") max_range = user_guess - 1 # 缩小范围:最大值更新为猜测数-1 else: print(f" Congratulations! <{user_guess}> is our lucky number!") break except ValueError: print(" Please enter a valid integer!")
关键修改说明
- 新增范围跟踪变量:定义
min_range和max_range,初始值为1和100,用来记录当前有效的猜测区间。 - 动态更新提示文本:将固定的
<1>和<100>替换为{min_range}和{max_range},每次循环都会显示最新的有效范围。 - 统一变量名:修正原代码中
user_number和user_guess混用的问题,避免逻辑错误。 - 缩小范围逻辑:
- 当猜测数小于幸运数字时,把
min_range设为user_guess + 1(确定幸运数字更大,下一次从猜测数+1开始); - 当猜测数大于幸运数字时,把
max_range设为user_guess - 1(确定幸运数字更小,下一次到猜测数-1为止)。
- 当猜测数小于幸运数字时,把
- 优化错误提示:输入超出当前范围时,提示文本同步显示最新的有效区间;新增非整数输入的异常处理,提升程序健壮性。
内容的提问来源于stack exchange,提问作者ŜѶҜ Chason
相关产品推荐
相关产品推荐

