猜数字游戏再续。按如下要求改编2中猜数字游戏: (1)异常处理,增加程序健壮性。请用异常处理改造猜数字游戏,使其输入的不是整数如宇母、浮点数等)时,不再出错終止,而是给出“输入内容必须为整数!“的提示,并让用户重新输入。 ②增加程序灵活性。为了方便修改生成随机数的范围,将猜数字的最小值和最大值设为 交量并进行统一设置。设置猜数字的最大次数,猜错后提示还有几次机会。 ③)改善用户体验。当用户没猜对时,根据猜数情况缩小猜解范围,以方便用户下次猜数。例如用户猜的数字为70,,比实际数字大,那么就提示”@数字区间0-70,请输人你猜的数宇”;如果比实际数宇小,就提示’@数字区间70-100,请输入你猜的数字
时间: 2024-02-17 10:02:24 浏览: 66
好的,我可以帮你回答这个问题。首先,需要对代码进行相应的改动。以下是修改后的代码:
```python
import random
min_num = 0 # 最小值
max_num = 100 # 最大值
max_guess = 5 # 最大猜测次数
# 生成随机数
secret_num = random.randint(min_num, max_num)
# 猜数字游戏
print(f"请猜一个在{min_num}和{max_num}之间的整数,你有{max_guess}次机会。")
for i in range(max_guess):
try:
guess = int(input("你猜的数字是: "))
except ValueError:
print("输入内容必须为整数!")
continue
if guess == secret_num:
print(f"恭喜你,在第{i + 1}次猜中了!")
break
elif guess < secret_num:
min_num = guess
print(f"你猜的数字比正确答案小,数字区间为{min_num}-{max_num},你还有{max_guess - i - 1}次机会。")
else:
max_num = guess
print(f"你猜的数字比正确答案大,数字区间为{min_num}-{max_num},你还有{max_guess - i - 1}次机会。")
print(f"正确答案是{secret_num}。游戏结束。")
```
现在,这个程序具有了更好的健壮性、灵活性和用户体验。当用户输入非整数时,程序会提示用户重新输入,而不是直接出错终止。同时,程序允许用户自行设置生成随机数的范围和最大猜测次数。当用户猜错时,程序会根据猜数情况缩小猜解范围,以方便用户下次猜数。
阅读全文