对刚才的程序按照以下要求修改:(1)异常处理,增加程序健壮性。请用异常处理改造猜数字游戏,使其输入的不是整数(如字母、浮点数等)时,不再出错终止,而是给出“输入内容必须为整数!”的提示,并让用户重新输入。 (2)增加程序灵活性。为了方便修改生成随机数的范围,将猜数字的最小值和最大值设为变量并进行统一设置。设置猜数字的最大次数,猜错后提示还有几次机会。 (3)改善用户体验。当用户没猜对时,根据猜数情况缩小猜解范围,以方便用户下次猜数。例如用户猜的数字为70,比实际数字大,那么就提示“@数字区间0-70,请输入你猜的数字:”;如果比实际数字小,就提示“@数字区间70-100,请输入你猜的数字:”
时间: 2024-02-17 16:03:42 浏览: 53
谈猜数字游戏(较详)编程
好的,以下是修改后的代码:
```python
import random
# 猜数字的最小值和最大值
MIN_NUMBER = 1
MAX_NUMBER = 100
# 猜数字的最大次数
MAX_GUESSES = 5
# 生成一个 MIN_NUMBER 到 MAX_NUMBER 的随机整数
number = random.randint(MIN_NUMBER, MAX_NUMBER)
# 猜数字的过程
for i in range(MAX_GUESSES):
try:
# 让用户猜数字
if i == 0:
guess = int(input(f"请猜一个 {MIN_NUMBER} 到 {MAX_NUMBER} 之间的整数:"))
else:
guess = int(input(f"还剩 {MAX_GUESSES - i} 次机会,请再次猜一个 {MIN_NUMBER} 到 {MAX_NUMBER} 之间的整数:"))
# 判断猜数情况
if guess < number:
print(f"@数字区间{guess}-{MAX_NUMBER},请再次输入你猜的数字:")
elif guess > number:
print(f"@数字区间{MIN_NUMBER}-{guess},请再次输入你猜的数字:")
else:
print(f"恭喜你,猜对了!数字是 {number}")
break
except ValueError:
print("输入内容必须为整数!")
# 猜错了
else:
print(f"很遗憾,你没有猜对。数字是 {number}")
```
修改后的程序做了以下改进:
1. 异常处理:使用 try-except 块捕获用户输入的非整数异常,避免程序崩溃。
2. 增加程序灵活性:将猜数字的最小值、最大值和最大次数设为变量,便于修改。
3. 改善用户体验:根据猜数情况缩小猜解范围,以方便用户下次猜数。同时,增加了提示信息,让用户知道还有几次机会。
阅读全文